---
title: "Reverse payment"
method: POST
path: "/payments/{paymentId}/reverse"
tags: ["refunds"]
---

# Reverse payment

`POST /payments/{paymentId}/reverse`

Use this method to cancel or to partially cancel a payment in an open batch. This is also known as voiding a payment.  

To cancel a payment, you need its paymentId. Our gateway returned the paymentId in the response of the [Create Payment](https://docs.payroc.com/api/schema/card-payments/payments/create) method.  

**Note:** If you don't have the paymentId, use our [List Payments](https://docs.payroc.com/api/schema/card-payments/payments/list) method to search for the payment.  

If your request is successful, our gateway removes the payment from the merchant's open batch and no funds are taken from the cardholder's account.

## Path parameters

- `paymentId` string, required

## Headers

- `Authorization` string, required
- `Idempotency-Key` string, uuid, required

## Request body

- PaymentReversal
  - `operator` string — Operator who reversed the payment.
  - `amount` integer — Amount of the payment that the merchant wants to reverse. The value is in the currency’s lowest denomination, for example, cents. **Note:** If the merchant doesn’t send an amount, we reverse the total amount of the transaction.

## Response `200`

Successful request. We reversed the payment.

- Payment
  - `paymentId` string, required — Unique identifier that our gateway assigned to the transaction.
  - `processingTerminalId` string, required — Unique identifier of the terminal that initiated the transaction.
  - `operator` string — Operator who initiated the request.
  - `order` PaymentOrder, required — Object that contains information about the payment.
    - `orderId` string, required — Unique identifier that the merchant assigns to the transaction.
    - `dateTime` string, date-time — Date and time that the processor processed the transaction. Our gateway returns this value in the ISO 8601 format.
    - `description` string — Description of the transaction.
    - `amount` integer, required — Total amount of the transaction. The value is in the currency’s lowest denomination, for example, cents.
    - `currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'USS' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', required — Currency of the transaction. The value for the currency follows the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard.
    - `dccOffer` DccOffer — Object that contains information about the dynamic currency conversion (DCC) offer. For more information about DCC, go to [Dynamic Currency Conversion](https://docs.payroc.com/knowledge/card-payments/dynamic-currency-conversion).
      - `accepted` boolean — Indicates if the cardholder accepted DCC offer.
      - `offerReference` string — Unique identifier of the DCC offer.
      - `fxAmount` integer, required — Amount in the cardholder’s currency in the currency’s lowest denomination, for example, cents.
      - `fxCurrency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'USS' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', required — Currency of the transaction. The value for the currency follows the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard.
      - `fxCurrencyCode` string — Three-digit currency code for the card. This code follows the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard.
      - `fxCurrencyExponent` integer — Number of decimal places between the smallest currency unit and a whole currency unit. For example, for GBP, the smallest currency unit is 1p and it is equal to £0.01. If you use GBP, the value for **fxCurrencyExponent** is 2.
      - `fxRate` number, double, required — Foreign exchange rate for the card's currency.
      - `markup` number, double, required — Markup percentage rate that the DCC provider applies to the foreign exchange rate.
      - `markupText` string — Supporting text for the markup rate.
      - `provider` string — Name of the DCC provider.
      - `source` string — Source that the DCC provider used to get the foreign exchange rates.
    - `standingInstructions` StandingInstructions — Object that contains information about repeat payments. Include this object if the payment is part of a recurring billing schedule and you don't use our [subscriptions](https://docs.payroc.com/guides/take-payments/repeat-payments/use-our-gateway) feature.
      - `sequence` 'first' | 'subsequent', required — Indicates if this payment is the first payment or if it is a subsequent payment.
      - `processingModel` 'unscheduled' | 'recurring' | 'installment', required — Indicates the type of payment schedule. - 'unscheduled' – The payment is not part of a regular billing cycle. - 'recurring' – The payment is part of a regular billing cycle with no end date. - 'installment' – The payment is part of a regular billing cycle with an end date.
      - `referenceDataOfFirstTxn` FirstTxnReferenceData — Object that contains information about the first payment.
        - `paymentId` string — Unique identifier of the first payment. **Note:** We recommend that you always send a value for the **paymentId** parameter.
        - `cardSchemeReferenceId` string — Identifier that the card brand assigned to the first payment.
    - `breakdown` ItemizedBreakdown — Object that contains information about the breakdown of the transaction. Contains parameters required for [Level 2, Level 3, and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
      - `subtotal` integer, required — Amount of the transaction before tax and fees. The value is in the currency’s lowest denomination, for example, cents. Required for [Level 2, Level 3, and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
      - `cashbackAmount` integer — Amount of cashback for the transaction.
      - `tip` Tip — Object that contains information about the tip.
        - `type` 'percentage' | 'fixedAmount', required — Indicates if the tip is a fixed amount or a percentage. **Note:** Our gateway applies the percentage tip to the total amount of the transaction after tax.
        - `mode` 'prompted' | 'adjusted' — Indicates how the tip was added to the transaction. - `prompted` – The customer was prompted to add a tip during payment. - `adjusted` – The customer added a tip on the receipt for the merchant to adjust post-transaction.
        - `amount` integer — If the value for type is `fixedAmount`, this value is the tip amount in the currency's lowest denomination, for example, cents.
        - `percentage` number, double — If the value for type is `percentage`, this value is the tip as a percentage.
      - `surcharge` Surcharge — Object that contains information about the surcharge.
        - `bypass` boolean — Indicates if the merchant wants to remove the surcharge fee from the transaction. - `true` - Gateway removes the surcharge fee from the transaction. - `false` - Gateway adds the fee to the transaction.
        - `amount` integer — If the merchant added a surcharge fee, this value indicates the amount of the surcharge fee in the currency’s lowest denomination, for example, cents.
        - `percentage` number, double — If the merchant added a surcharge fee, this value indicates the surcharge percentage.
      - `dualPricing` DualPricing — Object that contains information about dual pricing.
        - `offered` boolean, required — Indicates if the merchant offered dual pricing to the customer.
        - `choiceRate` ChoiceRate — Object that contains information about the choice rate. We return this only if the value for offered was `true`.
          - `applied` boolean, required — Indicates if the merchant applies a choice rate to the transaction amount. Our gateway adds a choice rate to the transaction when the merchant offers an alternative payment type, but the customer chooses to pay by card.
          - `rate` number, double, required — If the customer used a card to pay for the transaction, this value indicates the percentage that our gateway added to the transaction amount. **Note:** Our gateway returns a value for **rate** only if the value for **applied** in the request is `true`.
          - `amount` integer, required — If the customer used a card to pay for the transaction, this value indicates the amount that our gateway added to the transaction amount. This value is in the currency’s lowest denomination, for example, cents. **Note:** Our gateway returns a value for **amount** only if the value for **applied** in the request is `true`.
        - `alternativeTender` 'card' | 'cash' | 'bankTransfer' — Payment method that the merchant presented to the customer as an alternative to their chosen method. **Note:** For requests, if the value for **offered** is `true`, you must send a value for **alternativeTender** in the request.
      - `healthcareExpenses` HealthcareExpense[] — Array of healthcareExpense objects that contain information about healthcare expenses.
        - `type` 'copay' | 'clinic' | 'dental' | 'prescription' | 'transit' | 'vision', required — Type of healthcare expense.
        - `amount` integer, required — Amount of the healthcare expense. The value is in the currency's lowest denomination, for example, cents.
      - `taxes` RetrievedTax[] — List of taxes.
        - `name` string, required — Name of the tax.
        - `rate` number, double, required — Tax percentage for the transaction.
        - `amount` integer — Amount of tax that was applied to the transaction. The value is in the currency's lowest denomination, for example, cents.
      - `dutyAmount` integer — Amount of duties or fees that apply to the order. The value is in the currency's lowest denomination, for example, cents. Required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
      - `freightAmount` integer — Amount for shipping in the currency's lowest denomination, for example, cents. Required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
      - `convenienceFee` ConvenienceFee — Object that contains information about the convenience fee for the transaction.
        - `amount` integer, required — If the merchant added a convenience fee, this value indicates the amount of the convenience fee in the currency’s lowest denomination, for example, cents.
      - `items` LineItem[] — Array of objects that contain information about each item that the customer purchased. Contains parameters required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
        - `commodityCode` string — Commodity code of the item. Required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
        - `productCode` string — Product code of the item. Required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
        - `description` string — Description of the item. Required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
        - `unitOfMeasure` 'ACR' | 'AMH' | 'AMP' | 'APZ' | 'ARE' | 'ASM' | 'ASV' | 'ATM' | 'ATT' | 'BAR' | 'BFT' | 'BHP' | 'BHX' | 'BIL' | 'BLD' | 'BLL' | 'BQL' | 'BTU' | 'BUA' | 'BUI' | 'BX' | 'CCT' | 'CDL' | 'CEL' | 'CEN' | 'CGM' | 'CKG' | 'CLF' | 'CLT' | 'CMK' | 'CMT' | 'CNP' | 'CNT' | 'COU' | 'CS' | 'CTM' | 'CUR' | 'CWA' | 'DAA' | 'DAD' | 'DAY' | 'DEC' | 'DLT' | 'DMK' | 'DMQ' | 'DMT' | 'DPC' | 'DPT' | 'DRA' | 'DRI' | 'DRL' | 'DRM' | 'DTH' | 'DTN' | 'DWT' | 'DZN' | 'DZP' | 'DZR' | 'EA' | 'EAC' | 'FAH' | 'FAR' | 'FOT' | 'FTK' | 'FTQ' | 'GBQ' | 'GFI' | 'GGR' | 'GII' | 'GLD' | 'GLI' | 'GLL' | 'GRM' | 'GRN' | 'GRO' | 'GRT' | 'GWH' | 'HAR' | 'HBA' | 'HGM' | 'HIU' | 'HLT' | 'HMQ' | 'HMT' | 'HPA' | 'HTZ' | 'HUR' | 'INH' | 'INK' | 'INQ' | 'ITM' | 'JOU' | 'KBA' | 'KEL' | 'KGM' | 'KGS' | 'KHZ' | 'KJO' | 'KMH' | 'KMK' | 'KMQ' | 'KMT' | 'KNI' | 'KNS' | 'KNT' | 'KPA' | 'KPH' | 'KPO' | 'KPP' | 'KSD' | 'KSH' | 'KTN' | 'KUR' | 'KVA' | 'KVR' | 'KVT' | 'KWH' | 'KWT' | 'LBR' | 'LBS' | 'LEF' | 'LPA' | 'LTN' | 'LTR' | 'LUM' | 'LUX' | 'MAL' | 'MAM' | 'MAW' | 'MBE' | 'MBF' | 'MBR' | 'MCU' | 'MGM' | 'MHZ' | 'MIK' | 'MIL' | 'MIN' | 'MIO' | 'MIU' | 'MLD' | 'MLT' | 'MMK' | 'MMQ' | 'MMT' | 'MON' | 'MPA' | 'MQH' | 'MQS' | 'MSK' | 'MTK' | 'MTQ' | 'MTR' | 'MTS' | 'MVA' | 'MWH' | 'NAR' | 'NBB' | 'NCL' | 'NEW' | 'NIU' | 'NMB' | 'NMI' | 'NMP' | 'NMR' | 'NPL' | 'NPT' | 'NRL' | 'NTT' | 'OHM' | 'ONZ' | 'OZA' | 'OZI' | 'PAL' | 'PCB' | 'PCE' | 'PGL' | 'PK' | 'PSC' | 'PTD' | 'PTI' | 'PTL' | 'QAN' | 'QTD' | 'QTI' | 'QTL' | 'QTR' | 'RPM' | 'RPS' | 'SAN' | 'SCO' | 'SCR' | 'SEC' | 'SET' | 'SHT' | 'SIE' | 'SMI' | 'SST' | 'ST' | 'STI' | 'TAH' | 'TNE' | 'TPR' | 'TQD' | 'TRL' | 'TSD' | 'TSH' | 'VLT' | 'WCD' | 'WEB' | 'WEE' | 'WHR' | 'WSD' | 'WTT' | 'YDK' | 'YDQ' — Unit of measurement for the item. For more information about units of measurement, go to [Units of measurement](https://docs.payroc.com/knowledge/basic-concepts/units-of-measurement).
        - `unitPrice` integer, required — Price of each unit. Required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
        - `quantity` number, double, required — Number of units. Required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
        - `discountRate` number, double — Discount rate that the merchant applies to the item. Required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
        - `taxes` RetrievedTax[] — Array of objects that contain information about each tax that applies to the item. Required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
          - `name` string, required — Name of the tax.
          - `rate` number, double, required — Tax percentage for the transaction.
          - `amount` integer — Amount of tax that was applied to the transaction. The value is in the currency's lowest denomination, for example, cents.
  - `customer` RetrievedCustomer — Object that contains the customer's contact details and address information.
    - `firstName` string — Customer's first name.
    - `lastName` string — Customer's last name.
    - `dateOfBirth` string, date — Customer's date of birth. The format for this value is **YYYY-MM-DD**.
    - `referenceNumber` string — Identifier of the transaction, also known as a customer code. For requests, you must send a value for **referenceNumber** if the customer provides one.
    - `billingAddress` RetrievedAddress — Object that contains information about the address.
      - `address1` string — Address line 1.
      - `address2` string — Address line 2.
      - `address3` string — Address line 3.
      - `city` string — City.
      - `state` string — Name of the state or state abbreviation.
      - `country` string — Two-digit country code for the country that the business operates in. The format follows the [ISO-3166-1](https://www.iso.org/iso-3166-country-codes.html) standard.
      - `postalCode` string — Zip code or postal code.
    - `shippingAddress` RetrievedShipping — Object that contains information about the customer and their shipping address.
      - `recipientName` string — Recipient's name.
      - `address` RetrievedAddress — Object that contains information about the address.
        - `address1` string — Address line 1.
        - `address2` string — Address line 2.
        - `address3` string — Address line 3.
        - `city` string — City.
        - `state` string — Name of the state or state abbreviation.
        - `country` string — Two-digit country code for the country that the business operates in. The format follows the [ISO-3166-1](https://www.iso.org/iso-3166-country-codes.html) standard.
        - `postalCode` string — Zip code or postal code.
    - `contactMethods` ContactMethod[] — Array of polymorphic objects, which contain contact information. The value of the type parameter determines which variant you should use: - `email` - Email address - `phone` - Phone number - `mobile` - Mobile number - `fax` - Fax number
      - union
        - object — email variant
          - `type` 'email', required — Discriminator value: email
          - `value` string, required — Email address.
        - object — phone variant
          - `type` 'phone', required — Discriminator value: phone
          - `value` string, required — Phone number.
        - object — mobile variant
          - `type` 'mobile', required — Discriminator value: mobile
          - `value` string, required — Mobile number.
        - object — fax variant
          - `type` 'fax', required — Discriminator value: fax
          - `value` string, required — Fax number.
    - `notificationLanguage` 'en' | 'fr' — Language that the customer uses for notifications. This code follows the [ISO 639-1](https://www.iso.org/iso-639-language-code) alpha-2 standard.
  - `card` Card, required — Object that contains the details of the payment card.
    - `type` string, required — Card brand of the card, for example, Visa.
    - `entryMethod` 'icc' | 'keyed' | 'swiped' | 'swipedFallback' | 'contactlessIcc' | 'contactlessMsr', required — Method that the device used to capture the card details.
    - `cardholderName` string — Cardholder’s name.
    - `cardholderSignature` string — Cardholder’s signature.
    - `cardNumber` string, required — Card number. In the response, our gateway shows only the first six digits and the last four digits of the card number, for example, 500165******0000.
    - `expiryDate` string, required — Expiry date of the customer's card. The format is in **MMYY**.
    - `secureToken` SecureTokenSummary — Object that contains information about the secure token.
      - `secureTokenId` string, required — Unique identifier that the merchant assigned to the secure token.
      - `customerName` string, required — Customer's name.
      - `token` string, required — Token that the merchant can use in future transactions to represent the customer's payment details. The token: - Begins with the six-digit identification number **296753**. - Contains up to 12 digits. - Contains a single check digit that we calculate using the Luhn algorithm.
      - `status` 'notValidated' | 'cvvValidated' | 'validationFailed' | 'issueNumberValidated' | 'cardNumberValidated' | 'bankAccountValidated', required — Status of the customer's bank account. The processor performs a security check on the customer's bank account and returns the status of the account. **Note:** Depending on the merchant's account settings, this feature may be unavailable.
      - `link` Link — Object that contains HATEOAS links for the resource.
        - `rel` string, required — Indicates the relationship between the current resource and the target resource.
        - `method` string, required — HTTP method that you need to use with the target resource.
        - `href` string, required — URL of the target resource.
    - `securityChecks` SecurityCheck — Object that contains information about card verification and security checks.
      - `cvvResult` 'M' | 'N' | 'P' | 'U' — Indicates if the card verification value (CVV) that the customer provided in the request matches the CVV on the card. - `M` – The CVV matches the card’s CVV. - `N` – The CVV doesn’t match the card’s CVV. - `P` – The CVV wasn’t processed. - `U` – The CVV isn’t registered. **Note:** Our gateway doesn’t automatically decline transactions when the CVV doesn’t match the card’s CVV, unless the merchant selects this setting in their account.
      - `avsResult` 'Y' | 'A' | 'Z' | 'N' | 'U' | 'R' | 'G' | 'S' | 'F' | 'W' | 'X' — Indicates if the address that the customer provided in the request matches the address linked to the card. - `Y` – The address in the request matches the address linked to the card. - `N` – The address in the request doesn’t match the address linked to the card. - `A` – The street address matches, but ZIP code or postal code doesn’t match. - `Z` - The ZIP code or postal code matches, but street address doesn’t match. - `U` – The address information is unavailable. - `G` – The issuer or card brand doesn’t support the Address Verification Service (AVS). - `R` – The AVS is currently unavailable. Try again later. - `S` – There was no AVS data in the request, or it was sent in the wrong format. - `F` - For UK addresses, the address in the request matches the address linked to the card. - `W` – For US addresses, the nine-digit ZIP code or postal code in the request matches the address linked to the card but the street address doesn’t. - `X` – For US addresses, the nine-digit ZIP code or postal code and the street address matches the address linked to the card. **Note:** Our gateway doesn’t automatically decline transactions when the address doesn’t match the address linked to the card, unless the merchant selects this setting in their account.
    - `emvTags` EmvTag[] — Array of emvTag objects.
      - `hex` string, required — Hex code of the EMV tag.
      - `value` string, required — Value of the EMV tag.
    - `balances` CardBalance[] — Array of cardBalance objects. Our gateway returns this array only when the customer uses an Electronic Benefit Transfer (EBT) card.
      - `benefitCategory` 'cash' | 'foodStamp', required — Indicates if the balance relates to an EBT Cash account or EBT SNAP account. - `cash` – EBT Cash - `foodStamp` – EBT SNAP
      - `amount` integer, required — Current balance of the account. This value is in the currency's lowest denomination, for example, cents.
      - `currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'USS' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', required — Currency of the transaction. The value for the currency follows the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard.
  - `refunds` RefundSummary[] — Array of refundSummary objects. Each object contains information about refunds linked to the transaction.
    - `refundId` string, required — Unique identifier of the refund.
    - `dateTime` string, date-time, required — Date and time that the refund was processed.
    - `currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'USS' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', required — Currency of the transaction. The value for the currency follows the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard.
    - `amount` integer, required — Amount of the refund. This value is in the currency’s lowest denomination, for example, cents.
    - `status` 'ready' | 'pending' | 'declined' | 'complete' | 'referral' | 'pickup' | 'reversal' | 'returned' | 'admin' | 'expired' | 'accepted', required — Current status of the refund.
    - `responseCode` 'A' | 'D' | 'E' | 'P' | 'R' | 'C', required — Response from the processor. - `A` - The processor approved the transaction. - `D` - The processor declined the transaction. - `E` - The processor received the transaction but will process the transaction later. - `P` - The processor authorized a portion of the original amount of the transaction. - `R` - The issuer declined the transaction and indicated that the customer should contact their bank. - `C` - The issuer declined the transaction and indicated that the merchant should keep the card as it was reported lost or stolen.
    - `responseMessage` string, required — Description of the response from the processor.
    - `link` Link — Object that contains HATEOAS links for the resource.
      - `rel` string, required — Indicates the relationship between the current resource and the target resource.
      - `method` string, required — HTTP method that you need to use with the target resource.
      - `href` string, required — URL of the target resource.
  - `supportedOperations` SupportedOperationsItems[] — Array of operations that you can perform on the transaction. Our gateway can return any of the following values: - `capture` - [Capture the payment](https://docs.payroc.com/api/schema/card-payments/payments/capture). - `refund` - [Refund the payment](https://docs.payroc.com/api/schema/card-payments/refunds/create-referenced-refund). - `fullyReverse` - [Fully reverse the transaction](https://docs.payroc.com/api/schema/card-payments/refunds/reverse). - `partiallyReverse` - [Partially reverse the payment](https://docs.payroc.com/api/schema/card-payments/refunds/reverse). - `incrementAuthorization` - [Increase the amount of the authorization](https://docs.payroc.com/api/schema/card-payments/payments/adjust). - `adjustTip` - [Adjust the tip post-payment](https://docs.payroc.com/api/schema/card-payments/payments/adjust). - `addSignature` - [Add a signature to the payment](https://docs.payroc.com/api/schema/card-payments/payments/adjust). - `setAsReady` - [Set the transaction’s status to `ready`](https://docs.payroc.com/api/schema/card-payments/payments/adjust). - `setAsPending` - [Set the transaction’s status to `pending`](https://docs.payroc.com/api/schema/card-payments/payments/adjust).
  - `transactionResult` TransactionResult, required — Object that contains information about the transaction response details.
    - `type` 'sale' | 'refund' | 'preAuthorization' | 'preAuthorizationCompletion' — Transaction type.
    - `ebtType` 'cashPurchase' | 'cashPurchaseWithCashback' | 'foodStampPurchase' | 'foodStampVoucherPurchase' | 'foodStampReturn' | 'foodStampVoucherReturn' | 'cashBalanceInquiry' | 'foodStampBalanceInquiry' | 'cashWithdrawal' — Indicates the subtype of EBT in the transaction.
    - `status` 'ready' | 'pending' | 'declined' | 'complete' | 'referral' | 'pickup' | 'reversal' | 'admin' | 'expired' | 'accepted', required — Status of the transaction. The value is one of the following: - `ready` - Successful transaction. We added the payment to the open batch. - `pending` - Successful transaction. We added the payment to the open batch, but we don't collect the funds until the merchant [captures the transaction](https://docs.payroc.com/api/schema/card-payments/payments/capture). - `declined` - Unsuccessful transaction. The cardholder's issuing bank declined the transaction. - `complete` - Successful transaction. The funds have moved to the merchant's bank account. - `referral` - Unsuccessful transaction. The issuing bank identified an issue with the transaction. You should treat a `referral` status as a declined transaction. - `pickup` - Unsuccessful transaction. The issuing bank has reported that the card is lost or stolen. - `reversal` - Transaction cancelled. The transaction was cancelled, and we removed the transaction from the open batch. - `admin` - Transaction under review. We have flagged an issue with the transaction. - `expired` - Transaction expired. If a transaction stays in `pending` status for too long, it expires. - `accepted` - Transaction in progress. The transaction is in progress with the processor but we can't confirm the result yet.
    - `approvalCode` string — Authorization code that the processor assigned to the transaction.
    - `authorizedAmount` integer — Amount that the processor authorized for the transaction. This value is in the currency’s lowest denomination, for example, cents. **Notes:** - For partial authorizations, this amount is lower than the amount in the request. - If the value for **authorizedAmount** is negative, this indicates that the merchant sent funds to the customer.
    - `currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'USS' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL' — Currency of the transaction. The value for the currency follows the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard.
    - `responseCode` 'A' | 'D' | 'E' | 'P' | 'R' | 'C', required — Response from the processor. - `A` - The processor approved the transaction. - `D` - The processor declined the transaction. - `E` - The processor received the transaction but will process the transaction later. - `P` - The processor authorized a portion of the original amount of the transaction. - `R` - The issuer declined the transaction and indicated that the customer should contact their bank. - `C` - The issuer declined the transaction and indicated that the merchant should keep the card as it was reported lost or stolen.
    - `responseMessage` string — Response description from the processor.
    - `processorResponseCode` string — Original response code that the processor sent.
    - `cardSchemeReferenceId` string — Identifier that the card brand assigns to the payment instruction.
    - `healthcareIndicator` 'Y' | 'N' | 'C' | 'R' — Indicates if we processed the payment as a healthcare expense. The value is one of the following: - `Y` - We processed the payment as a healthcare expense. - `N` - We processed the payment but it didn't contain any healthcare expenses. - `C` - We processed the payment but the card isn't linked to a Flexible Spending Account (FSA) or a Health Savings Account (HSA). - `R` - We processed the payment but the card doesn't support healthcare expenses.
  - `customFields` CustomField[] — Array of customField objects.
    - `name` string, required — Name of the custom field.
    - `value` string, required — Value for the custom field.

## Other responses

- `400` — Validation error
- `401` — Identity could not be verified
- `403` — Do not have permissions to perform this action
- `404` — Resource not found
- `406` — Not acceptable
- `409` — Conflict
- `415` — Unsupported media type
- `500` — An error has occured

---

[API](https://skmtc.dev/payroc/apis/schema.md) · [All operations](https://skmtc.dev/payroc/apis/schema/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/payroc/schema/revisions/1d9d3e305945/schema)
