Skip to main content

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). Only scope and acceptedDomain apply. See the contactOnboarding request example below.

  • With toContactGid and currency (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) and transferCenter (with senderContactGid/transferType set) 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

Checkout session created successfully