/v1.0/merchants/{merchant_code}/salesReturns a paginated list of Sale objects. Results are sorted newest first by the
newest event recorded for each sale. Pagination tokens follow that order.
Covers the merchant’s last two years of sales. Non-finalised sales are never returned;
only fully-paid sales. Use POST /sales/search for filtered queries.
OAuth scopes: Requires one of: sales.read.
Required permissions:
merchant_read
Path parameters
- maxLength:
30The merchant code.
Example:
"MCZM9TGQ"
Query parameters
- pagination_tokenstring
Pagination token for subsequent requests. Should only be set by clients if they have received a token in the previous response, and this request is an immediate follow-up request to that response to load the subsequent page. Clients should treat this as an opaque token and should not attempt to parse it in any way.
- pagination_limitintegerminimum:
1maximum:25default:10Maximum number of results per page.
Responses
200application/json
Successful response with a page of sales.
Show 13 properties
The ID of the sale.
Example:
"dbe3178d-4b83-5024-9b26-9b8e1b280514"- Options:
"BRL""CHF""CLP""COP""CZK""DKK""EUR""GBP""HRK""HUF""NOK""PLN""RON""SEK""USD"Three-letter ISO 4217 currency code of the amount.
Example:
"EUR" The lines sold in this sale, in the order they were added to the cart. Includes merchant fees (
type: "FEE") when present; fee details are infeatures.Show 12 properties
- maxLength:
100Stable identifier of the line within the sale. Used for linking (e.g. deposits).
Example:
"line-1" Classifies a sale line. Not a schema subclass.
Known values:
CATALOG,DEPOSIT,GIFT_CARD,CUSTOM,FEE.FEElines represent merchant-charged fees on the sale (e.g. shipping, service charge, surcharge, cancellation). They participate in sale totals like any other line; type-specific data is carried infeatures(seeFeaturefor the conventional feature keys).This is intentionally an open string, NOT a closed enum: new values are added over time as pure data and consumers MUST tolerate unknown values, rendering the line from the generic envelope (name, quantity, price, taxes) and reading any extra information from
features.Example:
"CATALOG"- maxLength:
250Display name of the line.
Example:
"Cappuccino" - format:
doubleminimum:0The numerical value representing the quantity in the specified unit.
Example:
2.15332 The unit of measure of the item.
Show 3 properties
- maxLength:
100The group of the unit of measure.
Example:
"weight" - maxLength:
100The specific unit of measure within the group.
Example:
"weight.kilogram" - format:
doubleThe ratio of the specified unit to the base unit of the group.
Example:
1.24412
Pricing for a single line, valid for every item type.
Merges the standard amounts (with tax breakdown) and the final amounts (after discounts/modifiers).
Totals and tax amounts can be negative for return-like operations (for example a deposit with
operation_type=RETURN).Show 8 properties
- format:
int64minimum:0The price of a single unit. If the tax_mode is GROSS it includes taxes, otherwise no tax is included. It does NOT include discounts.
Example:
300 The net amount (including modifiers if applied). It does NOT include discounts.
Example:
252The gross amount (including modifiers if applied). It does NOT include discounts.
Example:
300Taxes applied on top of the net amount resulting in the gross amount.
Example:
[{"id":"tax-vat-19","net_amount":252,"gross_amount":300,"tax_amount":48}]Show 6 properties
- maxLength:
100Tax ID from the Tax Service (External Id)
Example:
"b064ed44-66e1-45a1-a963-b783808f0436" Net amount before applying the tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Gross amount after applying the tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Amount of tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
- namestringmaxLength:
255Tax name, e.g. "MwSt."
- percentageintegerformat:
int64minimum:0The tax rate percentage in minor units (1/100000). For example 19000 = 19%.
Example:
19000
The final net amount including discounts and modifiers. Equals
total_net_amountif no discounts apply.Example:
210The final gross amount including discounts, modifiers and taxes. Equals
total_gross_amountif no discounts apply.Example:
250Taxes applied on top of
total_net_amount_finalresulting intotal_gross_amount_final. Equalstaxesif no discounts apply.Example:
[{"id":"tax-vat-19","net_amount":210,"gross_amount":250,"tax_amount":40}]Show 6 properties
- maxLength:
100Tax ID from the Tax Service (External Id)
Example:
"b064ed44-66e1-45a1-a963-b783808f0436" Net amount before applying the tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Gross amount after applying the tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Amount of tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
- namestringmaxLength:
255Tax name, e.g. "MwSt."
- percentageintegerformat:
int64minimum:0The tax rate percentage in minor units (1/100000). For example 19000 = 19%.
Example:
19000
- discountsarray<object>
Discounts applied. Discount amounts do not affect
total_net_amount/total_gross_amount; they are reflected in the*_finalamounts.Example:
[]Show 8 properties
- minLength:
4maxLength:4Specifies where discount was applied by user (either merchant or consumer):
- CART: Applied to the whole cart (calculated and distributed per sale item)
- ITEM: Applied to specific sale item
Accepted values: ["ITEM", "CART"].
Example:
"CART" The source of discount. Exactly one property must be set.
Show 5 properties
- ad_hocobject
Discount created ad-hoc on device during checkout.
- basicobject
Preset discount applied manually on the POS.
- couponobject
Discount applied manually when entering a coupon code at checkout.
- offerobject
Discount applied automatically when cart is updated based on preset promotions.
- loyaltyobject
Discount applied when redeeming a reward from the merchant's loyalty scheme.
The value type of the discount, either a percentage based or absolute monetary value.
It is required that only one of the following is set:
- absolute
- percentage.
Show 2 properties
- absoluteintegerformat:
int64minimum:0The absolute value in minor units of the currency according to the Sale.currency.scale. Example: 10000 = 10.00
Example:
100 - percentageintegerformat:
int64minimum:0The percentage in minor units (1/100000).
Examples:
- 10% -> 0.10 (decimal) = 10000 (minor units)
- 15.5% -> 0.155 (decimal) = 15500 (minor units)
- 0.001% -> 0.00001 (decimal) = 1 (minor units)
Example:
10000
- format:
int64minimum:0The net amount of the discount. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - format:
int64minimum:0The gross amount of the discount. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - format:
int64minimum:0The tax amount of the discount. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - idstringmaxLength:
100An id used to associate a discount line with a specific discount. Since we can apply multiple discounts (e.g. 2x 10% whole cart off) we need to be able to identify which discount line belongs to which cart discount. Recommended to use UUID identifiers.
Example:
"075b0b5c-a1f4-46da-9aca-92fb6dd5905d" - descriptionstringmaxLength:
250A description or reason of the discount.
Example:
"Happy Hour"
- service_typestringOptions:
"IN_HOUSE""TAKE_AWAY"The type of service for this line.
Example:
"IN_HOUSE" - notestringmaxLength:
300Optional free-text note attached to the line, visible on receipts.
Example:
"extra hot" - categoriesarray<object>
Categories the line belongs to. A shared optional structure available to any line; not a per-type field.
Example:
[{"id":"cat-hot-drinks","name":"Hot Drinks"}] - modifiersarray<object>
Modifiers customise a line (e.g. "oat milk" on a cappuccino). A shared optional structure available to any line; not a per-type field.
Example:
[]Show 12 properties
- format:
int64minimum:0The price of a single unit. If the tax_mode is GROSS, it includes taxes, otherwise no tax included. It doesn't include discounts.
Example:
100 - format:
int64minimum:0The value of the amount in minor units of the currency according to the Sale.currency.scale.
valuecan get large for some currencies and applications. Use Long type or a similar data type when parsingvalue.Example:
100 - format:
int64minimum:0The value of the amount in minor units of the currency according to the Sale.currency.scale.
valuecan get large for some currencies and applications. Use Long type or a similar data type when parsingvalue.Example:
100 Taxes applied on top of net amount resulting in gross amount.
Show 6 properties
- maxLength:
100Tax ID from the Tax Service (External Id)
Example:
"b064ed44-66e1-45a1-a963-b783808f0436" - format:
int64minimum:0Net amount before applying the tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - format:
int64minimum:0Gross amount after applying the tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - format:
int64minimum:0Amount of tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - namestringmaxLength:
255Tax name, e.g. "MwSt."
- percentageintegerformat:
int64minimum:0The tax rate percentage in minor units (1/100000). For example 19000 = 19%.
Example:
19000
- format:
int64minimum:0The final net amount includes discounts and modifiers. It does NOT include taxes. If no discounts are applied, it should be equal to total_net_amount.
Example:
100 - format:
int64minimum:0The final gross amount includes discounts, modifiers, and taxes. If no discounts are applied, it should be equal to total_gross_amount.
Example:
100 Taxes applied on top of
total_net_amount_finalamount resulting intotal_gross_amount_finalamount. If no discounts are applied, it should be equal totaxes.Show 6 properties
- maxLength:
100Tax ID from the Tax Service (External Id)
Example:
"b064ed44-66e1-45a1-a963-b783808f0436" - format:
int64minimum:0Net amount before applying the tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - format:
int64minimum:0Gross amount after applying the tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - format:
int64minimum:0Amount of tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - namestringmaxLength:
255Tax name, e.g. "MwSt."
- percentageintegerformat:
int64minimum:0The tax rate percentage in minor units (1/100000). For example 19000 = 19%.
Example:
19000
- maxLength:
100Modifier id, coming from the Item Catalog
Example:
"b064ed44-66e1-45a1-a963-b783808f0436" - maxLength:
150Modifier name, coming from the Item Catalog
Example:
"Extra Cheese" Modifier set attached to an item.
- format:
doubleminimum:0The numerical value representing the quantity in the specified unit.
Example:
2.15332 - discountsarray<object>
Discounts applied.
Important: Discount amounts shouldn't take effect on net and gross amounts.
Discount money amounts depend on where discount was applied:
- for item level discount: whole discount money amount is applied
- for cart level discount: only part of the whole amount is applied (discount money value is split on each line item)
Show 8 properties
- minLength:
4maxLength:4Specifies where discount was applied by user (either merchant or consumer):
- CART: Applied to the whole cart (calculated and distributed per sale item)
- ITEM: Applied to specific sale item
Accepted values: ["ITEM", "CART"].
Example:
"CART" The source of discount. Exactly one property must be set.
Show 5 properties
- ad_hocobject
Discount created ad-hoc on device during checkout.
- basicobject
Preset discount applied manually on the POS.
- couponobject
Discount applied manually when entering a coupon code at checkout.
- offerobject
Discount applied automatically when cart is updated based on preset promotions.
- loyaltyobject
Discount applied when redeeming a reward from the merchant's loyalty scheme.
The value type of the discount, either a percentage based or absolute monetary value.
It is required that only one of the following is set:
- absolute
- percentage.
Show 2 properties
- absoluteintegerformat:
int64minimum:0The absolute value in minor units of the currency according to the Sale.currency.scale. Example: 10000 = 10.00
Example:
100 - percentageintegerformat:
int64minimum:0The percentage in minor units (1/100000).
Examples:
- 10% -> 0.10 (decimal) = 10000 (minor units)
- 15.5% -> 0.155 (decimal) = 15500 (minor units)
- 0.001% -> 0.00001 (decimal) = 1 (minor units)
Example:
10000
- format:
int64minimum:0The net amount of the discount. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - format:
int64minimum:0The gross amount of the discount. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - format:
int64minimum:0The tax amount of the discount. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - idstringmaxLength:
100An id used to associate a discount line with a specific discount. Since we can apply multiple discounts (e.g. 2x 10% whole cart off) we need to be able to identify which discount line belongs to which cart discount. Recommended to use UUID identifiers.
Example:
"075b0b5c-a1f4-46da-9aca-92fb6dd5905d" - descriptionstringmaxLength:
250A description or reason of the discount.
Example:
"Happy Hour"
- referencesobject
Outward identifiers and links for a line, kept in one place rather than scattered per item type.
Show 4 properties
- catalog_sourcestringOptions:
"SUMUP""EXTERNAL"default:"SUMUP"The source of the catalog the line originates from.
Example:
"SUMUP" - catalog_referencestringmaxLength:
255Reference to the backing catalog entity (item variant, deposit, ...), typically a URN such as
urn:sumup:pos:variant:${MERCHANT_CODE}:${ITEM_ID}:${VARIANT_ID}orurn:sumup:pos:deposit:${MERCHANT_CODE}:${DEPOSIT_ID}. Empty for ad-hoc / manual lines. Type-agnostic on purpose: a new item type backed by a catalog entity reuses this field instead of adding its own.Example:
"urn:sumup:pos:variant:MCGLE7VC:9736e947-6f1f-487f-846a-c5954fb06a5a:7fff192f-ce29-4673-890f-2d68ba557946" - external_idstringmaxLength:
250An external reference id connecting this line to another system.
Example:
"POS-LINE-001" - skustringmaxLength:
100Stock keeping unit, enriched from the Catalog when available.
Example:
"COFFEE-LARGE"
- featuresarray<object>
Named, typed, type-specific data. New item types add their data here as features instead of new schema variants. See
Featurefor per-type examples.Example:
[{"name":"variant_name","value_type":"TEXT","value":"Large"}]Show 3 properties
- maxLength:
100The feature name/key.
Example:
"operation_type" - Options:
"TEXT""INTEGER""DECIMAL""DATE""BOOLEAN"The data type of a feature value. The wire
valueis always a string and is parsed according to this type.Example:
"TEXT" - maxLength:
1000The feature value in canonical string form, to be parsed per
value_type(e.g. INTEGER -> "3", DECIMAL -> "1.50", DATE -> "2026-07-02", BOOLEAN -> "true"). Carrying it as a string keeps the wire format stable as new feature names and value types are introduced.Example:
"SALE"
Sale-level pricing aggregate, parallel to
LineItemPriceon eachSaleLineItem.Line-level breakdown (unit price, line discounts, per-line taxes) lives on
items[].price. This object holds the rolled-up totals and cart-level adjustments that consumers use for receipts and payment reconciliation.Show 4 properties
Final net total for the sale: sum of
items[].price.total_net_amount_finalafter cart-level discounts (tips excluded). In minor units according toSale.currency.scale.Example:
777Final gross total for the sale: sum of
items[].price.total_gross_amount_finalafter cart-level discounts (tips excluded). Same value as searchtotal_amount, in minor units according toSale.currency.scale. Payment amounts include tips and can therefore differ from this gross total.Example:
925Tax lines aggregated across the sale (after cart-level discounts). Per-line tax detail remains on
items[].price.taxes/taxes_final.Example:
[{"id":"tax-vat-19","net_amount":777,"gross_amount":925,"tax_amount":148}]Show 6 properties
- maxLength:
100Tax ID from the Tax Service (External Id)
Example:
"b064ed44-66e1-45a1-a963-b783808f0436" Net amount before applying the tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Gross amount after applying the tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Amount of tax. The value of the amount in minor units of the currency according to the Sale.currency.scale.
- namestringmaxLength:
255Tax name, e.g. "MwSt."
- percentageintegerformat:
int64minimum:0The tax rate percentage in minor units (1/100000). For example 19000 = 19%.
Example:
19000
- cart_discountsarray<object>
Discounts applied at cart level. Item-level discounts remain on
items[].price.discounts.Example:
[]Show 8 properties
- minLength:
4maxLength:4Specifies where discount was applied by user (either merchant or consumer):
- CART: Applied to the whole cart (calculated and distributed per sale item)
- ITEM: Applied to specific sale item
Accepted values: ["ITEM", "CART"].
Example:
"CART" The source of discount. Exactly one property must be set.
Show 5 properties
- ad_hocobject
Discount created ad-hoc on device during checkout.
Show 3 properties
- idstringformat:
uuidThe unique identifier of the ad-hoc discount.
Example:
"075b0b5c-a1f4-46da-9aca-92fb6dd5905d" - namestringmaxLength:
100The name of the ad-hoc discount.
Example:
"Happy Hour" - descriptionstringmaxLength:
250The description of the ad-hoc discount.
Example:
"Happy Hour from 10 to 12."
- basicobject
Preset discount applied manually on the POS.
Show 4 properties
- format:
uuidThe unique identifier of the basic discount.
Example:
"075b0b5c-a1f4-46da-9aca-92fb6dd5905d" - maxLength:
100The name of the basic discount.
Example:
"Staff discount" - Options:
"MANUAL""AUTOMATIC"Method of applying the discount to the items or cart.
Example:
"MANUAL" - maxLength:
250The description of the loyalty discount.
Example:
"10% off food for staff members."
- couponobject
Discount applied manually when entering a coupon code at checkout.
Show 6 properties
- format:
uuidThe unique identifier of the coupon discount.
Example:
"075b0b5c-a1f4-46da-9aca-92fb6dd5905d" - maxLength:
100The coupon code.
Example:
"FREE_COFFEE" - maxLength:
100The name of the coupon discount.
Example:
"Free coffee" - Options:
"MANUAL""AUTOMATIC"Method of applying the discount to the items or cart.
Example:
"MANUAL" - maxLength:
250The description of the coupon discount.
Example:
"Free coffee with this coupon." - Options:
"ITEM""CATEGORY""BUNDLE""BUY_X_GET_Y""MEAL_DEAL"The method used to target items to discount. Must be populated for ITEM level discounts, and must be null for CART level discounts (CART level targets all items, therefore none of these categories apply).
Example:
"ITEM"
- offerobject
Discount applied automatically when cart is updated based on preset promotions.
Show 5 properties
- format:
uuidThe unique identifier of the offer discount.
Example:
"075b0b5c-a1f4-46da-9aca-92fb6dd5905d" - maxLength:
100The name of the offer discount.
Example:
"Breakfast combo deal" - Options:
"MANUAL""AUTOMATIC"Method of applying the discount to the items or cart.
Example:
"MANUAL" - maxLength:
250The description of the offer discount.
Example:
"Buy a Croissant, get a coffee for £1" - Options:
"ITEM""CATEGORY""BUNDLE""BUY_X_GET_Y""MEAL_DEAL"The method used to target items to discount. Must be populated for ITEM level discounts, and must be null for CART level discounts (CART level targets all items, therefore none of these categories apply).
Example:
"ITEM"
- loyaltyobject
Discount applied when redeeming a reward from the merchant's loyalty scheme.
Show 8 properties
- format:
uuidThe unique identifier of the promotion or reward.
Example:
"075b0b5c-a1f4-46da-9aca-92fb6dd5905d" - Options:
"PROMOTION""REWARD"The type of loyalty discount, either a promotion (e.g. new customer discount) or a reward (free coffee after completing stamp card).
Example:
"REWARD" - Options:
"STAMPS""POINTS"The scheme type of the loyalty program.
Example:
"POINTS" - maxLength:
100The name of the loyalty discount.
Example:
"Free coffee" - Options:
"MANUAL""AUTOMATIC"Method of applying the discount to the items or cart.
Example:
"MANUAL" - format:
int64minimum:1The number of points used for this loyalty discount. Must be a positive integer if the scheme type is POINTS. Must not be populated if the scheme type is STAMPS.
Example:
50 - maxLength:
250The description of the loyalty discount.
Example:
"Free coffee for 50 points" - Options:
"ITEM""CATEGORY""BUNDLE""BUY_X_GET_Y""MEAL_DEAL"The method used to target items to discount. Must be populated for ITEM level discounts, and must be null for CART level discounts (CART level targets all items, therefore none of these categories apply).
Example:
"ITEM"
The value type of the discount, either a percentage based or absolute monetary value.
It is required that only one of the following is set:
- absolute
- percentage.
Show 2 properties
- absoluteintegerformat:
int64minimum:0The absolute value in minor units of the currency according to the Sale.currency.scale. Example: 10000 = 10.00
Example:
100 - percentageintegerformat:
int64minimum:0The percentage in minor units (1/100000).
Examples:
- 10% -> 0.10 (decimal) = 10000 (minor units)
- 15.5% -> 0.155 (decimal) = 15500 (minor units)
- 0.001% -> 0.00001 (decimal) = 1 (minor units)
Example:
10000
- format:
int64minimum:0The net amount of the discount. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - format:
int64minimum:0The gross amount of the discount. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - format:
int64minimum:0The tax amount of the discount. The value of the amount in minor units of the currency according to the Sale.currency.scale.
Example:
100 - idstringmaxLength:
100An id used to associate a discount line with a specific discount. Since we can apply multiple discounts (e.g. 2x 10% whole cart off) we need to be able to identify which discount line belongs to which cart discount. Recommended to use UUID identifiers.
Example:
"075b0b5c-a1f4-46da-9aca-92fb6dd5905d" - descriptionstringmaxLength:
250A description or reason of the discount.
Example:
"Happy Hour"
- Options:
"NO_TAX""GROSS""NET"The tax mode used by merchant for displaying prices and calculating taxes:
- NO_TAX: The prices don't contain any taxes, merchant don't report taxes
- GROSS: The prices used by merchant already include taxes (common in EU), the tax is calculated from the gross price
- NET: The prices used by merchant don't include taxes (common in US), the tax is calculated from the net price Since tax values can be different for the same net price depending if the tax was calculated from gross or net price, this info is necessary to be able to reconcile tax calculations.
Example:
"NO_TAX" Information about the source of the sale.
Show 4 properties
The sale_channel is field that indicates the channel through which the sale was made. For example, if the sale was made in the merchant app, the sale_channel could be POS. If the sale was made on a kiosk, the sale_channel is KIOSK.
Accepted values: ["POS", "KIOSK", "ONLINE_STORE", "SOLO", "ORDER_AND_PAY", "INVOICE", "BOOKINGS", "ORDER_AGGREGATOR", "SUBSCRIPTIONS", "UNKNOWN"].
Example:
"POS"- sub_channelstringmaxLength:
50The sub_channel is an optional field that can be used to provide more information about the sale_channel. For example, if the sale_channel is ONLINE_PAYMENTS, the sub_channel could be "WIX" or "QR_CODE" or "WOOCOMMERCE".
Example:
"QR_CODE" - external_idstringmaxLength:
250An external reference ID for connecting orders/sales between products
Example:
"123456" - external_sub_channel_idstringmaxLength:
250An external reference ID for the sub-channel. For example, when channel is BOOKINGS and sub_channel is POS, this can hold the OMS order ID while external_id holds the appointment ID.
Example:
"9736e947-6f1f-487f-846a-c5954fb06a5a"
Payments on this sale, in the order they were recorded.
Example:
[{"method":"card","reference":"TERTYFQ4G3","type":"purchase","amount":975,"status":"SUCCESSFUL","processed_at":"2026-06-02T10:20:00Z"}]Show 9 properties
- maxLength:
20Payment method on public sales read API v1.0. Digital wallets are first-class methods. Gift card payments use
gift_card, notapm. Input is case-insensitive; the canonical form is lowercase snake_case. VALUES: [card, cash, apm, external, apple_pay, google_pay, whatsapp_pay, gift_card].Example:
"card" - maxLength:
50The reference to the actual payment used for this sale, e.g. the sumup transaction code.
Example:
"TERTYFQ4G3" - default:
"purchase"Payment operation type. This is distinct from the payment instrument in
method. Input is case-insensitive; the canonical form is lowercase snake_case. VALUES: [purchase, unreferenced_refund] Defaults to "purchase" if unspecified. Either a normal purchase or an unreferenced refund for negative sales like deposit returns.Example:
"purchase" - format:
int64minimum:0The amount of the payment including tips. The value of the amount in minor units of
Sale.currency.Example:
975 - Options:
"FAILED""SUCCESSFUL""CANCELED"The status of the payment.
Example:
"SUCCESSFUL" - format:
date-timeUTC date-time when SumUp recorded this payment’s exposed
status(successful, failed, or canceled). Server processed time when available; otherwise the payment provider’s transaction time. Not the device clock.Example:
"2017-07-21T17:32:28+01:00" - apm_typestringmaxLength:
20Alternative payment method type when
methodisapm. Gift card is not an APM on this API. Input is case-insensitive; the canonical form is lowercase snake_case. VALUES: [qr_code_pix, sepa_dd, paypal, sumup_pay, twint, iris]. - cardobject
Card brand, credit/debit processing type, and last four digits.
Show 3 properties
- maxLength:
20The brand of the card. Input is case-insensitive; the canonical form is lowercase snake_case. VALUES: [amex, cup, diners, discover, elo, elv, hipercard, jcb, maestro, mastercard, visa, visa_electron, visa_vpay, vr, eftpos, conecs, swile, girocard, interac, sumup, bancomat].
Example:
"visa" - Options:
"credit""debit""unknown"Credit or debit processing choice, not brand or funding.
unknownwhen unavailable; prepaid/voucher are not processing types.Example:
"debit" - minLength:
4maxLength:4pattern:^\d{4}$The last 4 digits of the card used for the payment.
Example:
"1234"
- gift_cardobject
Gift card used for this payment. Present when
methodisgift_cardand the gift card id is known. Gift card IDs use the format "GC" followed by 9 alphanumeric characters (e.g. GCZ3NTMB1V).Show 1 property
Gift card identifier. Format "GC" followed by 9 alphanumeric characters (e.g. GCZ3NTMB1V).
Example:
"GCZ3NTMB1V"
- format:
date-timeInstant when the sale was created.
Example:
"2026-06-02T10:15:00Z" - format:
date-timeInstant when the sale was closed. Always present: non-finalised sales are never returned.
Example:
"2026-06-02T10:20:00Z" - Options:
"CLOSED"Lifecycle state of the sale. Non-finalised sales are never returned; only fully-paid sales.
Example:
"CLOSED" - user_idstringformat:
uuidIdentity UUID of the cashier who processed the sale. Omitted when the cashier identity is unknown.
Example:
"d6f51684-519b-454c-bdb3-deeb05f52b92" - namestringmaxLength:
160Human-readable name of the sale (not unique, not the sale id).
Example:
"Order 1234" - notestringmaxLength:
300Optional note attached to the sale, visible on receipts and the UI.
Example:
"Please deliver to the back door."
- pagination_tokenstring
Pagination token for subsequent requests. Should only be set by clients if they have received a token in the previous response, and this request is an immediate follow-up request to that response to load the subsequent page. Clients should treat this as an opaque token and should not attempt to parse it in any way.
Example:
"66bcbtzelrubzeuzruzgu76678trncH"
400application/problem+json
Validation error on the request.
- format:
uriA 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:
uriA URI reference that identifies the specific occurrence of the problem.
401application/problem+json
The client is not authenticated (auth header is empty or invalid).
- format:
uriA 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:
uriA URI reference that identifies the specific occurrence of the problem.
403application/problem+json
Missing sales.read, merchant code mismatch on the token, or no merchant_read permission.
- format:
uriA 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:
uriA URI reference that identifies the specific occurrence of the problem.
412application/problem+json
User-Agent header is not present or is empty.
- format:
uriA 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:
uriA URI reference that identifies the specific occurrence of the problem.