Navigation

Setup Payment Method

Step 1 of payment method setup — get the client secret or approval URL

POST /public/edge/setupPaymentMethod

Initializes payment method setup for a billing customer. For Stripe, creates a SetupIntent and returns the client_secret for use with Stripe.js confirmCardSetup(). For PayPal, creates a vault order and returns the approval_url for the customer to authorize. Creates or updates the billing customer record.

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.
brand_id body string Yes Brand UUID.
contact_id body string Yes The CRM contact UUID.
gateway body string No Payment gateway: stripe or paypal. If omitted, auto-detected from subscription settings or active integrations.
bc_id body string No Existing billing customer ID to update. If omitted, creates a new billing customer.

Response

200 Stripe setup initialized
json
{
    "data": {
        "gateway": "stripe",
        "client_secret": "seti_xxx_secret_xxx",
        "publishable_key": "pk_live_xxx",
        "setup_intent_id": "seti_xxx",
        "stripe_customer_id": "cus_xxx",
        "billing_customer_id": "bc_xxx"
    },
    "status": "success"
}
200 PayPal setup initialized
json
{
    "data": {
        "gateway": "paypal",
        "order_id": "PAYPAL_ORDER_xxx",
        "approval_url": "https://www.paypal.com/checkoutnow?token=xxx",
        "billing_customer_id": "bc_xxx"
    },
    "status": "success"
}

Important: This is Step 1 of a two-step process. After the customer completes the Stripe card form or PayPal authorization, call /public/edge/confirmPaymentMethod (Step 2) to finalize and activate the billing customer.

Tip: Gateway auto-detection checks in order: explicit gateway parameter, subscription settings allowed gateways, then active Stripe or PayPal integrations. If no gateway is found, the endpoint returns an error.

Was this article helpful?

NotebookLM Overviews