Beacon

Stripe Connect API

View as Markdown

Stripe Connect API

Onboarding and state-recovery flows for Stripe Connect Standard accounts.

reference • updated 2026-03-15

Goal

Run Connect Standard onboarding with strong organization context and deterministic callback handling.

Primary endpoints

EndpointPurposeExpected outcome
POST /v1/connect/accounts/onboarding-linksstart or resume onboardingshort-lived Stripe onboarding URL
GET /v1/connect/accounts/returnsuccess callbackaccount state refreshed in Beacon
GET /v1/connect/accounts/refreshrequirements-pending callbacknew onboarding session preserving context
  1. 11) Request onboarding link

    Call onboarding-links with organization and mode (test|live).
  2. 22) Redirect to Stripe

    User completes legal and payout requirements in Connect.
  3. 33) Handle callbacks

    Process return and refresh after validating signed state.
  4. 44) Update dashboard

    Expose final status and pending requirements per organization.

Mandatory callback validation

  • Signed state is valid and unexpired.
  • Callback organization matches session organization.
  • charges_enabled and details_submitted are true before considering onboarding complete.
bash
curl -X POST https://api.beacon.pt/v1/connect/accounts/onboarding-links \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "organizationId": "<organization_id>",
    "mode": "test",
    "returnUrl": "https://app.beacon.pt/dashboard/connect/return",
    "refreshUrl": "https://app.beacon.pt/dashboard/connect/refresh"
  }'
json
{
  "onboardingUrl": "https://connect.stripe.com/setup/c/acct_123/...",
  "expiresAt": "2026-03-15T11:00:00Z"
}

Common failures and mitigation

SignalLikely causeMitigation
repeated refresh looppending legal requirements in Connectshow requirement checklist before retry
callback without contextinvalid/expired staterestart onboarding from Beacon
connected but not operationalmissing capabilitiesblock go-live until capabilities are enabled