Skip to main content

Account Funding Transaction

Account Funding Transaction (AFT) is a special type of card transaction defined by the VISA and Mastercard card schemes to distinguish a standard purchase of goods or services from transactions involving the withdrawal of funds from one account (e.g. a card) in order to fund another eligible account, wallet, card, or to facilitate a subsequent transfer of funds. It is required for operations such as:

  • transfers between the user's own accounts, also known as account-to-account or me-to-me,
  • top-up of an electronic or virtual wallet,
  • top-up of prepaid cards or accounts,
  • funding of an account used to acquire liquid and financial assets, such as currencies, stocks, other securities, or cryptocurrencies.

AFT Integration

Before activating payments in AFT mode, PayU is required to perform the necessary configurations and obtain approvals from Visa and Mastercard. Please make sure to contact your PayU representative to start this process as soon as possible.

Once this process is complete, PayU prepares the appropriate store or POS configuration to support the required use cases. The classification of a transaction as AFT is determined by the configuration on the PayU side, not by a separate parameter passed in the standard create order request.

Notes

To learn more about the AFT activation process, please contact your account manager or PayU support.


To use AFT, you also have to extend the integration with PayU with additional fields, presented in the section API Extension for AFT.

API Extension for AFT

From the API perspective, to create a valid order in AFT mode, the following fields must be provided in the buyer section:

  • firstName - required by VISA and Mastercard
  • lastName - required by VISA and Mastercard
  • birthDate - required by VISA

These fields are not marked as required in the general Create an Order API specification. However, once AFT mode is enabled for a store or POS, missing this data may result in the card transaction being declined. Therefore, before activating AFT, make sure your integration passes the required buyer data.

Field values must be valid and non-empty. The detailed technical specification can be found in the Create an Order section of our API documentation.

curl -v -X POST https://secure.payu.com/api/v2_1/orders \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd" \
-d '{
"notifyUrl": "https://your.eshop.com/notify",
"customerIp": "127.0.0.1",
"merchantPosId": "145227",
"description": "Account topup",
"currencyCode": "PLN",
"totalAmount":"15000",
"extOrderId": "x25doraf1g5jite4uhrvlj",
"buyer": {
"email": "email@email.com",
"firstName": "John",
"lastName": "Doe",
"birthDate": "2006-12-03T00:00:00.000+01:00"
},
"products": [
{
"name": "Invoice payment",
"unitPrice": "15000",
"quantity":"1"
}
],
"payMethods": {
"payMethod": {
"card": {
"number": "4444333322221111",
"expirationMonth": "12",
"expirationYear": "29",
"cvv": "123"
}
}
}
}'