---
title: "Process a checkout"
method: PUT
path: "/v0.1/checkouts/{id}"
tags: ["Checkouts"]
---

# Process a checkout

`PUT /v0.1/checkouts/{id}`

Processing a checkout will attempt to charge the provided payment instrument for the amount of the specified checkout resource initiated in the `Create a checkout` endpoint.

Follow this request with `Retrieve a checkout` to confirm its status.

## Request body

- ProcessCheckout — Details of the payment instrument for processing the checkout.
  - `payment_type` 'card' | 'boleto' | 'ideal' | 'blik' | 'bancontact', required — Describes the payment method used to attempt processing
  - `installments` integer — Number of installments for deferred payments. Available only to merchant users in Brazil.
  - `mandate` MandatePayload — Mandate is passed when a card is to be tokenized
    - `type` 'recurrent', required — Indicates the mandate type
    - `user_agent` string, required — Operating system and web client used by the end-user
    - `user_ip` string — IP address of the end user. Supports IPv4 and IPv6
  - `card` Card — __Required when payment type is `card`.__ Details of the payment card.
    - `name` string, required — Name of the cardholder as it appears on the payment card.
    - `number` string, required — Number of the payment card (without spaces).
    - `expiry_year` string, required — Year from the expiration time of the payment card. Accepted formats are `YY` and `YYYY`.
    - `expiry_month` '01' | '02' | '03' | '04' | '05' | '06' | '07' | '08' | '09' | '10' | '11' | '12', required — Month from the expiration time of the payment card. Accepted format is `MM`.
    - `cvv` string, required — Three or four-digit card verification value (security code) of the payment card.
    - `zip_code` string — Required five-digit ZIP code. Applicable only to merchant users in the USA.
    - `last_4_digits` string, required — Last 4 digits of the payment card number.
    - `type` 'AMEX' | 'CUP' | 'DINERS' | 'DISCOVER' | 'ELO' | 'ELV' | 'HIPERCARD' | 'JCB' | 'MAESTRO' | 'MASTERCARD' | 'VISA' | 'VISA_ELECTRON' | 'VISA_VPAY' | 'UNKNOWN', required — Issuing card network of the payment card used for the transaction.
  - `token` string — __Required when using a tokenized card to process a checkout.__ Unique token identifying the saved payment card for a customer.
  - `customer_id` string — __Required when `token` is provided.__ Unique ID of the customer.
  - `personal_details` PersonalDetails — Personal details for the customer.
    - `first_name` string — First name of the customer.
    - `last_name` string — Last name of the customer.
    - `email` string — Email address of the customer.
    - `phone` string — Phone number of the customer.
    - `birth_date` string, date — Date of birth of the customer.
    - `tax_id` string — An identification number user for tax purposes (e.g. CPF)
    - `address` AddressLegacy — Profile's personal address information.
      - `city` string — City name from the address.
      - `country` string — Two letter country code formatted according to [ISO3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
      - `line_1` string — First line of the address with details of the street name and number.
      - `line_2` string — Second line of the address with details of the building, unit, apartment, and floor numbers.
      - `postal_code` string — Postal code from the address.
      - `state` string — State name or abbreviation from the address.

## Response `200`

OK

- CheckoutSuccess — Details of the payment checkout.
  - `checkout_reference` string — Unique ID of the payment checkout specified by the client application when creating the checkout resource.
  - `amount` number, float — Amount of the payment.
  - `currency` 'BGN' | 'BRL' | 'CHF' | 'CLP' | 'CZK' | 'DKK' | 'EUR' | 'GBP' | 'HRK' | 'HUF' | 'NOK' | 'PLN' | 'RON' | 'SEK' | 'USD' — Three-letter [ISO4217](https://en.wikipedia.org/wiki/ISO_4217) code of the currency for the amount. Currently supported currency values are enumerated above.
  - `merchant_code` string — Unique identifying code of the merchant profile.
  - `description` string — Short description of the checkout visible in the SumUp dashboard. The description can contribute to reporting, allowing easier identification of a checkout.
  - `return_url` string, uri — URL to which the SumUp platform sends the processing status of the payment checkout.
  - `id` string — Unique ID of the checkout resource.
  - `status` 'PENDING' | 'FAILED' | 'PAID' | 'EXPIRED' — Current status of the checkout.
  - `date` string, date-time — Date and time of the creation of the payment checkout. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code.
  - `valid_until` string, date-time, nullable — Date and time of the checkout expiration before which the client application needs to send a processing request. If no value is present, the checkout does not have an expiration time.
  - `customer_id` string — Unique identification of a customer. If specified, the checkout session and payment instrument are associated with the referenced customer.
  - `mandate` MandateResponse — Created mandate
    - `type` string — Indicates the mandate type
    - `status` string — Mandate status
    - `merchant_code` string — Merchant code which has the mandate
  - `transactions` object[] — List of transactions related to the payment.
    - `id` string — Unique ID of the transaction.
    - `transaction_code` string — Transaction code returned by the acquirer/processing entity after processing the transaction.
    - `amount` number, float — Total amount of the transaction.
    - `currency` 'BGN' | 'BRL' | 'CHF' | 'CLP' | 'CZK' | 'DKK' | 'EUR' | 'GBP' | 'HRK' | 'HUF' | 'NOK' | 'PLN' | 'RON' | 'SEK' | 'USD' — Three-letter [ISO4217](https://en.wikipedia.org/wiki/ISO_4217) code of the currency for the amount. Currently supported currency values are enumerated above.
    - `timestamp` string, date-time — Date and time of the creation of the transaction. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code.
    - `status` 'SUCCESSFUL' | 'CANCELLED' | 'FAILED' | 'PENDING' — Current status of the transaction.
    - `payment_type` 'CASH' | 'POS' | 'ECOM' | 'RECURRING' | 'BITCOIN' | 'BALANCE' | 'MOTO' | 'BOLETO' | 'DIRECT_DEBIT' | 'APM' | 'UNKNOWN' — Payment type used for the transaction.
    - `installments_count` integer — Current number of the installment for deferred payments.
    - `merchant_code` string — Unique code of the registered merchant to whom the payment is made.
    - `vat_amount` number, float — Amount of the applicable VAT (out of the total transaction amount).
    - `tip_amount` number, float — Amount of the tip (out of the total transaction amount).
    - `entry_mode` 'BOLETO' | 'SOFORT' | 'IDEAL' | 'BANCONTACT' | 'EPS' | 'MYBANK' | 'SATISPAY' | 'BLIK' | 'P24' | 'GIROPAY' | 'PIX' | 'QR_CODE_PIX' | 'APPLE_PAY' | 'GOOGLE_PAY' | 'PAYPAL' | 'NONE' | 'CHIP' | 'MANUAL_ENTRY' | 'CUSTOMER_ENTRY' | 'MAGSTRIPE_FALLBACK' | 'MAGSTRIPE' | 'DIRECT_DEBIT' | 'CONTACTLESS' | 'MOTO' | 'CONTACTLESS_MAGSTRIPE' | 'N/A' — Entry mode of the payment details.
    - `auth_code` string — Authorization code for the transaction sent by the payment card issuer or bank. Applicable only to card payments.
    - `internal_id` integer — Internal unique ID of the transaction on the SumUp platform.
  - `transaction_code` string — Transaction code of the successful transaction with which the payment for the checkout is completed.
  - `transaction_id` string — Transaction ID of the successful transaction with which the payment for the checkout is completed.
  - `merchant_name` string — Name of the merchant
  - `redirect_url` string — Refers to a url where the end user is redirected once the payment processing completes.
  - `payment_instrument` object — Object containing token information for the specified payment instrument
    - `token` string — Token value

## Other responses

- `202` — Accepted
- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `409` — Conflict

## Changes

- **2025-12-19** `bdda188d36dd` — 1 info
  - the request required property `card/type` became not read-only
- **2025-12-19** `0471a2227134` — 24 warning
  - added the new `APPLE_PAY` enum value to the `allOf[subschema #1: Checkout]/transactions/items/allOf[#/components/schemas/TransactionCheckoutInfo]/entry_mode` response property for the response status `200`
  - added the new `BANCONTACT` enum value to the `allOf[subschema #1: Checkout]/transactions/items/allOf[#/components/schemas/TransactionCheckoutInfo]/entry_mode` response property for the response status `200`
  - added the new `BLIK` enum value to the `allOf[subschema #1: Checkout]/transactions/items/allOf[#/components/schemas/TransactionCheckoutInfo]/entry_mode` response property for the response status `200`
  - added the new `CHIP` enum value to the `allOf[subschema #1: Checkout]/transactions/items/allOf[#/components/schemas/TransactionCheckoutInfo]/entry_mode` response property for the response status `200`
  - …20 more
- …earlier changes not shown

[Full history](https://skmtc.dev/sumup/apis/sumup-rest-api/changes/v0.1/checkouts/:id/put.md)

---

[API](https://skmtc.dev/sumup/apis/sumup-rest-api.md) · [All operations](https://skmtc.dev/sumup/apis/sumup-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sumup/sumup-rest-api/revisions/ebe39fb0eb0b/schema)
