SumUp's REST API lets you create and process payments, manage saved customers and payment instruments, and retrieve transactions, payouts, and receipt details. It uses resource-oriented URLs and standard HTTP response codes. Send request bodies as JSON with Content-Type: application/json, unless an endpoint specifies another format.
You can experiment and work on your integration in a sandbox that doesn't affect your regular data and doesn't process real transactions. To create a sandbox merchant account visit the dashboard. To use the sandbox when interacting with SumUp APIs create an API key and use it for authentication.
Getting started: Authorization, SDKs, CLI, and API errors.
Base URL
https://api.sumup.com
Checkouts
Checkouts represent online payment sessions that you create before attempting to charge a payer. A checkout captures the payment intent, such as the amount, currency, merchant, and optional customer or redirect settings, and then moves through its lifecycle as you process it.
Use this tag to:
- create a checkout before collecting or confirming payment details
- process the checkout with a card, saved card, wallet, or supported alternative payment method
- retrieve or list checkouts to inspect their current state and associated payment attempts
- deactivate a checkout that should no longer be used
Typical workflow:
- create a checkout with the order amount, currency, and merchant information
- process the checkout through SumUp client tools such as the Payment Widget and Swift Checkout SDK
- retrieve the checkout or use the Transactions endpoints to inspect the resulting payment record
Checkouts are used to initiate and orchestrate online payments. Transactions remain the authoritative record of the resulting payment outcome.
Objects:
- Get available payment methodsGET
/v0.1/merchants/{merchant_code}/payment-methods - List checkoutsGET
/v0.1/checkouts - Create a checkoutPOST
/v0.1/checkouts - Retrieve a checkoutGET
/v0.1/checkouts/{checkout_id} - Process a checkoutPUT
/v0.1/checkouts/{checkout_id} - Deactivate a checkoutDELETE
/v0.1/checkouts/{checkout_id} - Update a checkoutPATCH
/v0.1/checkouts/{checkout_id} - Create an Apple Pay sessionPUT
/v0.2/checkouts/{checkout_id}/apple-pay-session
Customers
Customers represent payers in your integration. Create a customer with your own customer_id to associate their personal details and saved payment instruments with your business records.
To save a card, create a checkout for that customer with purpose = SETUP_RECURRING_PAYMENT, then process it with the payer's consent and mandate details. See the tokenization guide.
Use the Customers endpoints to create, retrieve, or update customer details and to list or deactivate saved payment instruments. For subsequent payments, process a new checkout with the saved instrument's token and its associated customer_id.
Objects:
- Create a customerPOST
/v0.1/customers - Retrieve a customerGET
/v0.1/customers/{customer_id} - Update a customerPUT
/v0.1/customers/{customer_id} - List payment instrumentsGET
/v0.1/customers/{customer_id}/payment-instruments - Deactivate a payment instrumentDELETE
/v0.1/customers/{customer_id}/payment-instruments/{token}
Transactions
Transactions represent completed or attempted payment operations processed for a merchant account. A transaction contains the core payment result, such as the amount, currency, payment method, creation time, and current high-level status.
In addition to the main payment outcome, a transaction can contain related events that describe what happened after the original payment attempt. These events provide visibility into the financial lifecycle of the transaction, for example:
PAYOUT: the payment being prepared for payout or included in a payout to the merchantREFUND: money returned to the payerCHARGE_BACK: money reversed after the original paymentPAYOUT_DEDUCTION: an amount deducted from a payout to cover a refund or chargeback
From an integrator's perspective, transactions are the authoritative record of payment outcomes. Use this tag to:
- list transactions for reporting, reconciliation, and customer support workflows
- retrieve a single transaction when you need the latest payment details
- inspect
simple_statusfor the current merchant-facing outcome of the payment - inspect
eventsortransaction_eventswhen you need refund, payout, or chargeback history
Typical workflow:
- create and process payments through the Checkouts endpoints
- use the Transactions endpoints to read the resulting payment records
- use the returned statuses and events to update your own order, accounting, or support systems
Payouts
The Payouts model will allow you to track funds you’ve received from SumUp.
You can receive a detailed payouts list with information like dates, fees, references and statuses, using the List payouts endpoint.
Objects:
Receipts
Retrieve structured receipt data for a transaction, including payment, merchant, and acquirer details. Use this data to display a receipt in your application. The response is JSON, rather than a rendered receipt document.
Objects:
Readers
A reader represents a device that accepts payments. You can use the SumUp Solo to accept in-person payments.
Objects:
- Create a Go Reader PaymentPOST
/v0/merchants/{merchant_code}/readers/{reader_id}/go-checkout - List ReadersGET
/v0.1/merchants/{merchant_code}/readers - Create a ReaderPOST
/v0.1/merchants/{merchant_code}/readers - Retrieve a ReaderGET
/v0.1/merchants/{merchant_code}/readers/{reader_id} - Delete a readerDELETE
/v0.1/merchants/{merchant_code}/readers/{reader_id} - Update a ReaderPATCH
/v0.1/merchants/{merchant_code}/readers/{reader_id} - Create a Reader CheckoutPOST
/v0.1/merchants/{merchant_code}/readers/{reader_id}/checkout - Get a Reader StatusGET
/v0.1/merchants/{merchant_code}/readers/{reader_id}/status - Get Reader SettingsGET
/v0.1/merchants/{merchant_code}/readers/{reader_id}/settings - Update Reader SettingsPATCH
/v0.1/merchants/{merchant_code}/readers/{reader_id}/settings - Terminate a Reader CheckoutPOST
/v0.1/merchants/{merchant_code}/readers/{reader_id}/terminate - Get a Reader CheckoutGET
/v0.1/merchants/{merchant_code}/readers/{reader_id}/checkout/{checkout_id}
Members
Endpoints to manage account members. Members are users that have membership within merchant accounts.
Beta.
Objects:
- List membersGET
/v0.1/merchants/{merchant_code}/members - Create a memberPOST
/v0.1/merchants/{merchant_code}/members - Retrieve a memberGET
/v0.1/merchants/{merchant_code}/members/{member_id} - Update a memberPUT
/v0.1/merchants/{merchant_code}/members/{member_id} - Delete a memberDELETE
/v0.1/merchants/{merchant_code}/members/{member_id}
Memberships
Endpoints to manage user's memberships. Memberships are used to connect the user to merchant accounts and to grant them access to the merchant's resources via roles.
Beta.
Objects:
Roles
Endpoints to manage custom roles. Custom roles allow you to tailor roles from individual permissions to match your needs. Once created, you can assign your custom roles to your merchant account members using the memberships.
Beta.
Objects:
- List rolesGET
/v0.1/merchants/{merchant_code}/roles - Create a rolePOST
/v0.1/merchants/{merchant_code}/roles - Retrieve a roleGET
/v0.1/merchants/{merchant_code}/roles/{role_id} - Delete a roleDELETE
/v0.1/merchants/{merchant_code}/roles/{role_id} - Update a rolePATCH
/v0.1/merchants/{merchant_code}/roles/{role_id}
Merchants
A Merchant represents a single business which can use SumUp products like payment processing.
Objects:
Sales
Tokens
Merchant tokens let your application accept card-present payments with SumUp SDKs that support token-based authentication. Use them when you want users to sign in to your application with your own authentication, then accept payments for a SumUp merchant account.
Create tokens on your backend using one of the supported authentication methods. Keep your authentication credentials on your backend. Return only the short-lived merchant token to your application and pass its access_token to the SDK.
Before returning a token, authenticate the user in your application and check that they can accept payments for the requested merchant account. A merchant token is limited to that account and the requested actions, and does not grant permissions beyond those of the identity that created it.
Tokens expire 15 minutes after creation. Use expires_in to determine the remaining lifetime and create a new token when needed. This endpoint does not return a refresh token. Treat merchant tokens as secrets: send them over HTTPS and keep them out of URLs, logs, and source code.
Objects: