Skip to content

API Reference

SumUp API reference and code samples.

SumUp’s REST API operates with JSON HTTP requests and responses. The request bodies are sent through resource-oriented URLs and use the standard HTTP response codes.

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.

Base URL
https://api.sumup.com

SDKs

The SumUp SDKs reduce the amount of work required to use our REST APIs. SumUp maintains SDKs for PHP, Node.js, Python, Java, Go, Rust, and .NET.

Install SDK
# Select a client library to see installation instructions.
npm install --save @sumup/sdk
go get github.com/sumup/sumup-go
// Maven
<dependency>
<groupId>com.sumup</groupId>
<artifactId>sumup-sdk</artifactId>
<version>0.0.6</version>
</dependency>
// Gradle
implementation "com.sumup:sumup-sdk:0.0.6"
dotnet add package SumUp
pip install sumup
# or
uv add sumup
composer require sumup/sumup-php
cargo add sumup

You can also explore out APIs in Postman using SumUp Developers public collection.

Authentication

The SumUp API uses API keys to authenticate requests. You can view, create, and manage your API keys in the Dashboard.

Test mode secret keys have the prefix sk_test_ and live mode secret keys have the prefix sk_live_. Alternatively, you can use restricted API keys for granular permissions.

Keep your API keys secret and safe. Do not share your API keys or expose them in a publicly accessible areas such as client-side code (browser or apps) or in the GitHub.

All API requests must be made over HTTPS and authenticated. Calls made over plain HTTP or calls without authentication will fail.

Authenticate
curl https://api.sumup.com/v0.1/checkouts \
-H "Authorization: Bearer sup_sk_MvxmLOl0..."
import { SumUp } from '@sumup/sdk';
const sumup = new SumUp({ apiKey: 'sup_sk_MvxmLOl0...' });
package main
import (
"github.com/sumup/sumup-go/client"
sumup "github.com/sumup/sumup-go"
)
func main() {
client := sumup.NewClient(client.WithAPIKey("sup_sk_MvxmLOl0..."))
}
SumUpClient client =
SumUpClient.builder()
.accessToken("sup_sk_MvxmLOl0...")
.build();
using SumUp;
var client = new SumUpClient(new SumUpClientOptions
{
AccessToken = "sup_sk_MvxmLOl0...",
});
from sumup import Sumup
client = SumUp(api_key="sup_sk_MvxmLOl0...")
$sumup = new \SumUp\SumUp("sup_sk_MvxmLOl0...");
use sumup::Client;
let client = Client::default().with_authorization("sup_sk_MvxmLOl0...");