Transactions represent completed or attempted payment operations processed for a merchant account. A transaction contains the core payment result, such as the amount, currency, payment method, creation time, and current high-level status.
In addition to the main payment outcome, a transaction can contain related events that describe what happened after the original payment attempt. These events provide visibility into the financial lifecycle of the transaction, for example:
PAYOUT: the payment being prepared for payout or included in a payout to the merchantREFUND: money returned to the payerCHARGE_BACK: money reversed after the original paymentPAYOUT_DEDUCTION: an amount deducted from a payout to cover a refund or chargeback
From an integrator’s perspective, transactions are the authoritative record of payment outcomes. Use this tag to:
- list transactions for reporting, reconciliation, and customer support workflows
- retrieve a single transaction when you need the latest payment details
- inspect
simple_statusfor the current merchant-facing outcome of the payment - inspect
eventsortransaction_eventswhen you need refund, payout, or chargeback history
Typical workflow:
- create and process payments through the Checkouts endpoints
- use the Transactions endpoints to read the resulting payment records
- use the returned statuses and events to update your own order, accounting, or support systems
Retrieve a transaction
Retrieves the full details of an identified transaction. The transaction resource is identified by a query parameter and one of following parameters is required:
idtransaction_codeforeign_transaction_idclient_transaction_id
transactions.historytransactions.readPath Parameters
- merchant_codestringrequired
Short unique identifier for the merchant.
Example:"MH4H92C7"
Query Parameters
- idstring
Retrieves the transaction resource with the specified transaction ID (the
idparameter in the transaction resource).Example:"410fc44a-5956-44e1-b5cc-19c6f8d727a4" - transaction_codestring
Retrieves the transaction resource with the specified transaction code.
Example:"TEENSK4W2K" - foreign_transaction_idstring
External transaction identifier supplied by the client.
Example:"J13253253x1" - client_transaction_idstring
Client-supplied identifier of the transaction.
Example:"urn:sumup:pos:sale:MNKKNGST:1D4E3B2D-111D-48D7-9AF0-832DAEF63DD7;2"
Response
Returns the requested transaction resource.
- idstring
Unique identifier of the transaction.
Example:"6b425463-3e1b-431d-83fa-1e51c2925e99" - transaction_codestring
SumUp transaction code, for example
TEENSK4W2K. Use it to look up the transaction with thetransaction_codequery parameter. This is separate from the transaction'sidand the card issuer'sauth_code.Example:"TEENSK4W2K" - amountnumber
Total amount of the transaction in major units of
currency, for example10.1for EUR 10.10.Example:10.1 - currencyCurrencyOptions:
BRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSDThree-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 StatusOptions:
SUCCESSFULCANCELLEDFAILEDPENDINGREFUNDEDCurrent 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 TypeOptions:
CASHPOSECOMRECURRINGBITCOINBALANCEMOTOBOLETODIRECT_DEBITAPMUNKNOWNPayment category recorded on a transaction, for example
POSfor a point-of-sale card payment,ECOMfor an online card payment, orRECURRINGfor a recurring card payment. These reporting values are separate from the lowercasepayment_typevalues used to process checkouts.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
VAT included in the total transaction amount, in major units of the transaction's currency.
Example:6 - tip_amountnumber
Tip included in the total transaction amount, in major units of the transaction's currency.
Example:3 - entry_modeEntry ModeOptions:
BOLETOSOFORTIDEALBANCONTACTEPSMYBANKSATISPAYBLIKP24GIROPAYPIXQR_CODE_PIXAPPLE_PAYGOOGLE_PAYPAYPALTWINTNONECHIPMANUAL_ENTRYCUSTOMER_ENTRYMAGSTRIPE_FALLBACKMAGSTRIPEDIRECT_DEBITCONTACTLESSMOTOCONTACTLESS_MAGSTRIPEN/AHow the payment details were captured, for example
CHIPorCONTACTLESSfor card-present payments andCUSTOMER_ENTRYfor card details entered by the payer. For wallet and alternative payment methods, this can identify the method, such asAPPLE_PAYorBLIK.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" - product_summarystring
Short description of the payment. The value is taken from the
descriptionproperty of the related checkout resource.Example:"Purchase" - payouts_totalinteger
Total number of payouts to the registered user specified in the
userproperty.Example:1 - payouts_receivedinteger
Number of payouts that are made to the registered user specified in the
userproperty.Example:1 - payout_planstringOptions:
SINGLE_PAYMENTTRUE_INSTALLMENTACCELERATED_INSTALLMENTPayout plan of the registered user at the time when the transaction was made.
Example:"SINGLE_PAYMENT" - foreign_transaction_idstring
External transaction identifier supplied by the client.
Example:"J13253253x1" - client_transaction_idstring
Client-supplied identifier of the transaction.
Example:"urn:sumup:pos:sale:MNKKNGST:1D4E3B2D-111D-48D7-9AF0-832DAEF63DD7;2" - usernamestringformat: email
Email address of the registered user (merchant) to whom the payment is made.
Example:"merchant@example.com" - fee_amountnumber
Total SumUp transaction fee in major units of the transaction's currency.
Example:8 - latLatitudeminimum: -90, maximum: 90
Latitude value from the coordinates of the payment location (as received from the payment terminal reader).
Example:52.520008 - lonLongitudeminimum: -180, maximum: 180
Longitude value from the coordinates of the payment location (as received from the payment terminal reader).
Example:13.404954 - horizontal_accuracyHorizontal Accuracy
Indication of the precision of the geographical position received from the payment terminal.
Example:5 - merchant_idinteger
Internal SumUp identifier of the merchant.
Example:136902 - device_infoDevice
Details of the device used to create the transaction.
CloseDevice- namestring
Device name.
Example:"m0xx" - system_namestring
Device OS.
Example:"Android" - modelstring
Device model.
Example:"GT-I9300" - system_versionstring
Device OS version.
Example:"4.3" - uuidstring
Device UUID.
Example:"3ae2a6b7-fb0d-3b50-adbf-cb7e2db30cd2"
- simple_payment_typestringOptions:
CASHCC_SIGNATUREELVELV_WITHOUT_SIGNATURECC_CUSTOMER_ENTEREDMANUAL_ENTRYEMVRECURRINGBALANCEMOTOBOLETOAPMBITCOINCARDSimple name of the payment type.
Example:"CARD" - verification_methodstringOptions:
nonesignatureoffline PINonline PINoffline PIN + signaturenaVerification method used for the transaction.
Example:"none" - cardCard Response
Details of the payment card.
CloseCard Response- last_4_digitsstringmin length: 4, max length: 4, Read only
Last 4 digits of the payment card number.
Example:"3456" - typeCard TypeOptions:
ALELOAMEXCONECSCUPDINERSDISCOVEREFTPOSELOELVGIROCARDHIPERCARDINTERACJCBMAESTROMASTERCARDPLUXEESWILETICKETVISAVISA_ELECTRONVISA_VPAYVPAYVRUNKNOWNIssuing card network of the payment card used for the transaction.
Example:"VISA" - payment_account_referencestring
Payment Account Reference (PAR) defined by EMVCo. It links a card's primary account number (PAN) with its affiliated payment tokens, allowing transactions made with the physical card and tokenized versions of that card, such as digital wallets, to be correlated when PAR is available.
This reference cannot be used to initiate a payment and is separate from the saved payment instrument
tokenused to process checkouts. Returned only when available for the card; integrations must handle its absence.Example:"5665ABCDEFGHIJKLMNOPQRSTUVWXY"
- elv_accountELV Card Account
Details of the ELV card account associated with the transaction.
CloseELV Card Account- sort_codestring
ELV card sort code.
Example:"87096214" - last_4_digitsstring
ELV card account number last 4 digits.
Example:"5674" - sequence_nointeger
ELV card sequence number.
Example:1 - ibanstring
ELV IBAN.
Example:"DE60870962140012345674"
- local_timestringformat: date-time
Local timestamp of when the transaction was created.
Example:"2020-02-29T11:56:56+01:00" - payout_datestringformat: date
The date of the payout.
Example:"2019-08-28" - payout_typestringOptions:
BANK_ACCOUNTPREPAID_CARDPayout type for the transaction.
Example:"BANK_ACCOUNT" - process_asstringOptions:
CREDITDEBITWhether the transaction was processed as credit or debit.
Example:"CREDIT" - products[]Product
List of products from the merchant's catalogue for which the transaction serves as a payment.
CloseProduct- namestring
Product name.
Example:"Purchase reader for merchant with code ME3FCAVF" - price_labelstring
Human-readable label for the product price.
Example:"EUR 100.00" - pricenumber
Product price.
Example:100 - vat_ratenumber
VAT rate as a decimal fraction, for example
0.19for 19%.Example:0.19 - single_vat_amountnumber
VAT amount for a single product.
Example:19 - price_with_vatnumber
Product price including VAT.
Example:119 - vat_amountnumber
Total VAT amount for the product quantity.
Example:19 - quantityinteger
Product quantity.
Example:1 - total_pricenumber
Total price calculated as the product price multiplied by the quantity.
Example:100 - total_with_vatnumber
Total product price including VAT.
Example:119
- vat_rates[]object
List of VAT rates applicable to the transaction.
CloseAttributes- ratenumber
VAT rate.
Example:0.045 - netnumber
NET amount of products having this VAT rate applied.
Example:1.36 - vatnumber
VAT amount of this rate applied.
Example:0.06 - grossnumber
Gross amount of products having this VAT rate applied.
Example:1.42
- transaction_events[]TransactionEvent
Detailed list of events related to the transaction.
CloseTransaction Event- idTransaction Event ID
Numeric identifier of a transaction event. Use it as
tx_event_idwhen requesting receipt details for a specific event. This is separate from the transaction ID and the transaction history pagination references.Example:9567461191 - event_typeTransaction Event TypeOptions:
PAYOUTCHARGE_BACKREFUNDPAYOUT_DEDUCTIONFinancial event associated with a transaction.
PAYOUT: Funds from the transaction being prepared for or included in a merchant payout. Check the event status to determine whether they have been paid out.REFUND: Money returned to the payer.CHARGE_BACK: A reversal of the payment following a chargeback.PAYOUT_DEDUCTION: An amount deducted from a merchant payout, for example to cover a refund or chargeback.
Example:"REFUND" - statusTransaction Event StatusOptions:
FAILEDPAID_OUTPENDINGRECONCILEDREFUNDEDSCHEDULEDSUCCESSFULStatus of the transaction event.
Not every value is used for every event type.
PENDING: The event has been created but is not final yet. Used for events that are still being processed and whose final outcome is not known yet.SCHEDULED: The event is planned for a future payout cycle but has not been executed yet. This applies to payout events before money is actually sent out.RECONCILED: The underlying payment has been matched with settlement data and is ready to continue through payout processing, but the funds have not been paid out yet. This applies to payout events.PAID_OUT: The payout event has been completed and the funds were included in a merchant payout.REFUNDED: A refund event has been accepted and recorded in the refund flow. This is the status returned for refund events once the transaction amount is being or has been returned to the payer.SUCCESSFUL: The event completed successfully. Use this as the generic terminal success status for event types that do not expose a more specific business outcome such asPAID_OUTorREFUNDED.FAILED: The event could not be completed. Typical examples are a payout that could not be executed or an event that was rejected during processing.
Example:"SUCCESSFUL" - amountnumber
Amount of the event in major units of the associated transaction's currency.
Example:58.8 - due_datestringformat: date
Date when the transaction event is due to occur.
Example:"2020-05-25" - datestringformat: date
Date when the transaction event occurred.
Example:"2020-05-25" - installment_numberinteger
Consecutive number of the installment that is paid. Applicable only to payout events, i.e.
event_type = PAYOUT.Example:1 - timestampstringformat: date-time
Date and time of the transaction event.
Example:"2020-05-25T10:49:42.784Z"
- simple_statusstringOptions:
SUCCESSFULPAID_OUTCANCEL_FAILEDCANCELLEDCHARGEBACKFAILEDREFUND_FAILEDREFUNDEDNON_COLLECTIONPENDINGHigh-level status of the transaction from the merchant's perspective.
PENDING: The payment has been initiated and is still being processed. A final outcome is not available yet.SUCCESSFUL: The payment was completed successfully.PAID_OUT: The payment was completed successfully and the funds have already been included in a payout to the merchant.FAILED: The payment did not complete successfully.CANCELLED: The payment was cancelled or reversed and is no longer payable or payable to the merchant.CANCEL_FAILED: An attempt to cancel or reverse the payment was not completed successfully.REFUNDED: The payment was refunded in full or in part.REFUND_FAILED: An attempt to refund the payment was not completed successfully.CHARGEBACK: The payment was subject to a chargeback.NON_COLLECTION: The amount could not be collected from the merchant after a chargeback or related adjustment.
Example:"SUCCESSFUL" - links[]Link
List of hyperlinks for accessing related resources.
CloseLink- relstring
Relation of the linked resource to the current resource.
Example:"refund" - hrefstringformat: uri
URL for accessing the related resource.
Example:"https://api.sumup.com/v1.0/merchants/MH4H92C7/payments/4ffb8dfc-7f2b-413d-a497-2ad00766585e/refunds" - typestring
Media type of the linked resource.
Example:"application/json" - min_amountnumber
Minimum amount allowed for a refund, in major units.
Example:0.01 - max_amountnumber
Maximum amount allowed for a refund, in major units.
Example:10.1
- events[]Event
Compact list of events related to the transaction.
CloseEvent- idTransaction Event ID
Numeric identifier of a transaction event. Use it as
tx_event_idwhen requesting receipt details for a specific event. This is separate from the transaction ID and the transaction history pagination references.Example:9567461191 - transaction_idTransaction ID
Unique identifier of the transaction.
Example:"410fc44a-5956-44e1-b5cc-19c6f8d727a4" - typeTransaction Event TypeOptions:
PAYOUTCHARGE_BACKREFUNDPAYOUT_DEDUCTIONFinancial event associated with a transaction.
PAYOUT: Funds from the transaction being prepared for or included in a merchant payout. Check the event status to determine whether they have been paid out.REFUND: Money returned to the payer.CHARGE_BACK: A reversal of the payment following a chargeback.PAYOUT_DEDUCTION: An amount deducted from a merchant payout, for example to cover a refund or chargeback.
Example:"REFUND" - statusTransaction Event StatusOptions:
FAILEDPAID_OUTPENDINGRECONCILEDREFUNDEDSCHEDULEDSUCCESSFULStatus of the transaction event.
Not every value is used for every event type.
PENDING: The event has been created but is not final yet. Used for events that are still being processed and whose final outcome is not known yet.SCHEDULED: The event is planned for a future payout cycle but has not been executed yet. This applies to payout events before money is actually sent out.RECONCILED: The underlying payment has been matched with settlement data and is ready to continue through payout processing, but the funds have not been paid out yet. This applies to payout events.PAID_OUT: The payout event has been completed and the funds were included in a merchant payout.REFUNDED: A refund event has been accepted and recorded in the refund flow. This is the status returned for refund events once the transaction amount is being or has been returned to the payer.SUCCESSFUL: The event completed successfully. Use this as the generic terminal success status for event types that do not expose a more specific business outcome such asPAID_OUTorREFUNDED.FAILED: The event could not be completed. Typical examples are a payout that could not be executed or an event that was rejected during processing.
Example:"SUCCESSFUL" - amountnumber
Amount associated with the transaction event, in major units.
Example:10.1 - timestampstringformat: date-time
The timestamp of when the transaction event occurred.
Example:"2020-05-25T10:49:42.784Z" - fee_amountnumber
Fee associated with the transaction event, in major units.
Example:0.25 - installment_numberinteger
Consecutive number of the installment associated with the event.
Example:1 - deducted_amountnumber
Amount deducted from the merchant for the event, in major units.
Example:10.1 - deducted_fee_amountnumber
Fee deducted from the merchant for the event, in major units.
Example:0.25
- locationobject
Details of the payment location as received from the payment terminal.
CloseAttributes- latLatitudeminimum: -90, maximum: 90
Latitude value from the coordinates of the payment location (as received from the payment terminal reader).
Example:52.520008 - lonLongitudeminimum: -180, maximum: 180
Longitude value from the coordinates of the payment location (as received from the payment terminal reader).
Example:13.404954 - horizontal_accuracyHorizontal Accuracy
Indication of the precision of the geographical position received from the payment terminal.
Example:5
- tax_enabledboolean
Indicates whether tax deduction is enabled for the transaction.
Example:true
curl https://api.sumup.com/v2.1/merchants/{merchant_code}/transactions \ -X GET \ -H "Authorization: Bearer $SUMUP_API_KEY"sumup transactions get "410fc44a-5956-44e1-b5cc-19c6f8d727a4" \ --merchant-code "MH4H92C7"import SumUp from "@sumup/sdk";
async function main() { const client = new SumUp({ apiKey: "sup_sk_your_api_key" });
const result = await client.transactions.get( "MH4H92C7", { "id": "410fc44a-5956-44e1-b5cc-19c6f8d727a4" } ); console.log(result);}
main().catch(console.error);using System;using System.Collections.Generic;using System.Threading.Tasks;using SumUp;
public static class Program{ public static async Task Main() { using var client = new SumUpClient(); var response = await client.Transactions.GetAsync( "your-merchant-code", new TransactionsGetOptions { Id = "example-id", TransactionCode = "example", ForeignTransactionId = "example-id", ClientTransactionId = "example-id", });
Console.WriteLine(response.StatusCode); }}import com.sumup.sdk.SumUpClient;
public final class GetTransactionV21Sample { public static void main(String[] args) throws Exception { var client = new SumUpClient();
var result = client.transactions().get( "MH4H92C7" ); System.out.println(result); }}import os
import sumup
client = sumup.Sumup(api_key=os.environ["SUMUP_API_KEY"])result = client.transactions.get( "MH4H92C7", id="410fc44a-5956-44e1-b5cc-19c6f8d727a4", transaction_code="TEENSK4W2K", foreign_transaction_id="J13253253x1", client_transaction_id="urn:sumup:pos:sale:MNKKNGST:1D4E3B2D-111D-48D7-9AF0-832DAEF63DD7;2",)print(result)$sumup = new \SumUp\SumUp();
$result = $sumup->transactions->get('MH4H92C7');package main
import ( "context" "fmt"
"github.com/sumup/sumup-go")
func main() { client := sumup.NewClient() result, err := client.Transactions.Get(context.TODO(), "MH4H92C7", sumup.TransactionsGetParams{ ID: new("410fc44a-5956-44e1-b5cc-19c6f8d727a4"), TransactionCode: new("TEENSK4W2K"), ForeignTransactionID: new("J13253253x1"), ClientTransactionID: new("urn:sumup:pos:sale:MNKKNGST:1D4E3B2D-111D-48D7-9AF0-832DAEF63DD7;2"), }) if err != nil { panic(err.Error()) }
fmt.Printf("%+v\n", result)}use sumup::{Authorization, Client};#[tokio::main]async fn main() { let client = Client::default() .with_authorization(Authorization::api_key("sup_sk_test_...")); let response = client .transactions() .get("MERCHANT_CODE", Default::default()) .await .expect("get request failed"); println!("{response:#?}");}{ "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": "053201"}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"
Content-Type: application/json
The requested resource does not exist.
- messagestring
Short description of the error.
Example:"Resource not found" - error_codestring
Platform code for the error.
Example:"NOT_FOUND"
List transactions
Lists transaction history for the merchant, with optional filters for payment type, status, and date range. The response contains the current page in items and pagination query strings in links.
To request another page, use the query string from the relevant link’s href with this history endpoint. Use changes_since when retrieving transactions modified since a previous synchronization, including transactions created earlier whose status has changed.
transactions.historytransactions.readPath Parameters
- merchant_codestringrequired
Short unique identifier for the merchant.
Example:"MH4H92C7"
Query Parameters
- transaction_codestring
Retrieves the transaction resource with the specified transaction code.
Example:"TEENSK4W2K" - orderstringdefault:
ascendingOptions:ascendingdescendingSort direction for the transaction history. Use
ascendingordescending; the default isascending. - limitinteger
Maximum number of transactions per page. Must be a positive integer. Defaults to
10when omitted; a page can contain fewer results.Example:10 - users[][]string
Filters transactions by user email. For multiple values, repeat the query parameter, for example
users[]=first@example.com&users[]=second@example.com.Example:["merchant@example.com"] - statuses[][]stringOptions:
SUCCESSFULCANCELLEDFAILEDREFUNDEDCHARGE_BACKFilters transactions by the listed final statuses. For multiple values, repeat the query parameter, for example
statuses[]=SUCCESSFUL&statuses[]=REFUNDED.Example:["SUCCESSFUL","REFUNDED"] - payment_types[][]PaymentTypeOptions:
CASHPOSECOMRECURRINGBITCOINBALANCEMOTOBOLETODIRECT_DEBITAPMUNKNOWNFilters the returned results by the specified list of payment types used for the transactions.
Example:["ECOM","POS"] - entry_modes[][]EntryModeOptions:
BOLETOSOFORTIDEALBANCONTACTEPSMYBANKSATISPAYBLIKP24GIROPAYPIXQR_CODE_PIXAPPLE_PAYGOOGLE_PAYPAYPALTWINTNONECHIPMANUAL_ENTRYCUSTOMER_ENTRYMAGSTRIPE_FALLBACKMAGSTRIPEDIRECT_DEBITCONTACTLESSMOTOCONTACTLESS_MAGSTRIPEN/AFilters the returned results by the specified list of entry modes.
Example:["CUSTOMER_ENTRY","CHIP"] - types[][]stringOptions:
PAYMENTREFUNDCHARGE_BACKFilters the returned results by the specified list of transaction types.
Example:["PAYMENT","REFUND"] - changes_sincestringformat: date-time
Filters the results by the latest modification time of resources and returns only transactions that are modified at or after the specified timestamp (in ISO8601 format).
Example:"2019-08-28T09:00:00Z" - newest_timestringformat: date-time
Filters the results by the creation time of resources and returns only transactions that are created before the specified timestamp (in ISO8601 format).
Example:"2019-08-29T09:00:00Z" - newest_refstring
Pagination reference that returns results before the specified reference. Use the value from a returned pagination link rather than constructing it yourself. This parameter takes precedence over
newest_timewhen both are provided.Example:"090df9bf-93b7-40f1-8181-fbdb236568a1" - oldest_timestringformat: date-time
Filters the results by the creation time of resources and returns only transactions that are created at or after the specified timestamp (in ISO8601 format).
Example:"2019-08-28T09:00:00Z" - oldest_refstring
Pagination reference that returns results after the specified reference. Use the value from a returned pagination link rather than constructing it yourself. This parameter takes precedence over
oldest_timewhen both are provided.Example:"090df9bf-93b7-40f1-8181-fbdb236568a1"
Response
Returns a page of transaction history items.
- items[]TransactionHistory
Transactions in the current result page.
CloseTransaction History- idstring
Unique identifier of the transaction.
Example:"6b425463-3e1b-431d-83fa-1e51c2925e99" - transaction_codestring
SumUp transaction code, for example
TEENSK4W2K. Use it to look up the transaction with thetransaction_codequery parameter. This is separate from the transaction'sidand the card issuer'sauth_code.Example:"TEENSK4W2K" - amountnumber
Total amount of the transaction in major units of
currency, for example10.1for EUR 10.10.Example:10.1 - currencyCurrencyOptions:
BRLCHFCLPCOPCZKDKKEURGBPHRKHUFNOKPLNRONSEKUSDThree-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 StatusOptions:
SUCCESSFULCANCELLEDFAILEDPENDINGREFUNDEDCurrent 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 TypeOptions:
CASHPOSECOMRECURRINGBITCOINBALANCEMOTOBOLETODIRECT_DEBITAPMUNKNOWNPayment category recorded on a transaction, for example
POSfor a point-of-sale card payment,ECOMfor an online card payment, orRECURRINGfor a recurring card payment. These reporting values are separate from the lowercasepayment_typevalues used to process checkouts.Example:"ECOM" - installments_countintegerminimum: 1
Number of installments for a deferred payment.
Example:1 - product_summarystring
Short description of the payment. The value is taken from the
descriptionproperty of the related checkout resource.Example:"Purchase" - payouts_totalinteger
Total number of payouts to the registered user specified in the
userproperty.Example:1 - payouts_receivedinteger
Number of payouts that are made to the registered user specified in the
userproperty.Example:1 - payout_planstringOptions:
SINGLE_PAYMENTTRUE_INSTALLMENTACCELERATED_INSTALLMENTPayout plan of the registered user at the time when the transaction was made.
Example:"SINGLE_PAYMENT" - transaction_idTransaction ID
Unique identifier of the transaction.
Example:"410fc44a-5956-44e1-b5cc-19c6f8d727a4" - client_transaction_idstring
Client-supplied identifier of the transaction.
Example:"urn:sumup:pos:sale:MNKKNGST:1D4E3B2D-111D-48D7-9AF0-832DAEF63DD7;2" - userstringformat: email
Email address of the registered user (merchant) to whom the payment is made.
Example:"merchant@example.com" - typestringOptions:
PAYMENTREFUNDCHARGE_BACKType of the transaction for the registered user specified in the
userproperty.Example:"PAYMENT" - card_typeCard TypeOptions:
ALELOAMEXCONECSCUPDINERSDISCOVEREFTPOSELOELVGIROCARDHIPERCARDINTERACJCBMAESTROMASTERCARDPLUXEESWILETICKETVISAVISA_ELECTRONVISA_VPAYVPAYVRUNKNOWNIssuing card network of the payment card used for the transaction.
Example:"VISA" - payout_datestringformat: date
Payout date (if paid out at once).
Example:"2019-08-28" - payout_typestringOptions:
BANK_ACCOUNTPREPAID_CARDPayout type.
Example:"BANK_ACCOUNT" - refunded_amountnumber0
Total amount refunded for this transaction, in major units of the transaction's currency.
- links[]TransactionsHistoryLink
Pagination links for navigating the transaction history.
CloseTransactions History Link- relstringrequired
Pagination relation indicating which page the link retrieves, for example
next.Example:"next" - hrefstringrequired
Query string to use with the transaction history endpoint when requesting the linked page. Preserve the returned pagination references and query parameters.
Example:"limit=10&oldest_ref=090df9bf-93b7-40f1-8181-fbdb236568a1&order=ascending"
curl https://api.sumup.com/v2.1/merchants/{merchant_code}/transactions/history \ -X GET \ -H "Authorization: Bearer $SUMUP_API_KEY"sumup transactions list \ --merchant-code "MH4H92C7"import SumUp from "@sumup/sdk";
async function main() { const client = new SumUp({ apiKey: "sup_sk_your_api_key" });
const result = await client.transactions.list( "MH4H92C7", { "transaction_code": "TEENSK4W2K" } ); console.log(result);}
main().catch(console.error);using System;using System.Collections.Generic;using System.Threading.Tasks;using SumUp;
public static class Program{ public static async Task Main() { using var client = new SumUpClient(); var response = await client.Transactions.ListAsync( "your-merchant-code", new TransactionsListOptions { TransactionCode = "example", Order = "example", Limit = 10, Users = Array.Empty<string>(), Statuses = Array.Empty<string>(), PaymentTypes = Array.Empty<PaymentType>(), EntryModes = Array.Empty<EntryMode>(), Types = Array.Empty<string>(), ChangesSince = DateTimeOffset.Parse("2025-01-01T12:00:00Z"), NewestTime = DateTimeOffset.Parse("2025-01-01T12:00:00Z"), NewestRef = "example", OldestTime = DateTimeOffset.Parse("2025-01-01T12:00:00Z"), OldestRef = "example", });
Console.WriteLine(response.StatusCode); }}import com.sumup.sdk.SumUpClient;
public final class ListTransactionsV21Sample { public static void main(String[] args) throws Exception { var client = new SumUpClient();
var result = client.transactions().list( "MH4H92C7" ); System.out.println(result); }}import os
import sumup
client = sumup.Sumup(api_key=os.environ["SUMUP_API_KEY"])result = client.transactions.list( "MH4H92C7", transaction_code="TEENSK4W2K", order="ascending", limit=10, users=[ "merchant@example.com", ], statuses=[ "SUCCESSFUL", "REFUNDED", ], payment_types=[ "ECOM", "POS", ], entry_modes=[ "CUSTOMER_ENTRY", "CHIP", ], types=[ "PAYMENT", "REFUND", ], changes_since="2019-08-28T09:00:00Z", newest_time="2019-08-29T09:00:00Z", newest_ref="090df9bf-93b7-40f1-8181-fbdb236568a1", oldest_time="2019-08-28T09:00:00Z", oldest_ref="090df9bf-93b7-40f1-8181-fbdb236568a1",)print(result)$sumup = new \SumUp\SumUp();
$result = $sumup->transactions->list('MH4H92C7');package main
import ( "context" "fmt" "time"
"github.com/sumup/sumup-go")
func main() { client := sumup.NewClient() result, err := client.Transactions.List(context.TODO(), "MH4H92C7", sumup.TransactionsListParams{ TransactionCode: new("TEENSK4W2K"), Order: new(sumup.TransactionsListOrder("ascending")), Limit: new(10), Users: []string{"merchant@example.com"}, Statuses: []sumup.TransactionsListStatusesItem{"SUCCESSFUL", "REFUNDED"}, PaymentTypes: []sumup.PaymentType{"ECOM", "POS"}, EntryModes: []sumup.EntryMode{"CUSTOMER_ENTRY", "CHIP"}, Types: []sumup.TransactionsListTypesItem{"PAYMENT", "REFUND"}, ChangesSince: new(time.Date(2019, time.August, 28, 9, 0, 0, 0, time.UTC)), NewestTime: new(time.Date(2019, time.August, 29, 9, 0, 0, 0, time.UTC)), NewestRef: new("090df9bf-93b7-40f1-8181-fbdb236568a1"), OldestTime: new(time.Date(2019, time.August, 28, 9, 0, 0, 0, time.UTC)), OldestRef: new("090df9bf-93b7-40f1-8181-fbdb236568a1"), }) if err != nil { panic(err.Error()) }
fmt.Printf("%+v\n", result)}use sumup::{Authorization, Client};#[tokio::main]async fn main() { let client = Client::default() .with_authorization(Authorization::api_key("sup_sk_test_...")); let response = client .transactions() .list("MERCHANT_CODE", Default::default()) .await .expect("list request failed"); println!("{response:#?}");}{ "items": [ { "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", "transaction_id": "410fc44a-5956-44e1-b5cc-19c6f8d727a4", "user": "merchant@example.com", "type": "PAYMENT", "payout_date": "2019-08-28", "payout_type": "BANK_ACCOUNT", "refunded_amount": 0 } ], "links": []}Content-Type: application/json
The request is invalid for the submitted query parameters.
- messagestring
Short description of the error.
Example:"Resource not found" - error_codestring
Platform code for the error.
Example:"NOT_FOUND"
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"
Refund a transaction
Refunds a transaction identified by its SumUp transaction ID. Omit the request body to request a full refund, or provide amount for a partial refund in the transaction’s currency.
Retrieve the transaction afterwards to inspect its refunded amount and refund events. The transaction must be eligible for a refund; see the error responses for invalid amounts, permissions, and processing failures.
paymentsrefunds.writePath Parameters
- merchant_codestringrequired
Short unique identifier for the merchant.
Example:"MH4H92C7" - transaction_idstringrequired
Unique identifier of the transaction.
Example:"4ffb8dfc-7f2b-413d-a497-2ad00766585e"
Body Parameters
- amountnumber
Amount to refund in major units of the transaction's currency, for example
5for EUR 5.00. It must be greater than zero and cannot exceed the amount eligible for a refund. Eligibility depends on the transaction and country/currency rules. If omitted, the system requests a full refund.Example:5
Response
The transaction was refunded in full or partially based on the request.
curl https://api.sumup.com/v1.0/merchants/{merchant_code}/payments/{transaction_id}/refunds \ -X POST \ -H "Authorization: Bearer $SUMUP_API_KEY" \ --json '{ "amount": 5 }'sumup transactions refund "4ffb8dfc-7f2b-413d-a497-2ad00766585e" \ --merchant-code "MH4H92C7" \ --amount "5"import SumUp from "@sumup/sdk";
async function main() { const client = new SumUp({ apiKey: "sup_sk_your_api_key" });
const result = await client.transactions.refund( "MH4H92C7", "4ffb8dfc-7f2b-413d-a497-2ad00766585e", { "amount": 5 } ); console.log(result);}
main().catch(console.error);using System;using System.Collections.Generic;using System.Threading.Tasks;using SumUp;
public static class Program{ public static async Task Main() { using var client = new SumUpClient(); var response = await client.Transactions.RefundAsync( "your-merchant-code", "example-id", new TransactionsRefundRequest { Amount = 5f, });
Console.WriteLine(response.StatusCode); }}import com.sumup.sdk.SumUpClient;
public final class RefundTransactionSample { public static void main(String[] args) throws Exception { var client = new SumUpClient();
var result = client.transactions().refund( "MH4H92C7", "4ffb8dfc-7f2b-413d-a497-2ad00766585e", com.sumup.sdk.models.RefundTransactionRequest.builder() .amount(5.0f) .build() ); System.out.println(result); }}import os
import sumup
client = sumup.Sumup(api_key=os.environ["SUMUP_API_KEY"])result = client.transactions.refund( "MH4H92C7", "4ffb8dfc-7f2b-413d-a497-2ad00766585e", amount=5,)print(result)$sumup = new \SumUp\SumUp();
$result = $sumup->transactions->refund('MH4H92C7', '4ffb8dfc-7f2b-413d-a497-2ad00766585e', [ 'amount' => 5,]);package main
import ( "context" "fmt"
"github.com/sumup/sumup-go")
func main() { client := sumup.NewClient() result, err := client.Transactions.Refund(context.TODO(), "MH4H92C7", "4ffb8dfc-7f2b-413d-a497-2ad00766585e", sumup.TransactionsRefundParams{ Amount: new(float32(5)), }) if err != nil { panic(err.Error()) }
fmt.Printf("%+v\n", result)}use sumup::{Authorization, Client};#[tokio::main]async fn main() { let client = Client::default() .with_authorization(Authorization::api_key("sup_sk_test_...")); let body = sumup::resources::transactions::RefundRequest { amount: Some(5f32), }; let response = client .transactions() .refund("MERCHANT_CODE", "TRANSACTION_ID", Some(body)) .await .expect("refund request failed"); println!("{response:#?}");}{}Content-Type: application/problem+json
The refund request is invalid.
- 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"
Content-Type: application/problem+json
The request is authenticated but not permitted for this operation.
- 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"
Content-Type: application/problem+json
The requested transaction does not exist or does not belong to the merchant.
- 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"
Content-Type: application/problem+json
The transaction cannot be refunded due to business constraints.
- 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"
Content-Type: application/problem+json
The refund could not be processed by the payment processor.
- 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"
{ "type": "https://developer.sumup.com/problem/bad-request", "title": "Bad Request", "status": 400, "detail": "amount must be greater than zero"}{ "type": "https://developer.sumup.com/problem/forbidden", "title": "Forbidden", "status": 403, "detail": "users is not allowed to make a refund"}{ "type": "https://developer.sumup.com/problem/not-found", "title": "Not Found", "status": 404, "detail": "Transaction not found"}{ "type": "https://developer.sumup.com/problem/conflict", "title": "Conflict", "status": 409, "detail": "The transaction is not refundable in its current state"}{ "type": "https://developer.sumup.com/problem/unprocessable-entity", "title": "Unprocessable Entity", "status": 422, "detail": "Refund failed.", "errors": [ { "code": "INVALID_AMOUNT", "detail": "Amount exceeds the refundable amount", "reason": "amount_too_high", "max_refundable_amount": 1000 } ]}