Transactions

Create a Sale or Refund

POST
/transactions

Create a Sale or Refund transaction that attempts to transfer funds between the Payer and the Merchant using a specific Payment Method. The Sale transaction can be flagged for automatic capture (default) or flagged as requiring a separate capture action later. Availability of refunds that do not link directly to a previous Sale transaction depends on your live configuration.

Authorization

bearerAuth
AuthorizationBearer <token>

Access token from POST /accesstoken, sent as Authorization: Bearer <token>.

In: header

Header Parameters

X-GP-Idempotency?string

Integrator generated value submitted in the request header that is checked to ensure the same value has not been seen in the last 24 hours. It is used to ensure idempotency is maintained with this action.

Length1 <= length <= 50
X-GP-Version*string

The version of the API to execute the request.

Length1 <= length <= 50
Default"2021-03-22"

Request Body

application/json

account_name*string

A meaningful label that better identifies the account.

Length1 <= length <= 50
type?string

Describes whether the transaction is a SALE, that moves funds from Payer to Merchant, or a REFUND where funds move from Merchant to Payer.

  • SALE - indicates the movement, or the attempt to move, funds from payer to a merchant.
  • REFUND - indicates the movement, or the attempt to move, funds from merchant to the payer.
Length1 <= length <= 50
Default"SALE"

Value in

  • "SALE"
  • "REFUND"
channel*string

Describes whether the transaction was processed in a face to face(CP) scenario or a Customer Not Present (CNP) scenario.

  • CP - A Customer Present transaction is when the payer and the merchant are in direct face to face contact when exchanging payment method information to fulfill a transaction. e.g. in a store and paying at the counter that is attended by a clerk.
  • CNP - A Customer NOT Present transaction is when the payer and the merchant are not together when exchanging payment method information to fulfill a transaction. e.g. a transaction executed from a merchant's website or over the phone
Length1 <= length <= 50

Value in

  • "CP"
  • "CNP"
country*string

This is the country the merchant is domiciled in. For example, if the merchant is based in Canada it must be set to CA.if the merchant is based in England it must be set to GB.if the merchant is based in USA it must be set to US.The country in ISO-3166-1(alpha-2 code) format.

Length2 <= length <= 2
capture_mode?string

Indicates whether the transaction is to be captured automatically, later or later using more than 1 partial capture.

  • AUTO - If a transaction is authorized, funds will exchange between the payer and merchant automatically and as soon as possible.
  • LATER - If a transaction is authorized, funds will not exchange between the payer and merchant automatically and will require a subsequent separate action to capture that transaction and start the funding process. Only one successful capture is permitted.
  • MULTIPLE - If a transaction is authorized, funds will not exchange between the payer and merchant automatically. One or more subsequent separate capture actions are required to capture that transaction in parts and start the funding process for the part captured. One or many successful capture are permitted once the total amount captured is within a range of the original authorized amount.
  • 'LATER_FINAL' - If a transaction is authorized, funds will not exchange between the payer and merchant automatically and will require a subsequent separate action to capture that transaction and start the funding process. In this case, the separate capture amount must be the same as the initial auth.
Length1 <= length <= 50
Default"AUTO"

Value in

  • "AUTO"
  • "LATER"
  • "MULTIPLE"
  • "LATER_FINAL"
total_capture_count?number

Indicates the total or expected total of captures that will executed against a transaction that can be captured multiple times.

authorization_mode?string

Indicates if the transaction can be authorized using another non-standard model where the amount is not fully authorized at the time the transaction is created.

  • PARTIAL - Indicates if the transaction can be or was authorized for an amount less than the requested amount. This is available for CP channel. The outstanding balance, not yet authorized, can be processed again using a different card.
  • DEFERRED - Indicates if the transaction can be created offline and authorized later when the systems are back online
Length1 <= length <= 50

Value in

  • "PARTIAL"
  • "DEFERRED"
deferred_time_created?string

This field should be sent on all Deferred Authorizations and reflect the time the transaction was created in the POS application.

Formatdate-time
amount*string

The amount to transfer between Payer and Merchant for a SALE or a REFUND. It is always represented in the lowest denomination of the related currency. and with no decimal point.

Length1 <= length <= 50
currency*string

The currency of the amount in ISO-4217(alpha-3).

Length3 <= length <= 3

Value in

  • "USD"
  • "EUR"
  • "CAD"
  • "AFN"
  • "DZD"
  • "ARS"
  • "AMD"
  • "AWG"
  • "AUD"
  • "AZN"
  • "BSD"
  • "BHD"
  • "THB"
  • "PAB"
  • "BBD"
  • "BYN"
  • "BZD"
  • "BMD"
  • "VEF"
  • "BOB"
  • "BRL"
  • "BND"
  • "BGN"
  • "BIF"
  • "CVE"
  • "CLP"
  • "COP"
  • "KMF"
  • "CDF"
  • "NIO"
  • "CRC"
  • "CUP"
  • "CZK"
  • "GMD"
  • "DKK"
  • "MKD"
  • "DJF"
  • "STD"
  • "DOP"
  • "VND"
  • "XCD"
  • "EGP"
  • "SVC"
  • "ETB"
  • "FKP"
  • "FJD"
  • "HUF"
  • "GHS"
  • "GIP"
  • "HTG"
  • "PYG"
  • "GNF"
  • "GYD"
  • "HKD"
  • "UAH"
  • "ISK"
  • "INR"
  • "IRR"
  • "IQD"
  • "JMD"
  • "JOD"
  • "KES"
  • "PGK"
  • "HRK"
  • "KWD"
  • "AOA"
  • "MMK"
  • "LAK"
  • "GEL"
  • "LBP"
  • "ALL"
  • "HNL"
  • "SLL"
  • "LRD"
  • "LYD"
  • "SZL"
  • "LSL"
  • "MGA"
  • "MWK"
  • "MYR"
  • "MUR"
  • "MXN"
  • "MDL"
  • "MAD"
  • "MZN"
  • "BOV"
  • "NGN"
  • "ERN"
  • "NAD"
  • "NPR"
  • "ANG"
  • "ILS"
  • "TWD"
  • "NZD"
  • "BTN"
  • "KPW"
  • "NOK"
  • "MRO"
  • "TOP"
  • "PKR"
  • "MOP"
  • "CUC"
  • "UYU"
  • "PHP"
  • "GBP"
  • "BWP"
  • "QAR"
  • "GTQ"
  • "ZAR"
  • "OMR"
  • "KHR"
  • "RON"
  • "MVR"
  • "IDR"
  • "RUB"
  • "RWF"
  • "SHP"
  • "SAR"
  • "RSD"
  • "SCR"
  • "SGD"
  • "PEN"
  • "SBD"
  • "KGS"
  • "SOS"
  • "TJS"
  • "SSP"
  • "LKR"
  • "XSU"
  • "SDG"
  • "SRD"
  • "SEK"
  • "CHF"
  • "SYP"
  • "BDT"
  • "WST"
  • "TZS"
  • "KZT"
  • "TTD"
  • "MNT"
  • "TND"
  • "TRY"
  • "TMT"
  • "AED"
  • "UGX"
  • "CLF"
  • "COU"
  • "UZS"
  • "VUV"
  • "KRW"
  • "YER"
  • "JPY"
  • "CNY"
  • "ZMW"
  • "ZWL"
  • "PLN"
gratuity_amount?string

The amount of the gratuity for a transaction.

Length1 <= length <= 50
cashback_amount?string

The amount of the transaction that relates to cashback.

Length1 <= length <= 50
surcharge_amount?string

The amount that reflects the additional charge the merchant applied to the transaction for using a specific payment method.

Length1 <= length <= 50
surcharge_type?string

This indicates whether the surcharge is a DEBIT or CREDIT to the merchant

Length1 <= length <= 50

Value in

  • "DEBIT"
  • "CREDIT"
convenience_amount?string

The amount that reflects the charge the merchant applied to the transaction for availing of a more convenient purchase.

Length1 <= length <= 50
reference*string

Merchant defined field to reference the transaction.

Length8 <= length <= 50
description?string

Merchant defined description for the transaction.

Length1 <= length <= 50
language?string

Indicates the language the transaction was executed in. In the format ISO-639-1 (alpha-2) or ISO-639-1 (alpha-2)_ISO-3166(alpha-2)

Length1 <= length <= 50
check_for_duplicate?string

This flag is set by the merchant to indicate if duplicate checking on this transaction can be skipped

Length1 <= length <= 50
Default"NO"

Value in

  • "YES"
  • "NO"
ip_address?string

Indicates the source IP Address of the system used to process the transaction with Global Payments.

Length1 <= length <= 50
site_reference?string

A merchant defined reference for the location that created the transaction.

Length1 <= length <= 50
user_reference?string

The merchant's user reference for the transaction. This represents the person who processed the transaction on the merchant's behalf like a clerk or cashier reference.

Length1 <= length <= 50
payer_reference?string

The merchant's payer, or customer, reference for the transaction. This represents the person or company who is paying for goods and services provided by the merchant.

Length1 <= length <= 50
merchant_category?string

Indicates what industry the merchant belongs to.

Length1 <= length <= 50
Default"OTHER"

Value in

  • "HOTEL"
  • "AIRLINE"
  • "RETAIL"
  • "TOP_UP"
  • "PLAYER"
  • "CD_KEY"
  • "DEBT_REPAYMENT"
  • "HEALTHCARE"
  • "ACCOUNT_FUNDING_TRANSACTIONS"
  • "BILL_PAY"
  • "OTHER"
  • "GAMING"
merchant_category_code?string

A four-digit number used to classify the merchant into an industry or market segment.

Length1 <= length <= 50
merchant_benefits_reference?string

This is the merchants unique identifier that enables them to accept Benefit cards. In the US, this is the Food and Consumer Service (FCS) ID and it is required for EBT Food Stamp and Electronic Voucher transactions.

order?
currency_conversion?
initiator?string

Indicates whether the Merchant or the Payer initiated the creation of a transaction.

  • PAYER - The transaction was initiated by the customer who is paying the merchant.
  • MERCHANT - The transaction was initiated by the merchant, who is getting paid by the payer.
Length1 <= length <= 50

Value in

  • "PAYER"
  • "MERCHANT"
stored_credential?
notifications?
payer?
payment_method*
device?
lodging?
installment?
risk_assessment?array<>
airline?
healthcare?
payment_facilitator?

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/transactions" \  -H "X-GP-Version: 2021-03-22" \  -H "Content-Type: application/json" \  -d '{    "account_name": "Transaction_Processing",    "type": "SALE",    "channel": "CNP",    "amount": "1999",    "currency": "EUR",    "reference": "93459c78-f3f9-427c-84df-ca0584bb55bf",    "country": "DE",    "payment_method": {      "name": "James Mason",      "entry_mode": "ECOM",      "authentication": {        "id": "AUT_d455464a-115c-46b7-9622-6829e0326e23"      },      "card": {        "number": "4263970000005262",        "expiry_month": "05",        "expiry_year": "30",        "cvv": "852",        "cvv_indicator": "PRESENT",        "avs_address": "Flat 123",        "avs_postal_code": "50001"      }    }  }'
{  "id": "TRN_kJt5dxxxxxxIqSj0lRwr8GYGxxxxq7",  "time_created": "2026-03-10T08:21:27.127Z",  "time_last_updated": "2026-03-10T08:21:27.127Z",  "type": "SALE",  "status": "CAPTURED",  "channel": "CP",  "capture_mode": "AUTO",  "amount": "2278",  "currency": "USD",  "country": "US",  "merchant_id": "MER_7a20bd695b6c4xxxxxxedb8300xxxx66",  "merchant_name": "internet2",  "account_id": "TRA_ae0784xxxxxx46c0b676xxxxxx9c434a",  "account_name": "Transaction_Processing",  "reference": "TRANS-20180114123459878",  "merchant_benefits_reference": "1234567",  "payment_method": {    "result": "A0000",    "message": "Success",    "entry_mode": "MANUAL",    "card": {      "funding": "FOOD_STAMP",      "available_balance": "654321",      "brand": "EBT",      "masked_number_last4": "XXXXXXXXXXXX9011",      "authcode": "TAS681",      "brand_reference": "123456",      "brand_time_created": "2026-03-10T01:21:26"    }  },  "batch_id": "BAT_12345",  "action": {    "id": "ACT_kJt5d1zHo1bIqSj0lRwr8GYGXF9Oq7",    "type": "AUTHORIZE",    "time_created": "2026-03-10T08:21:27.127Z",    "result_code": "SUCCESS",    "app_id": "VuT4qLPs98hxxxxxxxkWz3KDIuAumlwz",    "app_name": "xxxx_transit_app"  }}