A valid request URL is required to generate request examples{
"id": "alink_8Fq2LmV0cX4nR7tYp1KsW3dA",
"object": "account_link",
"version": 4,
"version_scope": "account_link",
"external_reference": "practice_4281",
"livemode": true,
"expires_at": "2026-10-07T18:00:00Z",
"outcome": "merchant_actions_completed",
"requested_configuration": {
"id": "ccfg_4kT9mQ2xV7nB1cR8pL5wZ3yH",
"revision": 3
},
"configuration_id": "ccfg_4kT9mQ2xV7nB1cR8pL5wZ3yH",
"configuration_revision": 3,
"pricing_offer_id": "poff_o1tg6XTDQ3v4KNDEiQrSjB5w",
"connected_account_id": "mer_7Hk2Pq9Lm4Xw1R",
"connection_id": "conn_3Rv8Kd1Nq6Lp0T",
"application_id": "app_CLAIMEDAPPLY000000000A",
"connection_status": "active",
"onboarding_status": "under_review",
"payments_enabled": false,
"existing_terms_retained": false
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Retrieve hosted onboarding progress
Returns the current state of an Account Link: how the merchant’s visit ended, which Account and Connection it produced, and the merchant’s onboarding and payment readiness.
Call it when the merchant returns. Look up the account_link value from
your return URL in your saved records first, and reject IDs you didn’t
create. Then save connected_account_id and connection_id from this
response, never from the browser.
This read never depends on the browser, so it also works after a lost
return or a closed tab. A return doesn’t mean payments are enabled: check
payments_enabled and onboarding_status, and subscribe to
account.updated for later changes. Use a key in the same mode that
created the link.
A valid request URL is required to generate request examples{
"id": "alink_8Fq2LmV0cX4nR7tYp1KsW3dA",
"object": "account_link",
"version": 4,
"version_scope": "account_link",
"external_reference": "practice_4281",
"livemode": true,
"expires_at": "2026-10-07T18:00:00Z",
"outcome": "merchant_actions_completed",
"requested_configuration": {
"id": "ccfg_4kT9mQ2xV7nB1cR8pL5wZ3yH",
"revision": 3
},
"configuration_id": "ccfg_4kT9mQ2xV7nB1cR8pL5wZ3yH",
"configuration_revision": 3,
"pricing_offer_id": "poff_o1tg6XTDQ3v4KNDEiQrSjB5w",
"connected_account_id": "mer_7Hk2Pq9Lm4Xw1R",
"connection_id": "conn_3Rv8Kd1Nq6Lp0T",
"application_id": "app_CLAIMEDAPPLY000000000A",
"connection_status": "active",
"onboarding_status": "under_review",
"payments_enabled": false,
"existing_terms_retained": false
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
A Platform Connect secret key (sk_…) sent as Authorization: Bearer <key>.
Path Parameters
Account Link ID saved against your customer before redirect.
^alink_[0-9A-Za-z]{24}$Response
Current state of the link for your Platform and key mode.
Account Link ID.
^alink_[0-9A-Za-z]{24}$account_link Increases each time this result changes. Use it to ignore out-of-order webhook deliveries.
The sequence version belongs to: account_link.
The external_reference you sent, or an empty string.
true for a live-mode link.
When the merchant's visit stops accepting actions. Before the merchant opens url, this is the link's expiry.
How the merchant's visit went. It describes the visit, not payment readiness.
in_progress: the merchant hasn't finished or left yet.merchant_actions_completed: the merchant did everything this visit needed: connected, and signed the application if the configuration includes one. Payments may still be under review.cancelled: the merchant left before connecting.incomplete: the merchant connected, then left before finishing.expired: the link or visit expired first.blocked: the Account or Connection can no longer be used, or the application was closed.
in_progress, merchant_actions_completed, cancelled, incomplete, expired, blocked A published Connect configuration and the revision of it that applies.
Show child attributes
Show child attributes
Whether the Account can take payments in this link's mode right now.
The configuration whose terms apply to the merchant's application. Differs from requested_configuration when existing_terms_retained is true.
Revision of configuration_id.
Pricing on the merchant's application.
The merchant's Account ID. Send it as the Ionic-Account header on
requests you make for the merchant. For a new-merchant configuration
it's present from creation, before consent, and doesn't by itself let
you act for the merchant; wait for connection_id.
The Connection that grants your Platform access. Present after the owner consents.
The merchant's application, for configurations that include one.
Current status of connection_id: active, suspended, or
disconnected. Present after consent.
Where the merchant is in onboarding. For connect-only configurations it is absent once the owner consents. Read the current value rather than inferring it from the return.
awaiting_consent: Ionic created the Account; the owner hasn't clicked Connect yet.collecting: the merchant is filling in the application.awaiting_signature: submitted, waiting for the merchant to sign.under_review: signed; Ionic is reviewing it.approved: the Account can take live payments, including a merchant who already could.closed: the application was closed and can't continue.
true when the merchant keeps pricing they already have with Ionic instead of this configuration's terms, for example a merchant who already takes live payments.

