Stripe

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.
post/companies/{company}/connected-accounts/authorizations

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

companystring uuid required

Public identifier (UUID v7) of the company. Get it from GET /v1/me (data.scope[].id).

Headers

Idempotency-Keystring required
Example:01928f10-7c0e-7c4a-9b7d-2f8a6e3c1d4b

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.

Factuarea-Versionstring date
Example:2026-06-01

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

return_urlstring uri required

HTTPS URL the person is sent back to when Stripe finishes (up to 2048 characters). Its host must be one of the return domains of the account of the credential, otherwise the request returns 422 connect_return_url_not_allowed. Factuarea appends these query parameters on the way back: status (success or error), provider (always stripe) and authorization_id always; on success also company_id (the company id, UUID v7), connected_account_id and account; on error also error and, when there is one, error_subcode.

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.