Start a Stripe Connect authorization
Starts connecting a Stripe account to the company and returns the Stripe onboarding url (201, status pending).
- Needs Idempotency-Key and an https return_url on an allowed domain (connect_return_url_not_allowed).
- Live credentials only: test keys fail with 403 live_credential_required.
- No MCP tool: it needs a browser redirect.
Request
- Base URL: https://api.factuarea.com/v1
- URL: https://api.factuarea.com/v1/companies/{company}/connected-accounts/authorizations
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Path parameters
Public identifier (UUID v7) of the company. Get it from GET /v1/me (data.scope[].id).
Headers
Client-generated opaque key (up to 255 characters; UUID v7 recommended) that makes retries safe: the first response is cached and replayed for repeats without re-executing the mutation. Reusing a key with a different body returns 422 idempotency_key_reused; the values of secret fields (password, secret…) count as part of the body, so retrying with a corrected secret under the same key is a different request, never the replay of the earlier answer. See the Idempotency guide. Required on this operation: repeating it delivers an effect that cannot be taken back (an email sent, a file generated, a third-party call, a charge), so a request without this header is rejected with 422 idempotency_key_required before any business logic runs.
Pin the API version (YYYY-MM-DD, Stripe-style date versioning) for this request; omit to use the key's pinned version, or the latest if none. Unsupported version → 400 unsupported_api_version; malformed → 400 parameter_invalid_format. The effective version is echoed in the Factuarea-Version response header. See the Versioning guide.
Request body
Response
The authorization was started. data.url is the Stripe link to open in the browser; data.id comes back as authorization_id in the redirect to your return_url. If a valid authorization of that company and account already existed it is reused: the same id and Stripe account come back with a fresh link. There is no Location header: the authorization has no individual read.
Example response
{
"data": {
"id": "01993c4e-7a21-7b3d-9c4e-2f6a8d1b5e07",
"object": "connected_account_authorization",
"url": "https://connect.stripe.com/setup/e/acct_1Qx7KzFicticiaA2/Zr4tNq8Lw1Vb",
"return_url": "https://portal.example.com/integrations/stripe/return",
"status": "pending",
"expires_at": "2026-10-06T10:15:00+00:00",
"company_id": "01993c4e-1d02-7a4f-8b21-6c3e9f0a4d15"
}
}Changes
No recorded changes to this operation across all 1 revision of this API.