# Visa Direct

Search API Reference

- [Getting Started](https://developer.visa.com/capabilities/visa_direct/docs)
- [How to Use Visa Direct](https://developer.visa.com/capabilities/visa_direct/docs-how-to)
- [How to Use Visa Alias Directory Service](https://developer.visa.com/capabilities/alias-directory-service/docs-getting-started)
- [Authentication and Encryption](https://developer.visa.com/capabilities/visa_direct/docs-authentication)
- [Error Codes](https://developer.visa.com/capabilities/visa_direct/docs-error-codes)
- [Request & Response Codes](https://developer.visa.com/request_response_codes)

## Adjustment API

The AdjustReverseFundsTransactions resource credits (pushes back) funds to the sender's Visa account by initiating a financial message called an Account Funding Transaction Reversal (AFTR) without the 24 hours limitation in the AFTR.

### Create Adjustment Reverse Funds Transaction  v1 - Latest

Create Adjustment Funds Transaction

#### Request

##### Request Body schema:     application/json                   application/json  application/xml

Request body for creating adjustment of funds transfer

|     |     |
| --- | --- |
| acquirerCountryCode<br>required | number<br>Use a three digit numeric country code for the country of the BIN under which your Visa Direct program is registered. |
| acquiringBin<br>required | number<br>The Bank Identification Number (BIN) under which your Visa Direct is registered. This must match the information provided during enrollment. |
| amount<br>required | number <double> <br>The amount of the transaction, inclusive of all fees assessed for the transaction, including currency conversion fees. <br>Minimum Value: 0 <br>Maximum value: 999999999.999 <br>Allowed fractional digits: 3 <br>Note: If a currency has three decimal places, the last digit of this field must be zero. <br>If a currency has 0 minor unit, this field must carry no fractional points.<br>If a currency has 2 minor units, the field must carry maximum two fractional points. |
| businessApplicationId<br>required | string 2 characters <br>Identifies the Visa Direct use case required for processing. This must match the value provided in the request of PullFundsTransactions.<br>For Argentina domestic purchase transactions the value should be "PS". |
| cardAcceptor<br>required | object |
| |     |
| --- | --- |
| address<br>required | object |
| |     |
| --- | --- |
| country<br>required | string \[ 1 .. 3 \] characters <br>Should match the country information submitted in the original PullFundsTransactions |
| county | string <= 3 characters <br>Should match the county information submitted in the original PullFundsTransactions |
| state | string <= 2 characters <br>Should match the state information submitted in the original PullFundsTransactions |
| zipCode | string \[ 5 .. 9 \] characters <br>Should match the zip code information submitted in the original PullFundsTransactions | |
| idCode<br>required | string \[ 1 .. 15 \] characters <br>A unique identifier for the card acceptor (Visa Direct merchant). |
| name<br>required | string \[ 1 .. 25 \] characters <br>card acceptor name as it is sent in the original PullFundsTransactions. |
| terminalId<br>required | string \[ 1 .. 8 \] characters <br>The identifier for the terminal at a card acceptor location. If sending transactions from a card not present environment, use the same value for all transactions. |
| paymentFacilitator | object |
| |     |
| --- | --- |
| additionalAcceptor | object |
| |     |
| --- | --- |
| foreignRetailerIndicator | string \[ 1 .. 3 \] characters <br>Identifies a foreign retailer under a marketplace and/or payment facilitator. <br>May also Identify a foreign Conversion Affiliate under a Ramp <br>This tag must contain either: <br>A – Conversion Affiliate is located in the same country as Ramp provider<br>B – Conversion Affiliate is located in a different country as Ramp provider<br>Enum:"A""B" | | | |
| localTransactionDateTime<br>required | string <date-time> <br>This field contains the local date and time when the Adjustment transaction is submitted.<br>Format: YYYY-MM-DDThh:mm:ss<br>Example: 2020-05-21T13:30:00 |
| retrievalReferenceNumber<br>required | number<br>This field contains a number that is used with other data elements as a key to identify and track all messages related to a given cardholder transaction; that is, to a given transaction set. Recommended format: ydddhhnnnnnn. The first four digits must be a valid yddd date in the Julian date format, where the first digit = 0-9 (last digit of current year) and the next three digits = 001-366 (number of the day in the year), hh can be the two digit hour in a 24 hour clock (00-23) during which the transaction is performed, nnnnnn can be the systemsTraceAuditNumber or any 6 digit number. A unique value should be used for each API invocation. Note: This value for the purpose of credit adjustment must be  different from the original request. |
| senderCurrencyCode<br>required | string 3 characters <br>Use a 3-character alpha or numeric currency code for currency of the sender. This code identifies the currency of the transaction amount sent in the amount field.<br>This field will be deprecated. Please use the replacement field transactionCurrencyCode instead. |
| systemsTraceAuditNumber<br>required | number<br>This field contains a number assigned by the merchant, service provider or acquirer that uniquely identifies a cardholder transaction and all message types (also known as system transactions) that comprise it per individual program rules. A unique value should be used for each API invocation. Note: This value for the purpose of credit adjustment must be  different from the original request. |
| transactionIdentifier<br>required | number<br>Clients shall send the Visa transaction identifier returned in the response of PullFundsTransactions. Note: This value for the purpose of credit adjustment must be  same as the original request. |
| argentinaNationalServiceData | object<br>Settlement Service Data object for Argentina required if transaction indicates Argentina national settlement. |
| |     |
| --- | --- |
| reimbursementFee<br>required | number <double> <br>This field contains the Argentina member supplied reimbursement fee. |
| reimbursementFeeTax | number <double> <br>**Conditional.**<br>This field contains the VAT calculated for the IRF applicable to the transaction. | |
| cardExpiryDate | string<br>Recommended Format: YYYY-MM <br>The expiration date for the sender's Visa account number in primaryAccountNumber. |
| cardProductCode | string \[ 1 .. 2 \] characters <br>Used to identify the specific card product for the issuer. |
| cpsAuthorizationCharacteristicsIndicator | string 1 characters <br>**Conditional**<br>Request for CPS authorization. If present, a valid value is required. Spaces or special characters are not allowed. Possible values are : Y (Transaction requests participation).<br>**Note:** Supported only in US for CPS (Custom Payment Service). This field is required for the transaction to qualify for CPS qualified Interchange rates and to avoid Transaction Integrity Fee. Please reach out to your Visa representative for details. |
| customerReference | string<br>**Conditional.**<br>This field contains a value that identifies the customer.<br>This field needs to be populated for Argentina domestic (OCT Debit Adjustment ) transactions where businessApplicationId is "PS". |
| digitalWalletProviderId | string \[ 1 .. 11 \] characters <br>Used to identify the digital wallet provider. V.I.P. does not edit the field; it also does not send it to the issuer processor nor does it return this field in the response. |
| dynamicCurrencyConversionIndicator | string 1 characters <br>Used to indicate if the merchant or the ATM acquirer has performed Dynamic Currency Conversion (DCC). |
| enablerVerificationValue | string 5 characters <br>Enabler Verification Value (EVV) is a Visa assigned value that is used to identify enablers that participate in certain programs. The EVV is unique to the enabler. |
| feeProgramIndicator | string 4 characters <br>Fee program indicator |
| merchantCategoryCode | number<br>Contains a code describing the merchant's type of business product or service, also known as the merchant category code (MCC). These codes are based on the Merchant Classification Code Guideline available from the Bank Card Division of the ABA. Clients should send the same merchantCategoryCode that was submitted in the PullFundsTransactions |
| merchantPseudoAbaNumber | string 9 characters <br>Merchant pseudo ABA number |
| merchantReference | string <= 35 characters <br>**Conditional.**<br>This field contains the merchant account key value for Argentina domestic purchase (POS) transactions.<br>This field needs to be populated for Argentina domestic (AFT Credit Adjustment ) transactions where businessApplicationId is "PS". |
| merchantVerificationValue | object<br>Merchant verification value |
| messageReasonCode | number<br>Message Reason Code: 2140 for AFT and 2150 for OCT. To identify advice type for issuers.<br>Message Reason Code: 5120 for OCT Debit Adjustments to reverse Sales Tax Rebates (Value-added tax) along with businessApplicationId field set to the value 'FD'. |
| mexicoNationalServiceData | object<br>Settlement Service Data object for Mexico required if transaction indicates Mexico national settlement. |
| |     |
| --- | --- |
| reimbursementFee<br>required | number <double> <br>This field contains the Client-Calculated Interchange Reimbursement Fee in the same currency as the transaction. It must not contain zeros. |
| reimbursementFeeTax<br>required | number <double> <br>This field contains the VAT calculated for the IRF applicable to the transaction. It must not contain zeros. |
| accountType | string 2 characters <br>This field contains one of the following values: <br>CO - Commercial products<br>CR - Credit<br>DB - Debit<br>PL - Private label<br>PP - Prepaid |
| irfCategoryCode | string \[ 1 .. 2 \] characters <br>This field optionally contains any value from 00 to 99. |
| irfType | string 1 characters <br>This field contains one of the following values: <br>0 - Unknown/default<br>1 - Fixed<br>2 - Ad valorem (%)<br>3 - Composite (fixed amount and ad valorem) |
| merchantFiscalId | string <= 13 characters <br>This field contains RFC for the merchant. This is an alphanumeric field. The RFC format can be AAAANNNNNNAAA, where A is alphanumeric value and N is a numeric value. | |
| nationalReimbursementFee | number <double>  \[ 0 .. 999999999.999 \] <br>National reimbursement fee |
| networkId | number<br>Network identifier |
| optionalResponseParameters | string \[ 0 .. 400 \] characters <br>Optional response parameters |
| originalDataElements | object<br>Original data elements |
| pointOfServiceCapability | object<br>Point of service capability data |
| pointOfServiceData | object |
| |     |
| --- | --- |
| panEntryMode<br>required | number<br>A 2-digit code that identifies the method used to enter the cardholder account number and card expiration date. This code specifies whether the entire magnetic stripe is included in an authorization or financial request. Note: Single digit value should pass directly without adding a 0 in front. Otherwise please use string data type. |
| posConditionCode<br>required | number<br>Contains a code identifying transaction conditions at the point-of-sale or point of service. For adjustment transaction, this field should set to 00 or 0. |
| specialConditionIndicatorMerchant | string 1 characters <br>1 - Purchase of Central Bank Digital Currency (CBDC) or Tokenized Deposits<br>2 - Purchase of Stablecoin (fiat-backed)<br>3 - Purchase of Blockchain Native Token/Coin<br>4 - Purchase of Non-Fungible Token (NFT)<br>7 - Purchase of Cryptocurrency | |
| primaryAccountNumber | string \[ 13 .. 19 \] characters <br>**Conditional**<br>This field contains a number identifying the customer account which could be a PAN or a token. |
| recipientIdentificationNumberBusiness | string<br>**Conditional.**<br>For Argentina domestic purchase transactions this field contains the merchant’s value-added tax (VAT) registration number or single business reference number (SBRN).<br>This field needs to be populated for Argentina domestic (AFT Credit Adjustment ) transactions where businessApplicationId is "PS". |
| recipientName | string \[ 1 .. 30 \] characters <br>Recipient name |
| rewardProgramIdentificationCode | string 6 characters <br>Used to identify the reward program. |
| schemeIdentifier | string 2 characters <br>Scheme identifier |
| senderCardExpiryDate | string<br>Recommended Format: YYYY-MM <br>The expiration date for the sender's Visa account number in senderPrimaryAccountNumber.<br>This field will be deprecated. Please use the replacement field cardExpiryDate instead. |
| senderIdentificationNumberIndividual | string<br>**Conditional.**<br>This field contains the identification number issued to the individual by the government or an authorized national entity. For Argentina domestic purchase transactions this field contains the customer’s VAT registration number for tax identification.<br>This field needs to be populated for Argentina domestic (OCT Debit Adjustment ) transactions where businessApplicationId is "PS". |
| senderPaymentCredentialReference | object<br>Object to carry a payment instrument that is an alternative to PAN or network token e.g. PCI Token Reference ID<br>**Conditional**<br>Only one of 'senderPrimaryAccountNumber' and 'senderPaymentCredentialReference' is provided in a request |
| |     |
| --- | --- |
| type<br>required | string<br>Enum:"PCI_TOKEN_REFID""PAYMENT_CREDENTIAL_ID" |
| value<br>required | string \[ 1 .. 75 \] characters <br>The value of the payment instrument. For 'PCI_TOKEN_REFID', length is 1-75 and must accompany with 'merchantId'. For 'PAYMENT_CREDENTIAL_ID' length is 1-36 characters. |
| merchantId | string \[ 1 .. 50 \] characters <br>**Conditional**<br>Unique Merchant Identification assigned by Token Service Provider. | |
| senderPostalCode | string \[ 0 .. 16 \] characters <br>Sender postal code |
| senderPrimaryAccountNumber | string \[ 13 .. 19 \] characters <br>This field contains a number identifying the customer account which could be a PAN or a token.<br>This field will be deprecated. Please use the replacement field primaryAccountNumber instead. |
| senderReference | string <= 16 characters <br>If the transaction is a money transfer, pre-paid load, or credit card bill pay, and if the sender intends to fund the transaction with a non-financial instrument (for example, cash), a reference number unique to the sender is required.<br>If the transaction is a funds disbursement, the field is required.<br>This field is required if senderAccountNumber is not sent. |
| serviceProcessingType | object<br>This field will contain values that identify the type of service the transaction should be processed. |
| |     |
| --- | --- |
| requestType | string <= 2 characters <br>Reserved for future use. | |
| settlementServiceIndicator | number<br>This flag enables the originator to request for a particular settlement service to be used for settling the transaction. <br>Valid values are: <br>0 - International Settlement<br>9 - VIP to decide<br>8 - National Settlement<br>**Note:** The default value is 9. This field is only relevant for specific countries where the acquirer has to select 8 in order to settle in the national net settlement service. |
| surcharge | string <double> <br>When present, this field contains the sender's surcharge as assessed by the originator. Values in this field must be in the same currency and format as defined in the amount field. |
| tokenAssuranceMethod | string 2 characters <br>This field contains different category value to determine the Risk Score associated with the token and transaction. |
| tokenData | object<br>Token data for payment |
| transactionCurrencyCode | string 3 characters <br>**Conditional**<br>Use a 3-character alpha or numeric currency code for currency of the original transaction.<br>Refer to [ISO Codes](https://developer.visa.com/request_response_codes#iso_country_and_currency_codes) |
| transactionLinkIdentifier | string \[ 1 .. 36 \] characters <br>Transaction Link Identifier returned from other networks like MasterCard and Pulse |
| transactionTypeCode | number<br>A 2-digit code identifying the transaction type. It must be 02 (Adjustment—Debit) or 22 (Adjustment—Credit).<br>**Note:** For JSON format request, 02 is not legal for integer data type, please use 2 instead or pass "02" as a string. (AFT Debit adjustment is not available.) |
| visaMerchantIdentifier | string<br>Visa Merchant Identifier assigned by Visa. |

Responses

200
Adjustment Funds Transfer Response

##### Response Schema:     application/json                   application/json  application/xml

|     |     |
| --- | --- |
| actionCode<br>required | string 2 characters <br>The results of the transaction request <br>Refer to [actionCode](https://developer.visa.com/request_response_codes#action_code) |
| dateAndTimeTransmission<br>required | string <date-time> <br>This field contains the year, month, day, and time the transaction was processed by Visa Direct. Example: 2020-05-21T08:03:00.000Z |
| transactionIdentifier<br>required | number<br>Visa transaction identifier . |
| additionalTokenRespInfo | string 1 characters <br>This field when present in the API response identifies if the transaction is eligible for token services. Valid token service values are: 1 (Token program). <br>This field will not be sent in the response if the transaction is ineligible for token services. |
| cpsAuthorizationCharacteristicsIndicator | string 1 characters <br>**Conditional**<br>Indicates whether AFT transaction has qualified for CPS. Possible values are : F (Meets CPS/Account Funding requirements) , N (Not Qualified), T (Not Qualified)<br>**Note:** Supported only in US for CPS (Custom Payment Service). Please reach out to your Visa representative for details. |
| customerReference | string<br>This field contains a value that identifies the customer.<br>This field will be populated in the response for Argentina domestic AFT Credit Adjustment, transactions when businessApplicationId is "PS". |
| enablerVerificationValue | string 5 characters <br>Enabler Verification Value (EVV) is a Visa assigned value that is used to identify enablers that participate in certain programs. The EVV is unique to the enabler. |
| masterCardMerchantPaymentGatewayId | string \[ 1 .. 11 \] characters <br>This field contains merchant payment gateway ID assigned by Mastercard, provided by the acquirer when a registered merchant payment gateway service provider participates in the transaction. Value is right-justified and zero-filled. |
| merchantReference | string <= 35 characters <br>This field contains the merchant account key value for Argentina domestic purchase (POS) transactions.<br>This field will be populated in the response for Argentina domestic, OCT Debit Adjustment, transactions where businessApplicationId is "PS". |
| originalActionCode | string 2 characters <br>The action code of the original transaction request <br>Refer to [actionCode](https://developer.visa.com/request_response_codes#action_code)<br>Note: This field is only present, when the request is identified as a duplicate. |
| recipientIdentificationNumberBusiness | string<br>For Argentina domestic purchase transactions this field contains the merchant’s value-added tax (VAT) registration number or single business reference number (SBRN).<br>This field will be populated in the response for Argentina domestic OCT Debit Adjustment, transactions where businessApplicationId is "PS". |
| senderIdentificationNumberIndividual | string<br>This field contains the identification number issued to the individual by the government or an authorized national entity. For Argentina domestic purchase transactions this field contains the customer’s VAT registration number for tax identification.<br>This field will be populated in the response for Argentina domestic AFT Credit Adjustment, transactions when businessApplicationId is "PS". |
| serviceProcessingType | object<br>This field will contain values that identifies the type of service assigned for the transaction. |
| |     |
| --- | --- |
| requestType | string <= 2 characters <br>Reserved for future use. | |
| settlementFlags | object |
| |     |
| --- | --- |
| settlementResponsibilityFlag<br>required | string<br>Possible values are true or false |
| givPreviouslyUpdatedFlag | string<br>Possible values are true or false |
| givUpdatedFlag | string<br>Possible values are true or false |
| settlementServiceFlag | string <= 1 characters <br>Possible values are: <br>0 - International Settlement<br>9 - VIP to decide<br>8 - National Settlement | |
| tokenAssuranceMethod | string 2 characters <br>This field contains different category value to determine the Risk Score associated with the token and transaction. |
| transactionLinkIdentifier | string \[ 1 .. 36 \] characters <br>Transaction Link Identifier returned from other networks like MasterCard and Pulse

_© Copyright Visa. All Rights Reserved._
