Skip to content

Checkouts

SumUp API reference and code samples.

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.

The Checkout object

Core checkout resource returned by the Checkouts API. A checkout is created before payment processing and then updated as payment attempts, redirects, and resulting transactions are attached to it.

  • checkout_referencestringmax length: 90

    Merchant-defined reference for the checkout. Use it to correlate the SumUp checkout with your own order, cart, subscription, or payment attempt in your systems.

    Example: "f00a8f74-b05d-4605-bd73-2a901bae5802"
  • amountnumber

    Amount to be charged to the payer, expressed in major units.

    Example: 10.1
  • currencyCurrency
    Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

    Three-letter ISO 4217 currency code of the amount.

    Example: "EUR"
  • merchant_codestring

    Short unique identifier for the merchant that receives the payment.

    Example: "MH4H92C7"
  • descriptionstring

    Short merchant-defined description shown in SumUp tools and reporting. Use it to make the checkout easier to recognize in dashboards, support workflows, and reconciliation.

    Example: "Purchase"
  • return_urlstringformat: uri

    Optional backend callback URL used by SumUp to notify your platform about processing updates for the checkout.

    Example: "http://example.com"
  • idstringRead only

    Unique SumUp identifier of the checkout resource.

    Example: "4e425463-3e1b-431d-83fa-1e51c2925e99"
  • statusstring
    Options: PENDINGFAILEDPAIDEXPIRED

    Current high-level state of the checkout. PENDING means the checkout exists but is not yet completed, PAID means a payment succeeded, FAILED means the latest processing attempt failed, and EXPIRED means the checkout can no longer be processed.

    Example: "PENDING"
  • datestringformat: date-time

    The timestamp of when the checkout was created.

    Example: "2020-02-29T10:56:56+00:00"
  • valid_untilstringformat: date-time, nullable

    Optional expiration timestamp. The checkout must be processed before this moment, otherwise it becomes unusable. If omitted, the checkout does not have an explicit expiry time.

    Example: "2020-02-29T10:56:56+00:00"
  • customer_idstring

    Merchant-scoped identifier of the customer associated with the checkout. Use it when storing payment instruments or reusing saved customer context for recurring and returning-payer flows.

    Example: "831ff8d4cd5958ab5670"
  • mandateMandate Response

    Details of the mandate linked to the saved payment instrument.

     Show attributes
     Close
    Mandate Response
    • typestring

      Type of mandate stored for the checkout or payment instrument.

      Example: "recurrent"
    • statusstring
      Options: activeinactive

      Current lifecycle status of the mandate.

      Example: "active"
    • merchant_codestring

      Short unique identifier for the merchant for which the mandate is valid.

      Example: "MH4H92C7"
    Example: {"type":"recurrent","status":"active","merchant_code":"MH4H92C7"}
  • hosted_checkout_urlstringformat: uri, Read only

    URL of the SumUp-hosted payment page that handles the payment flow. Returned when Hosted Checkout is enabled for the checkout.

    Example: "https://checkout.sumup.com/pay/8f9316a3-cda9-42a9-9771-54d534315676"
  • transactions[]objectunique items

    Payment attempts and resulting transaction records linked to this checkout. Use the Transactions endpoints when you need the authoritative payment result and event history.

     Show attributes
     Close
    Attributes
    • idstring

      Unique identifier of the transaction.

      Example: "6b425463-3e1b-431d-83fa-1e51c2925e99"
    • transaction_codestring

      Transaction code returned by the acquirer/processing entity after processing the transaction.

      Example: "TEENSK4W2K"
    • amountnumber

      Total amount of the transaction.

      Example: 10.1
    • currencyCurrency
      Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

      Three-letter ISO 4217 currency code of the amount.

      Example: "EUR"
    • timestampstringformat: date-time

      The timestamp of when the transaction was created.

      Example: "2020-02-29T10:56:56.876Z"
    • statusTransaction Status
      Options: SUCCESSFULCANCELLEDFAILEDPENDINGREFUNDED

      Current status of the transaction.

      • PENDING: The transaction has been created but its final outcome is not known yet.
      • SUCCESSFUL: The transaction completed successfully.
      • CANCELLED: The transaction was cancelled or otherwise reversed before completion.
      • FAILED: The transaction attempt did not complete successfully.
      • REFUNDED: The transaction was refunded in full or in part.
      Example: "SUCCESSFUL"
    • payment_typePayment Type
      Options: CASHPOSECOMRECURRINGBITCOINBALANCEMOTOBOLETODIRECT_DEBITAPMUNKNOWN

      Payment type used for the transaction.

      Example: "ECOM"
    • installments_countintegerminimum: 1

      Number of installments for a deferred payment.

      Example: 1
    • merchant_codestring

      Unique code of the registered merchant to whom the payment is made.

      Example: "MH4H92C7"
    • vat_amountnumber

      Amount of the applicable VAT (out of the total transaction amount).

      Example: 6
    • tip_amountnumber

      Amount of the tip (out of the total transaction amount).

      Example: 3
    • entry_modeEntry Mode
      Options: BOLETOSOFORTIDEALBANCONTACTEPSMYBANKSATISPAYBLIKP24GIROPAYPIXQR_CODE_PIXAPPLE_PAYGOOGLE_PAYPAYPALTWINTNONECHIPMANUAL_ENTRYCUSTOMER_ENTRYMAGSTRIPE_FALLBACKMAGSTRIPEDIRECT_DEBITCONTACTLESSMOTOCONTACTLESS_MAGSTRIPEN/A

      Entry mode of the payment details.

      Example: "CUSTOMER_ENTRY"
    • auth_codestring

      Authorization code for the transaction sent by the payment card issuer or bank. Applicable only to card payments.

      Example: "053201"
The Checkout object
{
"checkout_reference": "f00a8f74-b05d-4605-bd73-2a901bae5802",
"amount": 10.1,
"currency": "EUR",
"merchant_code": "MH4H92C7",
"description": "Purchase",
"return_url": "http://example.com",
"id": "4e425463-3e1b-431d-83fa-1e51c2925e99",
"status": "PENDING",
"date": "2020-02-29T10:56:56+00:00",
"valid_until": "2020-02-29T10:56:56+00:00",
"customer_id": "831ff8d4cd5958ab5670",
"mandate": {
"type": "recurrent",
"status": "active",
"merchant_code": "MH4H92C7"
},
"hosted_checkout_url": "https://checkout.sumup.com/pay/8f9316a3-cda9-42a9-9771-54d534315676",
"transactions": [
{
"id": "410fc44a-5956-44e1-b5cc-19c6f8d727a4",
"transaction_code": "TEENSK4W2K",
"amount": 10.1,
"currency": "EUR",
"timestamp": "2020-02-29T10:56:56.876Z",
"status": "SUCCESSFUL",
"payment_type": "ECOM",
"installments_count": 1,
"merchant_code": "MH4H92C7",
"vat_amount": 6,
"tip_amount": 3,
"entry_mode": "CUSTOMER_ENTRY",
"auth_code": "012345"
}
]
}
Checkouts

List checkouts

GET/v0.1/checkouts

Lists created checkout resources according to the applied checkout_reference.

Requires one of scopes:paymentscheckouts.read

Query Parameters

  • checkout_referencestring

    Filters the list of checkout resources by the unique reference of the checkout.

    Example: "f00a8f74-b05d-4605-bd73-2a901bae5802"

Response

Returns a list of checkout resources.

[]CheckoutSuccess
 Show attributes
 Close
Checkout Success
  • checkout_referencestringmax length: 90

    Merchant-defined reference for the checkout. Use it to correlate the SumUp checkout with your own order, cart, subscription, or payment attempt in your systems.

    Example: "f00a8f74-b05d-4605-bd73-2a901bae5802"
  • amountnumber

    Amount to be charged to the payer, expressed in major units.

    Example: 10.1
  • currencyCurrency
    Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

    Three-letter ISO 4217 currency code of the amount.

    Example: "EUR"
  • merchant_codestring

    Short unique identifier for the merchant that receives the payment.

    Example: "MH4H92C7"
  • descriptionstring

    Short merchant-defined description shown in SumUp tools and reporting. Use it to make the checkout easier to recognize in dashboards, support workflows, and reconciliation.

    Example: "Purchase"
  • return_urlstringformat: uri

    Optional backend callback URL used by SumUp to notify your platform about processing updates for the checkout.

    Example: "http://example.com"
  • idstringRead only

    Unique SumUp identifier of the checkout resource.

    Example: "4e425463-3e1b-431d-83fa-1e51c2925e99"
  • statusstring
    Options: PENDINGFAILEDPAIDEXPIRED

    Current high-level state of the checkout. PENDING means the checkout exists but is not yet completed, PAID means a payment succeeded, FAILED means the latest processing attempt failed, and EXPIRED means the checkout can no longer be processed.

    Example: "PENDING"
  • datestringformat: date-time

    The timestamp of when the checkout was created.

    Example: "2020-02-29T10:56:56+00:00"
  • valid_untilstringformat: date-time, nullable

    Optional expiration timestamp. The checkout must be processed before this moment, otherwise it becomes unusable. If omitted, the checkout does not have an explicit expiry time.

    Example: "2020-02-29T10:56:56+00:00"
  • customer_idstring

    Merchant-scoped identifier of the customer associated with the checkout. Use it when storing payment instruments or reusing saved customer context for recurring and returning-payer flows.

    Example: "831ff8d4cd5958ab5670"
  • mandateMandate Response

    Details of the mandate linked to the saved payment instrument.

     Show attributes
     Close
    Mandate Response
    • typestring

      Type of mandate stored for the checkout or payment instrument.

      Example: "recurrent"
    • statusstring
      Options: activeinactive

      Current lifecycle status of the mandate.

      Example: "active"
    • merchant_codestring

      Short unique identifier for the merchant for which the mandate is valid.

      Example: "MH4H92C7"
    Example: {"type":"recurrent","status":"active","merchant_code":"MH4H92C7"}
  • hosted_checkout_urlstringformat: uri, Read only

    URL of the SumUp-hosted payment page that handles the payment flow. Returned when Hosted Checkout is enabled for the checkout.

    Example: "https://checkout.sumup.com/pay/8f9316a3-cda9-42a9-9771-54d534315676"
  • transactions[]objectunique items

    Payment attempts and resulting transaction records linked to this checkout. Use the Transactions endpoints when you need the authoritative payment result and event history.

     Show attributes
     Close
    Attributes
    • idstring

      Unique identifier of the transaction.

      Example: "6b425463-3e1b-431d-83fa-1e51c2925e99"
    • transaction_codestring

      Transaction code returned by the acquirer/processing entity after processing the transaction.

      Example: "TEENSK4W2K"
    • amountnumber

      Total amount of the transaction.

      Example: 10.1
    • currencyCurrency
      Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

      Three-letter ISO 4217 currency code of the amount.

      Example: "EUR"
    • timestampstringformat: date-time

      The timestamp of when the transaction was created.

      Example: "2020-02-29T10:56:56.876Z"
    • statusTransaction Status
      Options: SUCCESSFULCANCELLEDFAILEDPENDINGREFUNDED

      Current status of the transaction.

      • PENDING: The transaction has been created but its final outcome is not known yet.
      • SUCCESSFUL: The transaction completed successfully.
      • CANCELLED: The transaction was cancelled or otherwise reversed before completion.
      • FAILED: The transaction attempt did not complete successfully.
      • REFUNDED: The transaction was refunded in full or in part.
      Example: "SUCCESSFUL"
    • payment_typePayment Type
      Options: CASHPOSECOMRECURRINGBITCOINBALANCEMOTOBOLETODIRECT_DEBITAPMUNKNOWN

      Payment type used for the transaction.

      Example: "ECOM"
    • installments_countintegerminimum: 1

      Number of installments for a deferred payment.

      Example: 1
    • merchant_codestring

      Unique code of the registered merchant to whom the payment is made.

      Example: "MH4H92C7"
    • vat_amountnumber

      Amount of the applicable VAT (out of the total transaction amount).

      Example: 6
    • tip_amountnumber

      Amount of the tip (out of the total transaction amount).

      Example: 3
    • entry_modeEntry Mode
      Options: BOLETOSOFORTIDEALBANCONTACTEPSMYBANKSATISPAYBLIKP24GIROPAYPIXQR_CODE_PIXAPPLE_PAYGOOGLE_PAYPAYPALTWINTNONECHIPMANUAL_ENTRYCUSTOMER_ENTRYMAGSTRIPE_FALLBACKMAGSTRIPEDIRECT_DEBITCONTACTLESSMOTOCONTACTLESS_MAGSTRIPEN/A

      Entry mode of the payment details.

      Example: "CUSTOMER_ENTRY"
    • auth_codestring

      Authorization code for the transaction sent by the payment card issuer or bank. Applicable only to card payments.

      Example: "053201"
  • transaction_codestringRead only

    Transaction code of the successful transaction with which the payment for the checkout is completed.

    Example: "TEENSK4W2K"
  • transaction_idstringRead only

    Unique identifier of the successful transaction that completed payment for the checkout.

    Example: "410fc44a-5956-44e1-b5cc-19c6f8d727a4"
  • merchant_namestring

    Name of the merchant.

    Example: "Sample Merchant"
  • redirect_urlstring

    URL where the payer is redirected after a redirect-based payment or SCA flow completes.

    Example: "https://mysite.com/completed_purchase"
  • payment_instrumentobject

    Details of the saved payment instrument created or reused during checkout processing.

     Show attributes
     Close
    Attributes
    • tokenstring

      Unique token of the saved payment instrument.

      Example: "e76d7e5c-9375-4fac-a7e7-b19dc5302fbc"
    GET/v0.1/checkouts
    curl https://api.sumup.com/v0.1/checkouts \
    -X GET \
    -H "Authorization: Bearer $SUMUP_API_KEY"
    import SumUp from '@sumup/sdk';
    const client = new SumUp();
    const result = await client.checkouts.list();
    using SumUp;
    var client = new SumUpClient();
    var result = await client.Checkouts.ListAsync();
    import com.sumup.sdk.SumUpClient;
    SumUpClient client = SumUpClient.builder().build();
    var result = client.checkouts().listCheckouts();
    from sumup import Sumup
    client = Sumup()
    result = client.checkouts.list()
    $sumup = new \SumUp\SumUp();
    $result = $sumup->checkouts->list();
    client := sumup.NewClient()
    result, err := client.Checkouts.List(context.Background())
    use sumup::Client;
    let client = Client::default();
    let result = client.checkouts().list(sumup::ListCheckoutsParams{
    checkout_reference: Some("f00a8f74-b05d-4605-bd73-2a901bae5802".to_string()),
    }).await;
    Response
    [
    {
    "checkout_reference": "f00a8f74-b05d-4605-bd73-2a901bae5802",
    "amount": 10.1,
    "currency": "EUR",
    "merchant_code": "MH4H92C7",
    "description": "Purchase",
    "id": "4e425463-3e1b-431d-83fa-1e51c2925e99",
    "status": "PENDING",
    "date": "2020-02-29T10:56:56+00:00"
    }
    ]

    Content-Type: application/json

    The request is not authorized.

    • typestringrequiredformat: uri

      A URI reference that identifies the problem type.

      Example: "https://developer.sumup.com/problem/not-found"
    • titlestring

      A short, human-readable summary of the problem type.

      Example: "Requested resource couldn't be found."
    • statusinteger

      The HTTP status code generated by the origin server for this occurrence of the problem.

      Example: 404
    • detailstring

      A human-readable explanation specific to this occurrence of the problem.

      Example: "The requested resource doesn't exist or does not belong to you."
    • instancestringformat: uri

      A URI reference that identifies the specific occurrence of the problem.

      Example: "https://api.sumup.com/v0.1/checkouts/4e425463-3e1b-431d-83fa-1e51c2925e99"
    Error 401
    {
    "detail": "Unauthorized.",
    "status": 401,
    "title": "Unauthorized",
    "trace_id": "3c77294349d3b5647ea2d990f0d8f017",
    "type": "https://developer.sumup.com/problem/unauthorized"
    }
    Checkouts

    Create a checkout

    POST/v0.1/checkouts

    Creates a new payment checkout resource. The unique checkout_reference created by this request, is used for further manipulation of the checkout.

    For 3DS checkouts, add the redirect_url parameter to your request body schema. To use the Hosted Checkout page, set the hosted_checkout.enabled to true.

    Follow by processing a checkout to charge the provided payment instrument.

    Requires one of scopes:paymentscheckouts.write

    Body Parameters

    • checkout_referencestringrequiredmax length: 90

      Merchant-defined reference for the new checkout. It should be unique enough for you to identify the payment attempt in your own systems.

      Example: "f00a8f74-b05d-4605-bd73-2a901bae5802"
    • amountnumberrequired

      Amount to be charged to the payer, expressed in major units.

      Example: 10.1
    • currencyCurrencyrequired
      Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

      Three-letter ISO 4217 currency code of the amount.

      Example: "EUR"
    • merchant_codestringrequired

      Short unique identifier for the merchant that should receive the payment.

      Example: "MH4H92C7"
    • descriptionstring

      Short merchant-defined description shown in SumUp tools and reporting for easier identification of the checkout.

      Example: "Purchase"
    • return_urlstringformat: uri

      Optional backend callback URL used by SumUp to notify your platform about processing updates for the checkout.

      Example: "http://example.com/"
    • customer_idstring

      Merchant-scoped customer identifier. Required when setting up recurring payments and useful when the checkout should be linked to a returning payer.

      Example: "831ff8d4cd5958ab5670"
    • purposestringdefault: CHECKOUT
      Options: CHECKOUTSETUP_RECURRING_PAYMENT

      Business purpose of the checkout. Use CHECKOUT for a standard payment and SETUP_RECURRING_PAYMENT when collecting consent and payment details for future recurring charges.

    • valid_untilstringformat: date-time, nullable

      Optional expiration timestamp. The checkout must be processed before this moment, otherwise it becomes unusable. If omitted, the checkout does not have an explicit expiry time.

      Example: "2020-02-29T10:56:56+00:00"
    • redirect_urlstring

      URL where the payer should be sent after a redirect-based payment or SCA flow completes. This is required for APMs and recommended for card checkouts that may require 3DS. If it is omitted, the Payment Widget can render the challenge in an iframe instead of using a full-page redirect.

      Example: "https://mysite.com/completed_purchase"
    • hosted_checkoutHosted Checkout

      Hosted Checkout configuration. Enable it to receive a SumUp-hosted payment page URL in the checkout response.

       Show attributes
       Close
      Hosted Checkout
      • enabledbooleanrequired

        Whether the checkout should include a SumUp-hosted payment page.

        Example: true

    Response

    Returns the created checkout resource. See Checkout object.

    • checkout_referencestringmax length: 90

      Merchant-defined reference for the checkout. Use it to correlate the SumUp checkout with your own order, cart, subscription, or payment attempt in your systems.

      Example: "f00a8f74-b05d-4605-bd73-2a901bae5802"
    • amountnumber

      Amount to be charged to the payer, expressed in major units.

      Example: 10.1
    • currencyCurrency
      Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

      Three-letter ISO 4217 currency code of the amount.

      Example: "EUR"
    • merchant_codestring

      Short unique identifier for the merchant that receives the payment.

      Example: "MH4H92C7"
    • descriptionstring

      Short merchant-defined description shown in SumUp tools and reporting. Use it to make the checkout easier to recognize in dashboards, support workflows, and reconciliation.

      Example: "Purchase"
    • return_urlstringformat: uri

      Optional backend callback URL used by SumUp to notify your platform about processing updates for the checkout.

      Example: "http://example.com"
    • idstringRead only

      Unique SumUp identifier of the checkout resource.

      Example: "4e425463-3e1b-431d-83fa-1e51c2925e99"
    • statusstring
      Options: PENDINGFAILEDPAIDEXPIRED

      Current high-level state of the checkout. PENDING means the checkout exists but is not yet completed, PAID means a payment succeeded, FAILED means the latest processing attempt failed, and EXPIRED means the checkout can no longer be processed.

      Example: "PENDING"
    • datestringformat: date-time

      The timestamp of when the checkout was created.

      Example: "2020-02-29T10:56:56+00:00"
    • valid_untilstringformat: date-time, nullable

      Optional expiration timestamp. The checkout must be processed before this moment, otherwise it becomes unusable. If omitted, the checkout does not have an explicit expiry time.

      Example: "2020-02-29T10:56:56+00:00"
    • customer_idstring

      Merchant-scoped identifier of the customer associated with the checkout. Use it when storing payment instruments or reusing saved customer context for recurring and returning-payer flows.

      Example: "831ff8d4cd5958ab5670"
    • mandateMandate Response

      Details of the mandate linked to the saved payment instrument.

       Show attributes
       Close
      Mandate Response
      • typestring

        Type of mandate stored for the checkout or payment instrument.

        Example: "recurrent"
      • statusstring
        Options: activeinactive

        Current lifecycle status of the mandate.

        Example: "active"
      • merchant_codestring

        Short unique identifier for the merchant for which the mandate is valid.

        Example: "MH4H92C7"
      Example: {"type":"recurrent","status":"active","merchant_code":"MH4H92C7"}
    • hosted_checkout_urlstringformat: uri, Read only

      URL of the SumUp-hosted payment page that handles the payment flow. Returned when Hosted Checkout is enabled for the checkout.

      Example: "https://checkout.sumup.com/pay/8f9316a3-cda9-42a9-9771-54d534315676"
    • transactions[]objectunique items

      Payment attempts and resulting transaction records linked to this checkout. Use the Transactions endpoints when you need the authoritative payment result and event history.

       Show attributes
       Close
      Attributes
      • idstring

        Unique identifier of the transaction.

        Example: "6b425463-3e1b-431d-83fa-1e51c2925e99"
      • transaction_codestring

        Transaction code returned by the acquirer/processing entity after processing the transaction.

        Example: "TEENSK4W2K"
      • amountnumber

        Total amount of the transaction.

        Example: 10.1
      • currencyCurrency
        Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

        Three-letter ISO 4217 currency code of the amount.

        Example: "EUR"
      • timestampstringformat: date-time

        The timestamp of when the transaction was created.

        Example: "2020-02-29T10:56:56.876Z"
      • statusTransaction Status
        Options: SUCCESSFULCANCELLEDFAILEDPENDINGREFUNDED

        Current status of the transaction.

        • PENDING: The transaction has been created but its final outcome is not known yet.
        • SUCCESSFUL: The transaction completed successfully.
        • CANCELLED: The transaction was cancelled or otherwise reversed before completion.
        • FAILED: The transaction attempt did not complete successfully.
        • REFUNDED: The transaction was refunded in full or in part.
        Example: "SUCCESSFUL"
      • payment_typePayment Type
        Options: CASHPOSECOMRECURRINGBITCOINBALANCEMOTOBOLETODIRECT_DEBITAPMUNKNOWN

        Payment type used for the transaction.

        Example: "ECOM"
      • installments_countintegerminimum: 1

        Number of installments for a deferred payment.

        Example: 1
      • merchant_codestring

        Unique code of the registered merchant to whom the payment is made.

        Example: "MH4H92C7"
      • vat_amountnumber

        Amount of the applicable VAT (out of the total transaction amount).

        Example: 6
      • tip_amountnumber

        Amount of the tip (out of the total transaction amount).

        Example: 3
      • entry_modeEntry Mode
        Options: BOLETOSOFORTIDEALBANCONTACTEPSMYBANKSATISPAYBLIKP24GIROPAYPIXQR_CODE_PIXAPPLE_PAYGOOGLE_PAYPAYPALTWINTNONECHIPMANUAL_ENTRYCUSTOMER_ENTRYMAGSTRIPE_FALLBACKMAGSTRIPEDIRECT_DEBITCONTACTLESSMOTOCONTACTLESS_MAGSTRIPEN/A

        Entry mode of the payment details.

        Example: "CUSTOMER_ENTRY"
      • auth_codestring

        Authorization code for the transaction sent by the payment card issuer or bank. Applicable only to card payments.

        Example: "053201"
    POST/v0.1/checkouts
    curl https://api.sumup.com/v0.1/checkouts \
    -X POST \
    -H "Authorization: Bearer $SUMUP_API_KEY" \
    --json '{
    "checkout_reference": "f00a8f74-b05d-4605-bd73-2a901bae5802",
    "amount": 10.1,
    "currency": "EUR",
    "merchant_code": "MH4H92C7"
    }'
    import SumUp from '@sumup/sdk';
    const client = new SumUp();
    const result = await client.checkouts.create({
    checkout_reference: "f00a8f74-b05d-4605-bd73-2a901bae5802",
    amount: 10.1,
    currency: "EUR",
    merchant_code: "MH4H92C7",
    });
    using SumUp;
    var client = new SumUpClient();
    var result = await client.Checkouts.CreateAsync(
    new CheckoutCreateRequest
    {
    CheckoutReference = "f00a8f74-b05d-4605-bd73-2a901bae5802",
    Amount = 10.1,
    Currency = "EUR",
    MerchantCode = "MH4H92C7",
    }
    );
    import com.sumup.sdk.SumUpClient;
    SumUpClient client = SumUpClient.builder().build();
    var result = client.checkouts().createCheckout(
    CheckoutCreateRequest.builder()
    .checkoutReference("f00a8f74-b05d-4605-bd73-2a901bae5802")
    .amount(10.1f)
    .currency(Currency.fromValue("EUR"))
    .merchantCode("MH4H92C7")
    .build()
    );
    from sumup import Sumup
    client = Sumup()
    result = client.checkouts.create(CreateCheckoutBody(
    checkout_reference="f00a8f74-b05d-4605-bd73-2a901bae5802",
    amount=10.1,
    currency="EUR",
    merchant_code="MH4H92C7",
    ))
    $sumup = new \SumUp\SumUp();
    $result = $sumup->checkouts->create([
    'checkout_reference' => 'f00a8f74-b05d-4605-bd73-2a901bae5802',
    'amount' => 10.1,
    'currency' => 'EUR',
    'merchant_code' => 'MH4H92C7',
    ]);
    client := sumup.NewClient()
    result, err := client.Checkouts.Create(context.Background(), sumup.CheckoutsCreateParams{
    CheckoutReference: "f00a8f74-b05d-4605-bd73-2a901bae5802",
    Amount: 10.1,
    Currency: "EUR",
    MerchantCode: "MH4H92C7",
    })
    use sumup::Client;
    let client = Client::default();
    let result = client.checkouts().create(sumup::CreateCheckoutBody{
    checkout_reference: "f00a8f74-b05d-4605-bd73-2a901bae5802".to_string(),
    amount: 10.1,
    currency: "EUR".to_string(),
    merchant_code: "MH4H92C7".to_string(),
    }).await;
    Response
    {
    "checkout_reference": "8ea25ec3-3293-40e9-a165-6d7f3b3073c5",
    "amount": 10.1,
    "currency": "EUR",
    "merchant_code": "MH4H92C7",
    "merchant_country": "DE",
    "description": "My Checkout",
    "return_url": "http://example.com",
    "id": "88fcf8de-304d-4820-8f1c-ec880290eb92",
    "status": "PENDING",
    "date": "2020-02-29T10:56:56+00:00",
    "valid_until": "2020-02-29T10:56:56+00:00",
    "customer_id": "831ff8d4cd5958ab5670",
    "mandate": {
    "type": "recurrent",
    "status": "active",
    "merchant_code": "MH4H92C7"
    },
    "transactions": [
    {
    "id": "410fc44a-5956-44e1-b5cc-19c6f8d727a4",
    "transaction_code": "TEENSK4W2K",
    "amount": 10.1,
    "currency": "EUR",
    "timestamp": "2020-02-29T10:56:56.876Z",
    "status": "SUCCESSFUL",
    "payment_type": "ECOM",
    "installments_count": 1,
    "merchant_code": "MH4H92C7",
    "vat_amount": 6,
    "tip_amount": 3,
    "entry_mode": "CUSTOMER_ENTRY",
    "auth_code": "012345"
    }
    ]
    }
    {
    "checkout_reference": "8ea25ec3-3293-40e9-a165-6d7f3b3073c5",
    "amount": 10.1,
    "currency": "EUR",
    "description": "My Checkout",
    "return_url": "http://example.com",
    "id": "88fcf8de-304d-4820-8f1c-ec880290eb92",
    "status": "PENDING",
    "date": "2020-02-29T10:56:56+00:00",
    "valid_until": "2020-02-29T10:56:56+00:00",
    "customer_id": "831ff8d4cd5958ab5670",
    "redirect_url": "https://mysite.com/completed_purchase",
    "transactions": [
    {
    "id": "410fc44a-5956-44e1-b5cc-19c6f8d727a4",
    "transaction_code": "TEENSK4W2K",
    "amount": 10.1,
    "currency": "EUR",
    "timestamp": "2020-02-29T10:56:56.876Z",
    "status": "SUCCESSFUL",
    "payment_type": "ECOM",
    "installments_count": 1,
    "merchant_code": "MH4H92C7",
    "vat_amount": 6,
    "tip_amount": 3,
    "entry_mode": "CUSTOMER_ENTRY",
    "auth_code": "012345"
    }
    ]
    }
    {
    "checkout_reference": "8ea25ec3-3293-40e9-a165-6d7f3b3073c5",
    "amount": 10.1,
    "currency": "EUR",
    "merchant_code": "MH4H92C7",
    "description": "My Checkout",
    "return_url": "http://example.com",
    "id": "88fcf8de-304d-4820-8f1c-ec880290eb92",
    "status": "PENDING",
    "date": "2021-06-29T11:08:36.000+00:00",
    "merchant_name": "My company",
    "merchant_country": "DE",
    "redirect_url": "https://sumup.com",
    "purpose": "CHECKOUT",
    "transactions": [
    {
    "id": "410fc44a-5956-44e1-b5cc-19c6f8d727a4",
    "transaction_code": "TEENSK4W2K",
    "amount": 10.1,
    "currency": "EUR",
    "timestamp": "2020-02-29T10:56:56.876Z",
    "status": "SUCCESSFUL",
    "payment_type": "ECOM",
    "installments_count": 1,
    "merchant_code": "MH4H92C7",
    "vat_amount": 6,
    "tip_amount": 3,
    "entry_mode": "CUSTOMER_ENTRY",
    "auth_code": "012345"
    }
    ]
    }
    {
    "checkout_reference": "b50pr914-6k0e-3091-a592-890010285b3d",
    "amount": 12,
    "currency": "EUR",
    "merchant_code": "MCXXXXXX",
    "merchant_country": "DE",
    "merchant_name": "Sample Shop",
    "description": "A sample checkout",
    "id": "64553e20-3f0e-49e4-8af3-fd0eca86ce91",
    "status": "PENDING",
    "date": "2000-01-01T12:49:24.899+00:00",
    "purpose": "CHECKOUT",
    "hosted_checkout": {
    "enabled": true
    },
    "hosted_checkout_url": "https://checkout.sumup.com/pay/8f9316a3-cda9-42a9-9771-54d534315676",
    "transactions": []
    }

    Content-Type: application/json

    The request body is invalid.

    • messagestring

      Short description of the error.

      Example: "Resource not found"
    • error_codestring

      Platform code for the error.

      Example: "NOT_FOUND"
    • paramstring

      Parameter name (with relative location) to which the error applies. Parameters from embedded resources are displayed using dot notation. For example, card.name refers to the name parameter embedded in the card object.

      Example: "card.name"
    Error 400
    {
    "message": "Validation error",
    "error_code": "MISSING",
    "param": "merchant_code"
    }
    Checkouts

    Retrieve a checkout

    GET/v0.1/checkouts/{checkout_id}

    Retrieves an identified checkout resource. Use this request after processing a checkout to confirm its status and inform the end user respectively.

    Requires one of scopes:paymentscheckouts.read

    Path Parameters

    • checkout_idstringrequired

      Unique identifier of the checkout resource.

      Example: "4e425463-3e1b-431d-83fa-1e51c2925e99"

    Response

    Returns the requested checkout resource.

    • checkout_referencestringmax length: 90

      Merchant-defined reference for the checkout. Use it to correlate the SumUp checkout with your own order, cart, subscription, or payment attempt in your systems.

      Example: "f00a8f74-b05d-4605-bd73-2a901bae5802"
    • amountnumber

      Amount to be charged to the payer, expressed in major units.

      Example: 10.1
    • currencyCurrency
      Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

      Three-letter ISO 4217 currency code of the amount.

      Example: "EUR"
    • merchant_codestring

      Short unique identifier for the merchant that receives the payment.

      Example: "MH4H92C7"
    • descriptionstring

      Short merchant-defined description shown in SumUp tools and reporting. Use it to make the checkout easier to recognize in dashboards, support workflows, and reconciliation.

      Example: "Purchase"
    • return_urlstringformat: uri

      Optional backend callback URL used by SumUp to notify your platform about processing updates for the checkout.

      Example: "http://example.com"
    • idstringRead only

      Unique SumUp identifier of the checkout resource.

      Example: "4e425463-3e1b-431d-83fa-1e51c2925e99"
    • statusstring
      Options: PENDINGFAILEDPAIDEXPIRED

      Current high-level state of the checkout. PENDING means the checkout exists but is not yet completed, PAID means a payment succeeded, FAILED means the latest processing attempt failed, and EXPIRED means the checkout can no longer be processed.

      Example: "PENDING"
    • datestringformat: date-time

      The timestamp of when the checkout was created.

      Example: "2020-02-29T10:56:56+00:00"
    • valid_untilstringformat: date-time, nullable

      Optional expiration timestamp. The checkout must be processed before this moment, otherwise it becomes unusable. If omitted, the checkout does not have an explicit expiry time.

      Example: "2020-02-29T10:56:56+00:00"
    • customer_idstring

      Merchant-scoped identifier of the customer associated with the checkout. Use it when storing payment instruments or reusing saved customer context for recurring and returning-payer flows.

      Example: "831ff8d4cd5958ab5670"
    • mandateMandate Response

      Details of the mandate linked to the saved payment instrument.

       Show attributes
       Close
      Mandate Response
      • typestring

        Type of mandate stored for the checkout or payment instrument.

        Example: "recurrent"
      • statusstring
        Options: activeinactive

        Current lifecycle status of the mandate.

        Example: "active"
      • merchant_codestring

        Short unique identifier for the merchant for which the mandate is valid.

        Example: "MH4H92C7"
      Example: {"type":"recurrent","status":"active","merchant_code":"MH4H92C7"}
    • hosted_checkout_urlstringformat: uri, Read only

      URL of the SumUp-hosted payment page that handles the payment flow. Returned when Hosted Checkout is enabled for the checkout.

      Example: "https://checkout.sumup.com/pay/8f9316a3-cda9-42a9-9771-54d534315676"
    • transactions[]objectunique items

      Payment attempts and resulting transaction records linked to this checkout. Use the Transactions endpoints when you need the authoritative payment result and event history.

       Show attributes
       Close
      Attributes
      • idstring

        Unique identifier of the transaction.

        Example: "6b425463-3e1b-431d-83fa-1e51c2925e99"
      • transaction_codestring

        Transaction code returned by the acquirer/processing entity after processing the transaction.

        Example: "TEENSK4W2K"
      • amountnumber

        Total amount of the transaction.

        Example: 10.1
      • currencyCurrency
        Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

        Three-letter ISO 4217 currency code of the amount.

        Example: "EUR"
      • timestampstringformat: date-time

        The timestamp of when the transaction was created.

        Example: "2020-02-29T10:56:56.876Z"
      • statusTransaction Status
        Options: SUCCESSFULCANCELLEDFAILEDPENDINGREFUNDED

        Current status of the transaction.

        • PENDING: The transaction has been created but its final outcome is not known yet.
        • SUCCESSFUL: The transaction completed successfully.
        • CANCELLED: The transaction was cancelled or otherwise reversed before completion.
        • FAILED: The transaction attempt did not complete successfully.
        • REFUNDED: The transaction was refunded in full or in part.
        Example: "SUCCESSFUL"
      • payment_typePayment Type
        Options: CASHPOSECOMRECURRINGBITCOINBALANCEMOTOBOLETODIRECT_DEBITAPMUNKNOWN

        Payment type used for the transaction.

        Example: "ECOM"
      • installments_countintegerminimum: 1

        Number of installments for a deferred payment.

        Example: 1
      • merchant_codestring

        Unique code of the registered merchant to whom the payment is made.

        Example: "MH4H92C7"
      • vat_amountnumber

        Amount of the applicable VAT (out of the total transaction amount).

        Example: 6
      • tip_amountnumber

        Amount of the tip (out of the total transaction amount).

        Example: 3
      • entry_modeEntry Mode
        Options: BOLETOSOFORTIDEALBANCONTACTEPSMYBANKSATISPAYBLIKP24GIROPAYPIXQR_CODE_PIXAPPLE_PAYGOOGLE_PAYPAYPALTWINTNONECHIPMANUAL_ENTRYCUSTOMER_ENTRYMAGSTRIPE_FALLBACKMAGSTRIPEDIRECT_DEBITCONTACTLESSMOTOCONTACTLESS_MAGSTRIPEN/A

        Entry mode of the payment details.

        Example: "CUSTOMER_ENTRY"
      • auth_codestring

        Authorization code for the transaction sent by the payment card issuer or bank. Applicable only to card payments.

        Example: "053201"
    • transaction_codestringRead only

      Transaction code of the successful transaction with which the payment for the checkout is completed.

      Example: "TEENSK4W2K"
    • transaction_idstringRead only

      Unique identifier of the successful transaction that completed payment for the checkout.

      Example: "410fc44a-5956-44e1-b5cc-19c6f8d727a4"
    • merchant_namestring

      Name of the merchant.

      Example: "Sample Merchant"
    • redirect_urlstring

      URL where the payer is redirected after a redirect-based payment or SCA flow completes.

      Example: "https://mysite.com/completed_purchase"
    • payment_instrumentobject

      Details of the saved payment instrument created or reused during checkout processing.

       Show attributes
       Close
      Attributes
      • tokenstring

        Unique token of the saved payment instrument.

        Example: "e76d7e5c-9375-4fac-a7e7-b19dc5302fbc"
    GET/v0.1/checkouts/{checkout_id}
    curl https://api.sumup.com/v0.1/checkouts/{checkout_id} \
    -X GET \
    -H "Authorization: Bearer $SUMUP_API_KEY"
    import SumUp from '@sumup/sdk';
    const client = new SumUp();
    const result = await client.checkouts.get("4e425463-3e1b-431d-83fa-1e51c2925e99");
    using SumUp;
    var client = new SumUpClient();
    var result = await client.Checkouts.GetAsync(
    "4e425463-3e1b-431d-83fa-1e51c2925e99"
    );
    import com.sumup.sdk.SumUpClient;
    SumUpClient client = SumUpClient.builder().build();
    var result = client.checkouts().getCheckout(
    "4e425463-3e1b-431d-83fa-1e51c2925e99"
    );
    from sumup import Sumup
    client = Sumup()
    result = client.checkouts.get("4e425463-3e1b-431d-83fa-1e51c2925e99")
    $sumup = new \SumUp\SumUp();
    $result = $sumup->checkouts->get('4e425463-3e1b-431d-83fa-1e51c2925e99');
    client := sumup.NewClient()
    result, err := client.Checkouts.Get(context.Background(), "4e425463-3e1b-431d-83fa-1e51c2925e99")
    use sumup::Client;
    let client = Client::default();
    let result = client.checkouts().get("4e425463-3e1b-431d-83fa-1e51c2925e99").await;
    Response
    {
    "checkout_reference": "f00a8f74-b05d-4605-bd73-2a901bae5802",
    "amount": 10.1,
    "currency": "EUR",
    "merchant_code": "MH4H92C7",
    "description": "Purchase",
    "id": "4e425463-3e1b-431d-83fa-1e51c2925e99",
    "status": "PENDING",
    "date": "2020-02-29T10:56:56+00:00",
    "transaction_code": "TEENSK4W2K",
    "transaction_id": "410fc44a-5956-44e1-b5cc-19c6f8d727a4"
    }

    Content-Type: application/json

    The request is not authorized.

    • typestringrequiredformat: uri

      A URI reference that identifies the problem type.

      Example: "https://developer.sumup.com/problem/not-found"
    • titlestring

      A short, human-readable summary of the problem type.

      Example: "Requested resource couldn't be found."
    • statusinteger

      The HTTP status code generated by the origin server for this occurrence of the problem.

      Example: 404
    • detailstring

      A human-readable explanation specific to this occurrence of the problem.

      Example: "The requested resource doesn't exist or does not belong to you."
    • instancestringformat: uri

      A URI reference that identifies the specific occurrence of the problem.

      Example: "https://api.sumup.com/v0.1/checkouts/4e425463-3e1b-431d-83fa-1e51c2925e99"
    Error 401
    {
    "detail": "Unauthorized.",
    "status": 401,
    "title": "Unauthorized",
    "trace_id": "3c77294349d3b5647ea2d990f0d8f017",
    "type": "https://developer.sumup.com/problem/unauthorized"
    }
    Checkouts

    Update a checkout

    PATCH/v0.1/checkouts/{checkout_id}

    Updates an identified checkout resource.

    Requires one of scopes:paymentscheckouts.write

    Path Parameters

    • checkout_idstringrequired

      Unique identifier of the checkout resource.

      Example: "4e425463-3e1b-431d-83fa-1e51c2925e99"

    Body Parameters

    • amountnumber

      Updated amount to be charged to the payer, expressed in major units.

      Example: 12.5
    • currencyCurrency
      Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

      Three-letter ISO 4217 currency code of the amount.

      Example: "EUR"
    • descriptionstring

      Updated short merchant-defined description shown in SumUp tools and reporting.

      Example: "Updated purchase"
    • checkout_referencestringmax length: 90

      Updated merchant-defined reference for the checkout.

      Example: "f00a8f74-b05d-4605-bd73-2a901bae5802"
    • valid_untilstringformat: date-time, nullable

      Updated expiration timestamp. The checkout must be processed before this moment, otherwise it becomes unusable.

      Example: "2020-02-29T10:56:56+00:00"
    • customer_idstring

      Updated merchant-scoped customer identifier associated with the checkout.

      Example: "831ff8d4cd5958ab5670"

    Response

    Returns the updated checkout resource. See Checkout object.

    • checkout_referencestringmax length: 90

      Merchant-defined reference for the checkout. Use it to correlate the SumUp checkout with your own order, cart, subscription, or payment attempt in your systems.

      Example: "f00a8f74-b05d-4605-bd73-2a901bae5802"
    • amountnumber

      Amount to be charged to the payer, expressed in major units.

      Example: 10.1
    • currencyCurrency
      Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

      Three-letter ISO 4217 currency code of the amount.

      Example: "EUR"
    • merchant_codestring

      Short unique identifier for the merchant that receives the payment.

      Example: "MH4H92C7"
    • descriptionstring

      Short merchant-defined description shown in SumUp tools and reporting. Use it to make the checkout easier to recognize in dashboards, support workflows, and reconciliation.

      Example: "Purchase"
    • return_urlstringformat: uri

      Optional backend callback URL used by SumUp to notify your platform about processing updates for the checkout.

      Example: "http://example.com"
    • idstringRead only

      Unique SumUp identifier of the checkout resource.

      Example: "4e425463-3e1b-431d-83fa-1e51c2925e99"
    • statusstring
      Options: PENDINGFAILEDPAIDEXPIRED

      Current high-level state of the checkout. PENDING means the checkout exists but is not yet completed, PAID means a payment succeeded, FAILED means the latest processing attempt failed, and EXPIRED means the checkout can no longer be processed.

      Example: "PENDING"
    • datestringformat: date-time

      The timestamp of when the checkout was created.

      Example: "2020-02-29T10:56:56+00:00"
    • valid_untilstringformat: date-time, nullable

      Optional expiration timestamp. The checkout must be processed before this moment, otherwise it becomes unusable. If omitted, the checkout does not have an explicit expiry time.

      Example: "2020-02-29T10:56:56+00:00"
    • customer_idstring

      Merchant-scoped identifier of the customer associated with the checkout. Use it when storing payment instruments or reusing saved customer context for recurring and returning-payer flows.

      Example: "831ff8d4cd5958ab5670"
    • mandateMandate Response

      Details of the mandate linked to the saved payment instrument.

       Show attributes
       Close
      Mandate Response
      • typestring

        Type of mandate stored for the checkout or payment instrument.

        Example: "recurrent"
      • statusstring
        Options: activeinactive

        Current lifecycle status of the mandate.

        Example: "active"
      • merchant_codestring

        Short unique identifier for the merchant for which the mandate is valid.

        Example: "MH4H92C7"
      Example: {"type":"recurrent","status":"active","merchant_code":"MH4H92C7"}
    • hosted_checkout_urlstringformat: uri, Read only

      URL of the SumUp-hosted payment page that handles the payment flow. Returned when Hosted Checkout is enabled for the checkout.

      Example: "https://checkout.sumup.com/pay/8f9316a3-cda9-42a9-9771-54d534315676"
    • transactions[]objectunique items

      Payment attempts and resulting transaction records linked to this checkout. Use the Transactions endpoints when you need the authoritative payment result and event history.

       Show attributes
       Close
      Attributes
      • idstring

        Unique identifier of the transaction.

        Example: "6b425463-3e1b-431d-83fa-1e51c2925e99"
      • transaction_codestring

        Transaction code returned by the acquirer/processing entity after processing the transaction.

        Example: "TEENSK4W2K"
      • amountnumber

        Total amount of the transaction.

        Example: 10.1
      • currencyCurrency
        Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

        Three-letter ISO 4217 currency code of the amount.

        Example: "EUR"
      • timestampstringformat: date-time

        The timestamp of when the transaction was created.

        Example: "2020-02-29T10:56:56.876Z"
      • statusTransaction Status
        Options: SUCCESSFULCANCELLEDFAILEDPENDINGREFUNDED

        Current status of the transaction.

        • PENDING: The transaction has been created but its final outcome is not known yet.
        • SUCCESSFUL: The transaction completed successfully.
        • CANCELLED: The transaction was cancelled or otherwise reversed before completion.
        • FAILED: The transaction attempt did not complete successfully.
        • REFUNDED: The transaction was refunded in full or in part.
        Example: "SUCCESSFUL"
      • payment_typePayment Type
        Options: CASHPOSECOMRECURRINGBITCOINBALANCEMOTOBOLETODIRECT_DEBITAPMUNKNOWN

        Payment type used for the transaction.

        Example: "ECOM"
      • installments_countintegerminimum: 1

        Number of installments for a deferred payment.

        Example: 1
      • merchant_codestring

        Unique code of the registered merchant to whom the payment is made.

        Example: "MH4H92C7"
      • vat_amountnumber

        Amount of the applicable VAT (out of the total transaction amount).

        Example: 6
      • tip_amountnumber

        Amount of the tip (out of the total transaction amount).

        Example: 3
      • entry_modeEntry Mode
        Options: BOLETOSOFORTIDEALBANCONTACTEPSMYBANKSATISPAYBLIKP24GIROPAYPIXQR_CODE_PIXAPPLE_PAYGOOGLE_PAYPAYPALTWINTNONECHIPMANUAL_ENTRYCUSTOMER_ENTRYMAGSTRIPE_FALLBACKMAGSTRIPEDIRECT_DEBITCONTACTLESSMOTOCONTACTLESS_MAGSTRIPEN/A

        Entry mode of the payment details.

        Example: "CUSTOMER_ENTRY"
      • auth_codestring

        Authorization code for the transaction sent by the payment card issuer or bank. Applicable only to card payments.

        Example: "053201"
    PATCH/v0.1/checkouts/{checkout_id}
    curl https://api.sumup.com/v0.1/checkouts/{checkout_id} \
    -X PATCH \
    -H "Authorization: Bearer $SUMUP_API_KEY" \
    --json '{
    "amount": 12.5,
    "currency": "EUR",
    "description": "Updated purchase",
    "checkout_reference": "f00a8f74-b05d-4605-bd73-2a901bae5802",
    "valid_until": "2020-02-29T10:56:56+00:00",
    "customer_id": "831ff8d4cd5958ab5670"
    }'
    import SumUp from '@sumup/sdk';
    const client = new SumUp();
    const result = await client.checkouts.update("4e425463-3e1b-431d-83fa-1e51c2925e99", {
    amount: 12.5,
    currency: "EUR",
    description: "Updated purchase",
    checkout_reference: "f00a8f74-b05d-4605-bd73-2a901bae5802",
    valid_until: "2020-02-29T10:56:56+00:00",
    customer_id: "831ff8d4cd5958ab5670",
    });
    using SumUp;
    var client = new SumUpClient();
    var result = await client.Checkouts.UpdateAsync(
    "4e425463-3e1b-431d-83fa-1e51c2925e99",
    new CheckoutUpdateRequest
    {
    Amount = 12.5,
    Currency = "EUR",
    Description = "Updated purchase",
    CheckoutReference = "f00a8f74-b05d-4605-bd73-2a901bae5802",
    ValidUntil = "2020-02-29T10:56:56+00:00",
    CustomerId = "831ff8d4cd5958ab5670",
    }
    );
    import com.sumup.sdk.SumUpClient;
    SumUpClient client = SumUpClient.builder().build();
    var result = client.checkouts().updateCheckout(
    "4e425463-3e1b-431d-83fa-1e51c2925e99",
    CheckoutUpdateRequest.builder()
    .amount(12.5f)
    .currency(Currency.fromValue("EUR"))
    .description("Updated purchase")
    .checkoutReference("f00a8f74-b05d-4605-bd73-2a901bae5802")
    .validUntil(java.time.OffsetDateTime.parse("2020-02-29T10:56:56+00:00"))
    .customerId("831ff8d4cd5958ab5670")
    .build()
    );
    from sumup import Sumup
    client = Sumup()
    result = client.checkouts.update("4e425463-3e1b-431d-83fa-1e51c2925e99", UpdateCheckoutBody(
    amount=12.5,
    currency="EUR",
    description="Updated purchase",
    checkout_reference="f00a8f74-b05d-4605-bd73-2a901bae5802",
    valid_until="2020-02-29T10:56:56+00:00",
    customer_id="831ff8d4cd5958ab5670",
    ))
    $sumup = new \SumUp\SumUp();
    $result = $sumup->checkouts->update('4e425463-3e1b-431d-83fa-1e51c2925e99', [
    'amount' => 12.5,
    'currency' => 'EUR',
    'description' => 'Updated purchase',
    'checkout_reference' => 'f00a8f74-b05d-4605-bd73-2a901bae5802',
    'valid_until' => '2020-02-29T10:56:56+00:00',
    'customer_id' => '831ff8d4cd5958ab5670',
    ]);
    client := sumup.NewClient()
    result, err := client.Checkouts.Update(context.Background(), "4e425463-3e1b-431d-83fa-1e51c2925e99", sumup.CheckoutsUpdateParams{
    Amount: 12.5,
    Currency: "EUR",
    Description: "Updated purchase",
    CheckoutReference: "f00a8f74-b05d-4605-bd73-2a901bae5802",
    ValidUntil: "2020-02-29T10:56:56+00:00",
    CustomerId: "831ff8d4cd5958ab5670",
    })
    use sumup::Client;
    let client = Client::default();
    let result = client.checkouts().update("4e425463-3e1b-431d-83fa-1e51c2925e99", sumup::UpdateCheckoutBody{
    amount: 12.5,
    currency: "EUR".to_string(),
    description: "Updated purchase".to_string(),
    checkout_reference: "f00a8f74-b05d-4605-bd73-2a901bae5802".to_string(),
    valid_until: "2020-02-29T10:56:56+00:00".to_string(),
    customer_id: "831ff8d4cd5958ab5670".to_string(),
    }).await;
    Response
    {
    "checkout_reference": "f00a8f74-b05d-4605-bd73-2a901bae5802",
    "amount": 12.5,
    "currency": "EUR",
    "merchant_code": "MH4H92C7",
    "merchant_country": "DE",
    "description": "Updated purchase",
    "id": "88fcf8de-304d-4820-8f1c-ec880290eb92",
    "status": "PENDING",
    "date": "2020-02-29T10:56:56+00:00",
    "valid_until": "2020-02-29T10:56:56+00:00",
    "customer_id": "831ff8d4cd5958ab5670",
    "transactions": []
    }

    Content-Type: application/json

    The request is not authorized.

    • typestringrequiredformat: uri

      A URI reference that identifies the problem type.

      Example: "https://developer.sumup.com/problem/not-found"
    • titlestring

      A short, human-readable summary of the problem type.

      Example: "Requested resource couldn't be found."
    • statusinteger

      The HTTP status code generated by the origin server for this occurrence of the problem.

      Example: 404
    • detailstring

      A human-readable explanation specific to this occurrence of the problem.

      Example: "The requested resource doesn't exist or does not belong to you."
    • instancestringformat: uri

      A URI reference that identifies the specific occurrence of the problem.

      Example: "https://api.sumup.com/v0.1/checkouts/4e425463-3e1b-431d-83fa-1e51c2925e99"
    Error 401
    {
    "detail": "Unauthorized.",
    "status": 401,
    "title": "Unauthorized",
    "trace_id": "3c77294349d3b5647ea2d990f0d8f017",
    "type": "https://developer.sumup.com/problem/unauthorized"
    }
    Checkouts

    Deactivate a checkout

    DELETE/v0.1/checkouts/{checkout_id}

    Deactivates an identified checkout resource. If the checkout has already been processed it can not be deactivated.

    Requires one of scopes:paymentscheckouts.write

    Path Parameters

    • checkout_idstringrequired

      Unique identifier of the checkout resource.

      Example: "4e425463-3e1b-431d-83fa-1e51c2925e99"

    Response

    Returns the checkout object after successful deactivation. See Checkout object.

    • checkout_referencestringmax length: 90

      Merchant-defined reference for the checkout. Use it to correlate the SumUp checkout with your own order, cart, subscription, or payment attempt in your systems.

      Example: "f00a8f74-b05d-4605-bd73-2a901bae5802"
    • amountnumber

      Amount to be charged to the payer, expressed in major units.

      Example: 10.1
    • currencyCurrency
      Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

      Three-letter ISO 4217 currency code of the amount.

      Example: "EUR"
    • merchant_codestring

      Short unique identifier for the merchant that receives the payment.

      Example: "MH4H92C7"
    • descriptionstring

      Short merchant-defined description shown in SumUp tools and reporting. Use it to make the checkout easier to recognize in dashboards, support workflows, and reconciliation.

      Example: "Purchase"
    • return_urlstringformat: uri

      Optional backend callback URL used by SumUp to notify your platform about processing updates for the checkout.

      Example: "http://example.com"
    • idstringRead only

      Unique SumUp identifier of the checkout resource.

      Example: "4e425463-3e1b-431d-83fa-1e51c2925e99"
    • statusstring
      Options: PENDINGFAILEDPAIDEXPIRED

      Current high-level state of the checkout. PENDING means the checkout exists but is not yet completed, PAID means a payment succeeded, FAILED means the latest processing attempt failed, and EXPIRED means the checkout can no longer be processed.

      Example: "PENDING"
    • datestringformat: date-time

      The timestamp of when the checkout was created.

      Example: "2020-02-29T10:56:56+00:00"
    • valid_untilstringformat: date-time, nullable

      Optional expiration timestamp. The checkout must be processed before this moment, otherwise it becomes unusable. If omitted, the checkout does not have an explicit expiry time.

      Example: "2020-02-29T10:56:56+00:00"
    • customer_idstring

      Merchant-scoped identifier of the customer associated with the checkout. Use it when storing payment instruments or reusing saved customer context for recurring and returning-payer flows.

      Example: "831ff8d4cd5958ab5670"
    • mandateMandate Response

      Details of the mandate linked to the saved payment instrument.

       Show attributes
       Close
      Mandate Response
      • typestring

        Type of mandate stored for the checkout or payment instrument.

        Example: "recurrent"
      • statusstring
        Options: activeinactive

        Current lifecycle status of the mandate.

        Example: "active"
      • merchant_codestring

        Short unique identifier for the merchant for which the mandate is valid.

        Example: "MH4H92C7"
      Example: {"type":"recurrent","status":"active","merchant_code":"MH4H92C7"}
    • hosted_checkout_urlstringformat: uri, Read only

      URL of the SumUp-hosted payment page that handles the payment flow. Returned when Hosted Checkout is enabled for the checkout.

      Example: "https://checkout.sumup.com/pay/8f9316a3-cda9-42a9-9771-54d534315676"
    • transactions[]objectunique items

      Payment attempts and resulting transaction records linked to this checkout. Use the Transactions endpoints when you need the authoritative payment result and event history.

       Show attributes
       Close
      Attributes
      • idstring

        Unique identifier of the transaction.

        Example: "6b425463-3e1b-431d-83fa-1e51c2925e99"
      • transaction_codestring

        Transaction code returned by the acquirer/processing entity after processing the transaction.

        Example: "TEENSK4W2K"
      • amountnumber

        Total amount of the transaction.

        Example: 10.1
      • currencyCurrency
        Options: BGNBRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSD

        Three-letter ISO 4217 currency code of the amount.

        Example: "EUR"
      • timestampstringformat: date-time

        The timestamp of when the transaction was created.

        Example: "2020-02-29T10:56:56.876Z"
      • statusTransaction Status
        Options: SUCCESSFULCANCELLEDFAILEDPENDINGREFUNDED

        Current status of the transaction.

        • PENDING: The transaction has been created but its final outcome is not known yet.
        • SUCCESSFUL: The transaction completed successfully.
        • CANCELLED: The transaction was cancelled or otherwise reversed before completion.
        • FAILED: The transaction attempt did not complete successfully.
        • REFUNDED: The transaction was refunded in full or in part.
        Example: "SUCCESSFUL"
      • payment_typePayment Type
        Options: CASHPOSECOMRECURRINGBITCOINBALANCEMOTOBOLETODIRECT_DEBITAPMUNKNOWN

        Payment type used for the transaction.

        Example: "ECOM"
      • installments_countintegerminimum: 1

        Number of installments for a deferred payment.

        Example: 1
      • merchant_codestring

        Unique code of the registered merchant to whom the payment is made.

        Example: "MH4H92C7"
      • vat_amountnumber

        Amount of the applicable VAT (out of the total transaction amount).

        Example: 6
      • tip_amountnumber

        Amount of the tip (out of the total transaction amount).

        Example: 3
      • entry_modeEntry Mode
        Options: BOLETOSOFORTIDEALBANCONTACTEPSMYBANKSATISPAYBLIKP24GIROPAYPIXQR_CODE_PIXAPPLE_PAYGOOGLE_PAYPAYPALTWINTNONECHIPMANUAL_ENTRYCUSTOMER_ENTRYMAGSTRIPE_FALLBACKMAGSTRIPEDIRECT_DEBITCONTACTLESSMOTOCONTACTLESS_MAGSTRIPEN/A

        Entry mode of the payment details.

        Example: "CUSTOMER_ENTRY"
      • auth_codestring

        Authorization code for the transaction sent by the payment card issuer or bank. Applicable only to card payments.

        Example: "053201"
    DELETE/v0.1/checkouts/{checkout_id}
    curl https://api.sumup.com/v0.1/checkouts/{checkout_id} \
    -X DELETE \
    -H "Authorization: Bearer $SUMUP_API_KEY"
    import SumUp from '@sumup/sdk';
    const client = new SumUp();
    const result = await client.checkouts.deactivate("4e425463-3e1b-431d-83fa-1e51c2925e99");
    using SumUp;
    var client = new SumUpClient();
    var result = await client.Checkouts.DeactivateAsync(
    "4e425463-3e1b-431d-83fa-1e51c2925e99"
    );
    import com.sumup.sdk.SumUpClient;
    SumUpClient client = SumUpClient.builder().build();
    var result = client.checkouts().deactivateCheckout(
    "4e425463-3e1b-431d-83fa-1e51c2925e99"
    );
    from sumup import Sumup
    client = Sumup()
    result = client.checkouts.deactivate("4e425463-3e1b-431d-83fa-1e51c2925e99")
    $sumup = new \SumUp\SumUp();
    $result = $sumup->checkouts->deactivate('4e425463-3e1b-431d-83fa-1e51c2925e99');
    client := sumup.NewClient()
    result, err := client.Checkouts.Deactivate(context.Background(), "4e425463-3e1b-431d-83fa-1e51c2925e99")
    use sumup::Client;
    let client = Client::default();
    let result = client.checkouts().deactivate("4e425463-3e1b-431d-83fa-1e51c2925e99").await;
    Response
    {
    "checkout_reference": "f00a8f74-b05d-4605-bd73-2a901bae5802",
    "id": "817340ce-f1d9-4609-b90a-6152f8ee267j",
    "amount": 2,
    "currency": "EUR",
    "merchant_code": "MH4H92C7",
    "description": "Deletion example",
    "purpose": "CHECKOUT",
    "status": "EXPIRED",
    "date": "2020-02-29T10:56:56+00:00",
    "valid_until": "2020-02-29T10:56:56+00:00",
    "merchant_name": "Sample Merchant",
    "transactions": []
    }

    Content-Type: application/json

    The request is not authorized.

    • typestringrequiredformat: uri

      A URI reference that identifies the problem type.

      Example: "https://developer.sumup.com/problem/not-found"
    • titlestring

      A short, human-readable summary of the problem type.

      Example: "Requested resource couldn't be found."
    • statusinteger

      The HTTP status code generated by the origin server for this occurrence of the problem.

      Example: 404
    • detailstring

      A human-readable explanation specific to this occurrence of the problem.

      Example: "The requested resource doesn't exist or does not belong to you."
    • instancestringformat: uri

      A URI reference that identifies the specific occurrence of the problem.

      Example: "https://api.sumup.com/v0.1/checkouts/4e425463-3e1b-431d-83fa-1e51c2925e99"
    Error 401
    {
    "detail": "Unauthorized.",
    "status": 401,
    "title": "Unauthorized",
    "trace_id": "3c77294349d3b5647ea2d990f0d8f017",
    "type": "https://developer.sumup.com/problem/unauthorized"
    }
    Checkouts

    Get available payment methods

    GET/v0.1/merchants/{merchant_code}/payment-methods

    Get payment methods available for the given merchant to use with a checkout.

    Path Parameters

    • merchant_codestringrequired

      Short unique identifier for the merchant.

      Example: "MH4H92C7"

    Query Parameters

    • amountnumber

      The amount for which the payment methods should be eligible, in major units.

      Example: 9.99
    • currencystring

      The currency for which the payment methods should be eligible.

      Example: "EUR"

    Response

    Available payment methods

    • available_payment_methods[]object

      Payment methods available to the merchant for the checkout.

       Show attributes
       Close
      Attributes
      • idstringrequired

        Unique identifier of the payment method.

        Example: "qr_code_pix"
    GET/v0.1/merchants/{merchant_code}/payment-methods
    curl https://api.sumup.com/v0.1/merchants/{merchant_code}/payment-methods \
    -X GET \
    -H "Authorization: Bearer $SUMUP_API_KEY"
    import SumUp from '@sumup/sdk';
    const client = new SumUp();
    const result = await client.checkouts.listAvailablePaymentMethods("MH4H92C7");
    using SumUp;
    var client = new SumUpClient();
    var result = await client.Checkouts.ListAvailablePaymentMethodsAsync(
    "MH4H92C7"
    );
    import com.sumup.sdk.SumUpClient;
    SumUpClient client = SumUpClient.builder().build();
    var result = client.checkouts().getPaymentMethods(
    "MH4H92C7"
    );
    from sumup import Sumup
    client = Sumup()
    result = client.checkouts.list_available_payment_methods("MH4H92C7")
    $sumup = new \SumUp\SumUp();
    $result = $sumup->checkouts->listAvailablePaymentMethods('MH4H92C7');
    client := sumup.NewClient()
    result, err := client.Checkouts.ListAvailablePaymentMethods(context.Background(), "MH4H92C7")
    use sumup::Client;
    let client = Client::default();
    let result = client.checkouts().list_available_payment_methods("MH4H92C7", sumup::GetPaymentMethodsParams{
    amount: Some(9.99),
    currency: Some("EUR".to_string()),
    }).await;
    Response
    {
    "available_payment_methods": [
    {
    "id": "apple_pay"
    },
    {
    "id": "blik"
    }
    ]
    }

    Content-Type: application/json

    The request is invalid for the submitted query parameters.

    • titlestring

      Short title of the error.

      Example: "Bad Request"
    • detailsstring

      Details of the error.

      Example: "One or more of the parameters are invalid."
    • statusnumber

      HTTP status code for the error.

      Example: 400
    • failed_constraints[]object

      List of violated validation constraints.

       Show attributes
       Close
      Attributes
      • messagestring

        Human-readable description of the violated constraint.

        Example: "Currency must also be specified when filtering by amount"
      • referencestring

        Name of the field that violated the constraint.

        Example: "currency"
    Error 400
    {
    "failed_constraints": [
    {
    "message": "Currency must also be specified when filtering by amount",
    "reference": "currency"
    }
    ],
    "status": 400,
    "title": "Bad Request"
    }
    Checkouts

    Create an Apple Pay session

    PUT/v0.2/checkouts/{checkout_id}/apple-pay-session

    Creates an Apple Pay merchant session for the specified checkout.

    Use this endpoint after the customer selects Apple Pay and before calling ApplePaySession.completeMerchantValidation(...) in the browser. SumUp validates the merchant session request and returns the Apple Pay session object that your frontend should pass to Apple's JavaScript API.

    Path Parameters

    • checkout_idstringrequired

      Unique identifier of the checkout resource.

      Example: "4e425463-3e1b-431d-83fa-1e51c2925e99"

    Body Parameters

    • contextstringrequiredformat: hostname

      the context to create this apple pay session.

      Example: "example.com"
    • targetstringrequiredformat: uri

      The target url to create this apple pay session.

      Example: "https://apple-pay-gateway-cert.apple.com/paymentservices/startSession"

    Response

    Successful request. Returns the Apple Pay merchant session object that should be forwarded to the Apple Pay JS SDK to complete merchant validation and continue the payment flow.

      PUT/v0.2/checkouts/{checkout_id}/apple-pay-session
      curl https://api.sumup.com/v0.2/checkouts/{checkout_id}/apple-pay-session \
      -X PUT \
      -H "Authorization: Bearer $SUMUP_API_KEY" \
      --json '{
      "context": "example.com",
      "target": "https://apple-pay-gateway-cert.apple.com/paymentservices/startSession"
      }'
      import SumUp from '@sumup/sdk';
      const client = new SumUp();
      const result = await client.checkouts.createApplePaySession("4e425463-3e1b-431d-83fa-1e51c2925e99", {
      context: "example.com",
      target: "https://apple-pay-gateway-cert.apple.com/paymentservices/startSession",
      });
      using SumUp;
      var client = new SumUpClient();
      var result = await client.Checkouts.CreateApplePaySessionAsync(
      "4e425463-3e1b-431d-83fa-1e51c2925e99",
      new CreateApplePaySessionBody
      {
      Context = "example.com",
      Target = "https://apple-pay-gateway-cert.apple.com/paymentservices/startSession",
      }
      );
      import com.sumup.sdk.SumUpClient;
      SumUpClient client = SumUpClient.builder().build();
      var result = client.checkouts().createApplePaySession(
      "4e425463-3e1b-431d-83fa-1e51c2925e99",
      CreateApplePaySessionBody.builder()
      .context("example.com")
      .target("https://apple-pay-gateway-cert.apple.com/paymentservices/startSession")
      .build()
      );
      from sumup import Sumup
      client = Sumup()
      result = client.checkouts.create_apple_pay_session("4e425463-3e1b-431d-83fa-1e51c2925e99", CreateApplePaySessionBody(
      context="example.com",
      target="https://apple-pay-gateway-cert.apple.com/paymentservices/startSession",
      ))
      $sumup = new \SumUp\SumUp();
      $result = $sumup->checkouts->createApplePaySession('4e425463-3e1b-431d-83fa-1e51c2925e99', [
      'context' => 'example.com',
      'target' => 'https://apple-pay-gateway-cert.apple.com/paymentservices/startSession',
      ]);
      client := sumup.NewClient()
      result, err := client.Checkouts.CreateApplePaySession(context.Background(), "4e425463-3e1b-431d-83fa-1e51c2925e99", sumup.CheckoutsCreateApplePaySessionParams{
      Context: "example.com",
      Target: "https://apple-pay-gateway-cert.apple.com/paymentservices/startSession",
      })
      use sumup::Client;
      let client = Client::default();
      let result = client.checkouts().create_apple_pay_session("4e425463-3e1b-431d-83fa-1e51c2925e99", sumup::CreateApplePaySessionBody{
      context: "example.com".to_string(),
      target: "https://apple-pay-gateway-cert.apple.com/paymentservices/startSession".to_string(),
      }).await;
      Response
      {
      "displayName": "Test Account",
      "domainName": "pay.sumup.com",
      "epochTimestamp": 1775323532665,
      "expiresAt": 1775327132665,
      "merchantIdentifier": "7801D328E6637EFC1ADE6CE01C671D2CD318E32CA4ED1F9FC390D170D827D9AB",
      "merchantSessionIdentifier": "SSH92CC412E5FCF4FAB88684914C953C0D4_916523AAED1343F5BC5815E12BEE9250AFFDC1A17C46B0DE5A943F0F94927C24",
      "nonce": "a968a2bf",
      "operationalAnalyticsIdentifier": "Test Account:7801D328E6637EFC1ADE6CE01C671D2CD318E32CA4ED1F9FC390D170D827D9AB",
      "pspId": "7801D328E6637EFC1ADE6CE01C671D2CD318E32CA4ED1F9FC390D170D827D9AB",
      "retries": 0,
      "signature": "<apple-pay-signature>"
      }

      Content-Type: application/json

      Bad Request

        Error 400
        {
        "error_code": "INVALID",
        "message": "Bad Request"
        }