Account Funding Transactions Developer Guide

This section provides you with information about the
REST API
guide
for
Barclays
.

Audience and Purpose

This document is written for developers who want to use the
Cybersource
REST API
to integrate
Cybersource
Account Funding Transaction services into their transaction management system.

Conventions

This special statement is used in this document:
IMPORTANT
An
Important
statement contains information essential to successfully completing a task or learning a concept.

Related Documentation

For further technical documentation, visit the
Cybersource
Technical Documentation Portal:

Customer Support

For support information about any service, visit the Support Center:

Recent Revisions to This Document

24.01

Initial release.

AFT Transactions

The Account Funding Transaction (AFT) allows the transfer of funds between a payment card and another account, including payment cards. When used independently, an AFT can only be used to transfer funds between accounts owned by the same individual or business entity. An AFT is not intended for the payment of goods and services, funding a merchant account, or for debt repayment.

Account Funding Transactions (AFTs)

Payouts
uses the authorization service to support AFTs. An AFT withdraws funds from a sender’s account.
IMPORTANT
You must receive prior approval from
Barclays
before using the AFT services. Contact
Barclays
to register with the AFT program.

Endpoint

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Required Fields for Performing an AFT

These fields are required in a request for an authorization for an AFT:
These are the values when using a Visa card type:
  • AA
    : Account-to-account, sender and recipient are the same person
  • FD
    : Funds disbursement, e.g. insurance payout
  • FT
    : Funds transfer where OCT not available
  • PD
    : Payroll disbursement
  • TU
    : Top up - prepaid load
  • WT
    : When AFT is used to fund a staged digital wallet
These are the values when using a Mastercard card type. The
recipientInformation.accountType
field must align with Business Application Identifier value.
  • AA
    : Account-to-account, sender and recipient are the same person.
    recipientInformation.accountType
    must be either 01, 02, 03 or 06
  • FT
    : Funds transfer where OCT not available. The
    recipientInformation.accountType
    must be either 00, 01, 02, 03 or 06.
  • PD
    : Payroll disbursement. The
    recipientInformation.accountType
    field must be 03.
  • TU
    : Top up - prepaid load. The
    recipientInformation.accountType
    field must be either 01, 02, 03 or 06.
  • WT
    : When AFT is used to fund a staged digital wallet. The
    recipientInformation.accountType
    must be either 00, 01, 02, 03, 06 or absent.
For Mastercard, only these codes are permitted:
  • 00: Other
  • 01: Routing transit number (RTM) and bank account
  • 02: IBAN
  • 03: Card account
  • 06: Bank account number (BAN) and Bank identification number code (BIC)
Required only with Mastercard.
Required only with Mastercard.
Required with Visa and optional with Mastercard.
Required with Visa when transactions are in the US or Canada. Field is optional for countries outside of the US and Canada.
Field is only required with Visa transactions.
Required with Visa and optional with Mastercard.
Required with Visa and optional with Mastercard.

Related Information

Optional Fields for Performing an AFT

You can include these optional fields in an authorization request for an AFT:

REST Example: Performing an AFT with Visa

Request: Authorization Service for an AFT with Visa
This example is a consumer funding an account-to-account, when the sender and recipient are the same person.
{ "clientReferenceInformation": { "code": "RTS-AFT3-8" }, "processingInformation": { "capture": true, "businessApplicationId": "AA", "commerceIndicator": "vbv", "authorizationOptions": { "ignoreAvsResult": true, "ignoreCvResult": false, "aftIndicator": true } }, "paymentInformation": { "card": { "number": "4539791001730106", "expirationMonth": "03", "expirationYear": "2025", "type": "001", "securityCode": "351" } }, "orderInformation": { "amountDetails": { "totalAmount": "28.00", "currency": "GBP" }, "billTo": { "firstName": "Joe", "lastName": "Root", "middleName": "S", "address1": "34 Orchard Grove", "locality": "Southampton", "postalCode": "DE6 1BE", "country": "GB", "email": "test@cybs.com" } }, "senderInformation": { "firstName": "Joe", "lastName": "Root", "middleName": "S", "address1": "34 Orchard Grove", "locality": "Southampton", "countryCode": "GB" }, "recipientInformation": { "accountId": "4929421234600821", "firstName": "Ben", "lastName": "Stokes", "middleName": "A" }, "consumerAuthenticationInformation": { "cavv": "EHuWW9PiBkWvqE5juRwDzAUFBAk=", "paresStatus": "Y" } }
Response: Authorization Service for an AFT with Visa
{ "_links": { "void": { "method": "POST", "href": "/pts/v2/payments/7285727331066440604951/voids" }, "self": { "method": "GET", "href": "/pts/v2/payments/7285727331066440604951" } }, "clientReferenceInformation": { "code": "RTS-AFT3-8" }, "id": "7285727331066440604951", "orderInformation": { "amountDetails": { "totalAmount": "28.00", "authorizedAmount": "28.00", "currency": "GBP" } }, "paymentAccountInformation": { "card": { "type": "001" } }, "paymentInformation": { "tokenizedCard": { "type": "001" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "90011645" }, "processorInformation": { "merchantNumber": "6637599", "approvalCode": "475034", "cardVerification": { "resultCodeRaw": "1", "resultCode": "P" }, "merchantAdvice": { "code": "00", "codeRaw": "0" }, "networkTransactionId": "000000000474740", "transactionId": "000000000474740", "responseCode": "0", "avs": { "code": "I", "codeRaw": "11" } }, "reconciliationId": "7024464528", "status": "AUTHORIZED", "submitTimeUtc": "2024-10-10T15:05:35Z" }

REST Example: Performing an AFT with Mastercard

Request: Authorization Service for an AFT with Mastercard
This example is a consumer funding an account-to-account, when the sender and recipient are the same person.
{ "clientReferenceInformation": { "code": "RTS-AFT3-8" }, "processingInformation": { "capture": true, "businessApplicationId": "AA", "commerceIndicator": "spa", "authorizationOptions": { "ignoreAvsResult": true, "ignoreCvResult": false, "aftIndicator": true } }, "paymentInformation": { "card": { "number": "5454545454545454", "expirationMonth": "03", "expirationYear": "2025", "type": "002", "securityCode": "351" } }, "orderInformation": { "amountDetails": { "totalAmount": "28.00", "currency": "GBP" }, "billTo": { "firstName": "Joe", "lastName": "Root", "middleName": "S", "address1": "34 Orchard Grove", "locality": "Southampton", "postalCode": "DE6 1BE", "country": "GB", "email": "test@cybs.com" } }, "senderInformation": { "firstName": "Joe", "lastName": "Root", "middleName": "S", "address1": "34 Orchard Grove", "locality": "Southampton", "countryCode": "GB" }, "recipientInformation": { "accountId": "4929421234600821", "accountType": "03", "firstName": "Ben", "lastName": "Stokes", "middleName": "A", "address1": "1 High Street", "country": "GB" }, "consumerAuthenticationInformation": { "ucafAuthenticationData": "EHuWW9PiBkWvqE5juRwDzAUFBAk=", "ucafCollectionIndicator": "2" } }
Response: Authorization Service for an AFT with Mastercard
{ "_links": { "void": { "method": "POST", "href": "/pts/v2/payments/7285727331066440604951/voids" }, "self": { "method": "GET", "href": "/pts/v2/payments/7285727331066440604951" } }, "clientReferenceInformation": { "code": "RTS-AFT3-8" }, "id": "7285727331066440604951", "orderInformation": { "amountDetails": { "totalAmount": "28.00", "authorizedAmount": "28.00", "currency": "GBP" } }, "paymentAccountInformation": { "card": { "type": "001" } }, "paymentInformation": { "tokenizedCard": { "type": "001" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "90011645" }, "processorInformation": { "merchantNumber": "6637599", "approvalCode": "475034", "cardVerification": { "resultCodeRaw": "1", "resultCode": "P" }, "merchantAdvice": { "code": "00", "codeRaw": "0" }, "networkTransactionId": "000000000474740", "transactionId": "000000000474740", "responseCode": "0", "avs": { "code": "I", "codeRaw": "11" } }, "reconciliationId": "7024464528", "status": "AUTHORIZED", "submitTimeUtc": "2024-10-10T15:05:35Z" }

Appendix A: Business Application Identifier Values

The Business Application Identifier (BAI) is used to identify the category of the Account Funding Transaction (AFT). Provide one of the values when you send field
processingInformation.businessApplicationId
.
All acquirers, service providers, and merchants are required to submit a valid BAI value when submitting AFTs.
Business Application Identifier Values
BAI Value
Category
Requirements
AA
Account-to-Account Money Transfer. The funding of the cardholder's own account at the same or a different financial institution Both accounts must be owned by the same person/entity.
NOTE
If funding a prepaid account, don't use this value, use
TU
.
For Mastercard transactions, the
recipientInformation.accountType
field must align with BAI value and must be either 01, 02, 03 or 06.
FD
Funds Disbursement
Available only with Visa card transactions.
FT
Funds Transfer
If the funds will be used for a high-brand risk transaction, the applicable high-brand risk MCC must be used. If a wallet is used to purchase Liquid and Cryptocurrency assets, the applicable special condition indicator must be used.
For Mastercard transactions, the
recipientInformation.accountType
field must align with BAI value and must be either 00, 01, 02, 03 or 06.
PD
Payroll Disbursement
For Mastercard transactions, the
recipientInformation.accountType
field must align with BAI value and must be 06.
TU
Prepaid Card Load or Top-Up
For Mastercard transactions, the
recipientInformation.accountType
field must align with BAI value and must be either 01, 02, 03 or 06.
WT
Staged Digital Wallet (SDW) Transfer
If the funds will be used for a high-brand risk transaction, the applicable high-brand risk MCC must be used. If the funds are used for a gambling transaction, the applicable gambling MCC must be used. If a wallet is used to purchase Liquid and Cryptocurrency assets, the applicable special condition indicator must be used. An AFT is not intended for debt repayment.
For Mastercard transactions, the
recipientInformation.accountType
field must align with BAI value and must be either 00, 01, 02, 03, 06 or absent.

Appendix B: Recipient Account

The Sender Source identifies the source of funds. Provide one of the values when you send field
recipientInformation.accountType
.
Recipient Account Values
Value
Definition
00
Other
01
RNT and Bank Account
02
IBAN
03
Card Account
06
Bank account number (BAN) and Bank Identification Code (BIC)