Dual Message Account Funding Transactions (AFTs)

Account Funding Transactions allow a payment service provider to debit funds from a cardholder's Mastercard or Visa account to fund a non-merchant account. This is typically used to load funds onto prepaid cards and electronic wallets.
Dual Message Account Funding Transactions (AFTs) provide the following benefits:
  • Enables customers to identify Mastercard and Visa transactions during the authorization and settlement.
  • Allows acquiring partners to use Dual Message BINs when performing a payout transaction.

Endpoint

Set the
ccAuthService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for a Dual-Message AFT Request for
FDC Nashville Global

These fields are required to process a dual-message AFT request:
These are the values when using a Mastercard card type:
  • AA
    : Account-to-account.
  • BB
    : Business to business.
  • CO
    : Cash out.
  • CP
    : Card bill payment.
  • MD
    : Merchant disbursement (acquirers or aggregators settling to merchants).
  • PP
    : Person to person.
  • WT
    : When AFT is used to fund a staged digital wallet.
These are the values when a Visa card type:
  • AA
    : Account to account.
  • BI
    : Business to business.
  • CB
    : Consumer bill payment.
  • FT
    : Funds transfer.
  • PP
    : Person to person.
  • TU
    : Top Up: Prepaid load.
  • WT
    : Wallet transfer.
Required with Mastercard.
Required for Mastercard. These codes are permitted:
  • 00
    : Other
  • 01
    : Routing transit number (RTM) and bank account
  • 02
    : IBAN
  • 03
    : Card account
  • 04
    : Email
  • 05
    : Phone number
  • 06
    : Bank account number (BAN) and Bank identification number code (BIC)
  • 07
    : Wallet ID
  • 08
    : Social network ID
Required with Mastercard for domestic funding transactions when the transaction is a subsequent and cross-border funds transfer.
Required with Mastercard. Required with Visa for intra-European Economic Area (EEA), including UK and Gibraltar, and EU international transactions. Optional with Visa for domestic EU AFTs.
Required with Mastercard. Required with Visa for intra-European Economic Area (EEA), including UK and Gibraltar, and EU international transactions. Optional with Visa for domestic EU AFTs.
Required with Visa for intra-European Economic Area (EEA), including UK and Gibraltar, and EU international transactions. Optional with Visa for domestic EU AFTs and Mastercard.
Required with Visa in the EU.
Required with Visa transactions into and out of Canada with the address of the person or entity. Optional with Mastercard.
Required with Visa transactions into and out of Canada for cross-border money and non-money transfers. Optional with Mastercard.
Required with Visa transactions into and out of Canada. Optional with Mastercard.
Required with Visa. Optional with Mastercard.
Required with Visa EMV transactions.
Required with Visa. Optional with Mastercard.
Required with Visa. Optional with Mastercard.
This field contains the sender business, government, non-government name, or Visa payer name.
When this field is present in a transaction, the
senderInformation.firstName
,
senderInformation.middleName
, and
senderInformation.lastName
fields should not be present in the transaction.
Strongly recommended with Visa.
These are the valid values:
  • ARNB
    : Alien registration number
  • BTHD
    : Date of birth
  • CPNY
    : Company registration number
  • CUID
    : Customer identification (unspecified)
  • DRLN
    : Driver license
  • EMAL
    : Email
  • LAWE
    : Law enforcement identification
  • MILI
    : Military identification
  • NTID
    : National identification
  • PASN
    : Passport number
  • PHON
    : Phone number
  • PRXY
    : Proxy identification
  • SSNB
    : Social security number
  • TRVL
    : Travel identification (non-passport)
  • TXIN
    : Tax identification
Required with Visa for transactions in Canada and US. Optional with Mastercard.

Optional Fields for a Dual-Message AFT

You can include these optional fields in an authorization request for an AFT:
These are the valid values:
  • 01
    : Credit (Visa or Mastercard credit card)
  • 02
    : Debit (Visa or Mastercard debit card)
  • 03
    : Prepaid (Visa or Mastercard prepaid card)
  • 04
    : Deposit account (checking, savings, or cryptocurrency)
  • 06
    : Cash
These are the valid values:
  • 00
    : Other
  • 01
    : Routing Transit Number (RTN) + Bank Account Number (BAN)
  • 02
    : International Bank Account Number (IBAN)
  • 03
    : Card Account
  • 04
    : Email
  • 05
    : Phone Number
  • 06
    : Bank Account Number (BAN) + Bank Identification Code (BIC), also known as a SWIFT code
  • 07
    : Wallet ID
  • 08
    : Social Media ID
This field is optional, but strongly recommended.
These are the valid values:
  • 0B
    : Business
  • 0I
    : Individual

Simple Order Example: Dual-Message AFT for
FDC Nashville Global

Light Dark
Request
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.221"> <merchantID>en_vdcuruguay_1_ccs</merchantID> <merchantReferenceCode>TC55255-1</merchantReferenceCode> <invoiceHeader> <businessApplicationID>AA</businessApplicationID> </invoiceHeader> <billTo> <firstName>JHON</firstName> <lastName>SMITH</lastName> <street1>1-26-28 Nakashirane,</street1> <city>Yokohama-shi</city> <state>CA</state> <postalCode>602-8511</postalCode> <country>US</country> <phoneNumber>999-123-9999</phoneNumber> <email>test@visa.com</email> </billTo> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>100</grandTotalAmount> <invoiceAmount>1234</invoiceAmount> </purchaseTotals> <card> <accountNumber>4111111111111111</accountNumber> <expirationMonth>12</expirationMonth> <expirationYear>2030</expirationYear> <cvNumber>123</cvNumber> <cardType>001</cardType> </card> <recipient> <postalCode>222120</postalCode> <accountID>987654321</accountID> <accountType>33</accountType> <lastName>last</lastName> <firstName>firstname</firstName> <middleName>middlename</middleName> <address>this is address1</address> <city>Newyork</city> <country>US</country> </recipient> <sender> <referenceNumber>REFNUM123</referenceNumber> <sourceOfFunds>02</sourceOfFunds> <name>justsenderName</name> <address>addressofthesender</address> <city>Newyork</city> <state>ca</state> <country>US</country> <accountNumber>154264765376576126571652675176</accountNumber> <firstName>Senderfirst</firstName> <middleName>SenderMiddle</middleName> <lastName>Senderlast</lastName> <personalIDType>TXIN</personalIDType> <type>B</type> <identificationNumber>23506907642323235</identificationNumber> </sender> <aft> <indicator>true</indicator> </aft> </>
Response
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
<c:replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.221"> <c:merchantReferenceCode>TC55255-1</c:merchantReferenceCode> <c:requestID>7193792686247001309916</c:requestID> <c:decision>ACCEPT</c:decision> <c:reasonCode>100</c:reasonCode> <c:requestToken>Axj/7wSThfntrctjncLcAHgs3YuWbdyybOGzJo3YMGLNg5csWybWNLQsAAU2saWhYBpA6cQQUYZNv/sXFU8Q64E5OF+e2ty2OdwtwAAA5xPu</c:requestToken> <c:purchaseTotals> <c:currency>USD</c:currency> </c:purchaseTotals> <c:ccAuthReply> <c:reasonCode>100</c:reasonCode> <c:amount>100.00</c:amount> <c:authorizationCode>831000</c:authorizationCode> <c:avsCode>Y</c:avsCode> <c:avsCodeRaw>Y</c:avsCodeRaw> <c:cvCode>M</c:cvCode> <c:cvCodeRaw>M</c:cvCodeRaw> <c:authorizedDateTime>2024-06-26T05:21:10Z</c:authorizedDateTime> <c:processorResponse>00</c:processorResponse> <c:reconciliationID>7193792686247001309916</c:reconciliationID> <c:merchantAdviceCode>01</c:merchantAdviceCode> <c:merchantAdviceCodeRaw>M001</c:merchantAdviceCodeRaw> <c:cavvResponseCode>2</c:cavvResponseCode> <c:cavvResponseCodeRaw>2</c:cavvResponseCodeRaw> <c:paymentNetworkTransactionID>016153570198200</c:paymentNetworkTransactionID> <c:reconciliationReferenceNumber>417805815972</c:reconciliationReferenceNumber> </c:ccAuthReply> <c:receiptNumber>815972</c:receiptNumber> <c:additionalData>ABC</c:additionalData> <c:card> <c:cardType>001</c:cardType> </c:card> <c:reserved> <ics_message xmlns="urn:schemas-cybersource-com:transaction-data:ics"> <ics_decision_reason_code>100</ics_decision_reason_code> <auth_payment_network_transaction_id>016153570198200</auth_payment_network_transaction_id> <auth_rcode>1</auth_rcode> <receipt_number>815972</receipt_number> <ics_return_code>1000000</ics_return_code> <auth_merchant_advice_code>01</auth_merchant_advice_code> <ics_rcode>1</ics_rcode> <auth_cavv_response_code>2</auth_cavv_response_code> <auth_auth_response>00</auth_auth_response> <auth_rmsg>Request was processed successfully.</auth_rmsg> <merchant_ref_number>TC55255-1</merchant_ref_number> <auth_merchant_advice_code_raw>M001</auth_merchant_advice_code_raw> <currency>USD</currency> <auth_auth_code>831000</auth_auth_code> <auth_auth_amount>100.00</auth_auth_amount> <auth_cv_result_raw>M</auth_cv_result_raw> <auth_fee_program_indicator>123</auth_fee_program_indicator> <card_type>001</card_type> <auth_additional_token_response_information>0</auth_additional_token_response_information> <ics_rmsg>Request was processed successfully.</ics_rmsg> <auth_trans_ref_no>7193792686247001309916</auth_trans_ref_no> <request_id>7193792686247001309916</request_id> <auth.reason_code>100</auth.reason_code> <auth_cavv_response_code_raw>2</auth_cavv_response_code_raw> <auth_auth_time>2024-06-26T052110Z</auth_auth_time> <auth_rflag>SOK</auth_rflag> <auth_cv_result>M</auth_cv_result> <auth_return_code>1010000</auth_return_code> <auth_avs_raw>Y</auth_avs_raw> <ics_rflag>SOK</ics_rflag> <auth_reconciliation_reference_number>417805815972</auth_reconciliation_reference_number> <auth_auth_avs>Y</auth_auth_avs> <request_token>Axj/7wSThfntrctjncLcAHgs3YuWbdyybOGzJo3YMGLNg5csWybWNLQsAAU2saWhYBpA6cQQUYZNv/sXFU8Q64E5OF+e2ty2OdwtwAAA5xPu</request_token> <additional_data>ABC</additional_data> </ics_message> </c:reserved> <c:additionalToken> <c:responseInformation>0</c:responseInformation> </c:additionalToken> </c:replyMessage>