Account Funding Transactions Developer Guide {#payouts-aft-about-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:  
[https://docs.cybersource.com/en/index.html](https://docs.cybersource.com/en/index.md "")

Customer Support
----------------

For support information about any service, visit the Support Center:  
<http://support.visaacceptance.com>

Recent Revisions to This Document {#aft-dev-doc-revs}
=====================================================

24.01
-----

Initial release.

AFT Transactions {#payouts-services-intro}
==========================================

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-services-auth-aft-intro}
======================================================================

`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 {#payouts-services-auth-aft-intro_d7e16}
-------------------------------------------------

**Production:** `POST ``https://api.cybersource.com``/pts/v2/payments`{#payouts-services-auth-aft-intro_d7e25}  
**Test:** `POST ``https://apitest.cybersource.com``/pts/v2/payments`{#payouts-services-auth-aft-intro_d7e35}

Required Fields for Performing an AFT {#payouts-services-auth-aft-reqfields}
============================================================================

These fields are required in a request for an authorization for an AFT:

[clientReferenceInformation.code](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/client-ref-info-aa/client-ref-info-code.md "")
:

[orderInformation.amountDetails.currency](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-amount-details-currency.md "")
:

[orderInformation.amountDetails.totalAmount](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-amount-details-total-amount.md "")
:

[orderInformation.billTo.address1](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-address1.md "")

[orderInformation.billTo.country](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-country.md "")

[orderInformation.billTo.firstName](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-first-name.md "")

[orderInformation.billTo.lastName](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-last-name.md "")

[orderInformation.billTo.postalCode](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-postal-code.md "")

[paymentInformation.card.expirationMonth](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/payment-info-aa/payment-info-card-exp-mo.md "")

[paymentInformation.card.expirationYear](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/payment-info-aa/payment-info-card-exp-year.md "")

[paymentInformation.card.number](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/payment-info-aa/payment-info-card-number.md "")
:

[paymentInformation.card.securityCode](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/payment-info-aa/payment-info-card-security-code-a.md "")
:

[paymentInformation.card.type](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/payment-info-aa/payment-info-card-type-a.md "")
:

[processingInformation.authorizationOptions.aftIndicator](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/processing-info-aa/processing-info-auth-ops-aft-ind.md "")
:

[processingInformation.businessApplicationId](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/processing-info-aa/processing-info-business-appl-id.md "")
:
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.

[recipientInformation.accountId](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/recipient-info-aa/recipient-info-account-id.md "")
:

[recipientInformation.accountType](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/recipient-info-aa/recipient-info-account-type.md "")
:
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)

[recipientInformation.address1](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/recipient-info-aa/recipient-info-address1.md "")
:
Required only with Mastercard.

[recipientInformation.country](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/recipient-info-aa/recipient-info-country.md "")
:
Required only with Mastercard.

[recipientInformation.firstName](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/recipient-info-aa/recipient-info-first-name.md "")
:

[senderInformation.address1](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/sender-info-aa/sender-info-address1.md "")
:
Required with Visa and optional with Mastercard.

[senderInformation.administrativeArea](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/sender-info-aa/sender-info-administrative-area.md "")
:
Required with Visa when transactions are in the US or Canada. Field is optional for countries outside of the US and Canada.

[senderInformation.countryCode](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/sender-info-aa/sender-info-country-code.md "")
:
Field is only required with Visa transactions.

[senderInformation.firstName](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/sender-info-aa/sender-info-first-name.md "")
:
Required with Visa and optional with Mastercard.

[senderInformation.lastName](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/sender-info-aa/sender-info-last-name.md "")
:
Required with Visa and optional with Mastercard.

Related Information {#payouts-services-auth-aft-reqfields_section_dfg_fh2_rdc}
------------------------------------------------------------------------------

* [REST API Field Reference Guide](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/rest-api-fields-intro.md "")
  {#payouts-services-auth-aft-reqfields_ul_efg_fh2_rdc}

Optional Fields for Performing an AFT {#payouts-services-auth-aft-optfields}
============================================================================

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

[orderInformation.billTo.locality](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-locality.md "")
:

[processingInformation.commerceIndicator](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/processing-info-aa/processing-info-commerce-ind.md "")
:
Set this field to `internet`, `MOTO`, or a 3D-Secure value.

[recipientInformation.lastName](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/recipient-info-aa/recipient-info-last-name.md "")

[recipientInformation.middleName](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/recipient-info-aa/recipient-info-middle-name.md "")
:

[senderInformation.locality](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/sender-info-aa/sender-info-locality.md "")
:

[senderInformation.middleName](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/sender-info-aa/sender-info-middle-name.md "")
:

REST Example: Performing an AFT with Visa {#payouts-services-auth-aft-ex-rest-barclays}
=======================================================================================

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 {#payouts-services-auth-aft-ex-rest-barclays-mc}
================================================================================================

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 {#payouts-appendix-bai}
==========================================================================

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.

| 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. |
[Business Application Identifier Values]

Appendix B: Recipient Account {#payouts-appendix-receiver-account}
==================================================================

The Sender Source identifies the source of funds. Provide one of the values when you send field `recipientInformation.accountType`.

| Value | Definition                                                   |
|:------|:-------------------------------------------------------------|
| `00`  | Other                                                        |
| `01`  | RNT and Bank Account                                         |
| `02`  | IBAN                                                         |
| `03`  | Card Account                                                 |
| `06`  | Bank account number (BAN) and Bank Identification Code (BIC) |
[Recipient Account Values]

