Checkout Lifecycle
Provider-facing enrolment states only. This page does not describe payment collection.
Enrolment and mandate activation are two different lifecycles. Confirm uses setup complete. Authorised is mandate active only.
Enrolment
After confirmed, Salesforce creates the payment schedule and owns collection. Confirm does not collect money.
Mandate (asynchronous, separate)
You may confirm during pending_submission or submitted. Do not treat those states as Authorised. Collection waits for Authorised.
Provider-facing transitions
| After | Typical checkout.status |
What you do |
|---|---|---|
| Successful create | direct_debit_setup_required |
Open direct_debit.setup_url in the payer’s browser |
| Payer still in GoCardless | direct_debit_setup_required |
Wait; GET checkout |
| Setup complete | still direct_debit_setup_required until confirm |
Confirm when direct_debit.setup_complete is true |
| First confirm | Confirmed (checkout.status: confirmed on the response) |
Enrolment is complete |
| Repeat confirm | same confirmed checkout | already_confirmed: true |
What each enrolment step is
Create — Your backend. Creates the checkout and a draft direct-debit authority. Returns setup URL and token. Does not collect money.
Hosted BECS NZ setup — Payer browser + GoCardless. Not an authenticated provider API call.
Setup complete — Billing Request fulfilled, mandate id present, mandate pending_submission, submitted, or active. See Direct Debit Setup.
Confirm — Your backend. Records declarations, stores the Payment Plan Agreement, marks the checkout confirmed. Does not collect money.
Confirmed — Enrolment is complete for this API.
Retrieval
GET /v1/provider-checkouts/{checkoutId}
Authorization: Bearer <YOUR_API_KEY>
Use GET to decide whether to open setup, wait, or confirm. Do not infer setup complete from the browser alone.