checkout_url, and redirect the customer there. The customer selects a payment method, reviews a quote, and submits payment — without any additional work on your end.
Create a checkout
POST /api/v1/payments/checkoutsAuthentication: API key (Bearer token)
Request body
Pricing
Pricing configuration for the checkout.
Customer
Customer’s email address. Maximum 255 characters.
Customer’s first name. Maximum 255 characters.
Customer’s last name. Maximum 255 characters.
Redirect URLs
URL to redirect the customer after a successful payment. Must use
http:// or https://. Maximum 2048 characters. Syncgram appends checkout_id as a query parameter.URL to redirect the customer if they cancel. Must use
http:// or https://. Maximum 2048 characters.Other fields
Key-value pairs to attach to the checkout. Maximum 10 KB total, maximum 20 keys. Values may be strings, numbers, booleans, nested objects, or arrays. Useful for storing order IDs or internal references.
Your own reference for this checkout. Must be unique within your organization. Maximum 128 characters. If omitted, Syncgram auto-generates one.
How long the checkout remains open, in minutes. Range: 1–1440 (up to 24 hours).
Test mode only. Forces a specific final charge status. Accepted values:
success, failed, underpaid. Rejected on live mode keys.Response
Unique identifier for the checkout. Use this to look up associated charges.
Hosted checkout URL containing a signed token. Redirect your customer here. The token is time-bound and matches
expires_at.Current checkout status. Starts as
OPEN. Transitions to COMPLETED when the customer submits payment, then to EXPIRED or CANCELLED if applicable.ISO 8601 datetime when the checkout URL expires.
ISO 8601 datetime when the checkout was created.
Pricing examples
Global USD pricing
The customer sees all payment methods and currencies your organization supports. Exchange rates are computed live.USD with local currency overrides
Fix the amount customers in specific countries pay by providing explicit local prices. Customers in NGN see 75,000 NGN; customers in GHS see 620 GHS. All other currencies fall back to live rate conversion from the USD base.Single currency
Restrict the checkout to one specific currency. The customer cannot choose a different currency or payment method that uses a different currency.Checkout flow
After the customer opens thecheckout_url, the Syncgram-hosted checkout drives them through the following steps. You do not need to implement any of this — it is documented here so you understand what happens between redirect and webhook.
Load checkout
The hosted checkout calls
GET /api/v1/public/checkouts/{token} to retrieve the initial step and available payment options.Select payment method and currency
The customer picks a currency and payment method from options the backend provides. The checkout submits the selection via
POST /api/v1/public/checkouts/{token}/next.Provide additional requirements
Depending on the payment method, the backend may ask for a payment rail (e.g., MTN, Airtel), a phone number for mobile money, or a bank account number. The customer fills in these fields and submits them.
Review quote
The checkout fetches a quote from
POST /api/v1/public/checkouts/{token}/get-quote, showing the exact amount the customer will pay including fees and the exchange rate.Complete checkout
The customer confirms and the checkout calls
POST /api/v1/public/checkouts/{token}/complete, which creates a charge and initiates payment with the payment network.The
complete response is a payment initiation, not a confirmation. The charge may still be PENDING or PROCESSING when the customer lands on your success page. Use webhooks to confirm when the charge reaches SUCCEEDED.Test mode
Use a test mode API key (sk_test_...) to create checkouts without moving real money. Pass simulated_outcome to control how the charge resolves: