Create a checkout session (transfer scope)
POST/v3/checkout-session
Creates a scope: "transfer" checkout session. This single request shape covers two
distinct frontend SDK elements, distinguished by whether toContactGid and currency
are present — both must be sent together:
-
Without
toContactGid/currency→ mints a session for<swirepay-contact-onboarding>(collecting a new contact + linked funding source). OnlyscopeandacceptedDomainapply. See thecontactOnboardingrequest example below. -
With
toContactGidandcurrency(both required together) → mints a session for<swirepay-transfer-center>(moving money to that fixed recipient contact). Two further fields are optional and apply only to this variant:senderContactGid— scopes the "from" side to a specific sender contact's own funding sources (instead of the merchant's own) and requires the shopper to confirm a one-time code before the transfer completes.transferType— restricts which transfer-mode chips render in the widget (ACH,RAPID_ACH,RTP); if omitted, no chip is preselected unless the account's default transfer type matches one you did include.
See the
transferCenterBasic(required fields only) andtransferCenter(withsenderContactGid/transferTypeset) request examples below.
This call requires your secret API key and must be made server-side — the secret key
must never reach the browser. The returned entity.encryption value is passed to the
relevant element's secureToken prop.
This is the same physical endpoint used by <swirepay-checkout> with scope: payment/
scope: order — see the Payment Center API's own Checkout Session operation for that
variant.
See the SDK guides for the full frontend integration flow: Contact Onboarding · Transfer Center.
Request
Responses
- 200
- 400
- 401
- 412
Checkout session created successfully
Request validation failed
Unauthorized - invalid or missing API key
Scope-specific requirement not met