Confirm Payment Method
Step 2 of payment method setup — finalize and activate the billing customer
Finalizes payment method setup after the customer completes the Stripe card form or PayPal authorization. Attaches the payment method to the billing customer, activates the record, and optionally records initial charge revenue. Fires billing_customer.created and trigger.captured (if initial charge) webhooks.
Requires a valid api_key in the JSON request body
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
api_key |
body | string |
Yes | Your API key. |
org_id |
body | string |
Yes | Organization UUID. |
billing_customer_id |
body | string |
Yes | The billing customer UUID from Step 1. |
gateway |
body | string |
Yes | stripe or paypal. |
Stripe-Specific Fields
| Field | Type | Required | Description |
|---|---|---|---|
payment_method_id |
string | The Stripe payment method ID (pm_xxx) returned by confirmCardSetup() on the client side. |
|
payment_intent_id |
string | Payment Intent ID if an initial charge was processed. Used for revenue recording. | |
charge_amount |
float | Amount of the initial charge. If greater than 0, a revenue record is created. |
PayPal-Specific Fields
| Field | Type | Required | Description |
|---|---|---|---|
vault_token |
string | The PayPal vault token from the completed authorization flow. | |
payer_id |
string | PayPal payer ID. | |
payer_email |
string | PayPal payer email. Used as the payment method label. | |
capture_id |
string | PayPal capture ID if an initial charge was processed. | |
charge_amount |
float | Amount of the initial charge. If greater than 0, a revenue record is created. |
Response
{
"data": {
"gateway": "stripe",
"pm_label": "Visa \u2022\u2022\u2022\u2022 4242",
"bc_status": "active",
"revenue_id": "rev_xxx",
"payment_data": {
"pm_id": "pm_xxx",
"pm_type": "card",
"pm_label": "Visa \u2022\u2022\u2022\u2022 4242",
"card_brand": "visa",
"card_last4": "4242",
"customer_id": "cus_xxx",
"card_exp_year": 2027,
"card_exp_month": 12
},
"billing_customer_id": "bc_xxx"
},
"status": "success"
}
{
"data": {
"gateway": "paypal",
"pm_label": "[email protected]",
"bc_status": "active",
"revenue_id": "rev_xxx",
"payment_data": {
"payer_id": "PAYER_xxx",
"pm_label": "[email protected]",
"vault_token": "token_xxx"
},
"billing_customer_id": "bc_xxx"
},
"status": "success"
}
Important: This endpoint fires two webhooks when successful: billing_customer.created (with payment method details) and trigger.captured (with is_initial_charge: true if charge_amount > 0). Subscribe to these events to react when billing customers are activated.
Info: Revenue is only recorded when charge_amount is greater than 0. The revenue record has source trigger, status confirmed, and metadata including type: initial_setup.