# AFT Funding

## Overview  
AFT Funding Transactions initiate an instant debit from the user's debit card account to the Payer's merchant account. Funds are generally available within 30 minutes.

### API Workflow  
1. [Create Recipient](https://docs-v2.interchecks.com/reference/create-recipient) (referred to as "user")  
2. [Add Card Account](https://docs-v2.interchecks.com/reference/add-card-account)  
3. [Create Transaction](https://docs-v2.interchecks.com/reference/create-transaction) with `INSTANT_FUNDING`

### Widget Workflow  
1. [Create Recipient](https://docs-v2.interchecks.com/reference/create-recipient) (referred to as "user")  
2. [Add Card Account via Widget](https://docs-v2.interchecks.com/reference/create-card-widget)  
3. [Verify Card Account](https://docs-v2.interchecks.com/reference/verify-card-account)  
4. [Create Transaction](https://docs-v2.interchecks.com/reference/create-transaction) with `INSTANT_FUNDING`

# Card Account Verification  
Card account ownership will be verified using the card PAN, expiration date, security code, address, and name if applicable. Cards must pass verification to be eligible for AFT Funding transactions. Review the [Verify Card Account](https://docs-v2.interchecks.com/reference/verify-card-account) details for data requirements, definitions, and errors.

### API Workflow  
The [Add Card Account](https://docs-v2.interchecks.com/reference/add-card-account) API call requires the account address for verification at the time of receiving the request. The API response will contain the result of each item matched and a `verification_status` to indicate account eligibility.

### Widget Workflow  
The [Create Card Widget](https://docs-v2.interchecks.com/reference/create-card-widget) UI interface will accept the card number, expiration date, and security code. The verification process will first verify the data present. If a user's address has been added ( [Add Address](https://docs-v2.interchecks.com/reference/add-address)), it will be included in the verification process.

A successful match results in a card account being created, but not yet eligible for AFT Funding. The [Verify Card Account](https://docs-v2.interchecks.com/reference/verify-card-account) endpoint allows a secondary verification to be performed against a name and address. A `MATCH` value indicates the `avs` and `ani` data was verified. If any field is not a `MATCH`, the error code will be present in the response. Name verification (`ani`) is only supported for Visa cards.

Successful MATCH

```json
{
    "verification_id": "PAV-V5jn9KH5RDWWxdX4AkzMdA==",
    "network": "VISA",
    "pan": "MATCH",
    "cvv": "NOT_PROCESSED",
    "avs": {
        "street": "MATCH",
        "zip": "MATCH"
    },
    "ani": {
        "first_name": "MATCH",
        "last_name": "MATCH"
    },
    "created_date": "2024-03-01T15:18:57.464Z"
}
```

Unsuccessful MATCH

```json
{
    "http_status": 200,
    "error_code": "ERR_CARD_PAV_FAILURE",
    "error_message": "Card account validation failed",
    "verification_id": "PAV-V5jn9KH5RDWWxdX4AkzMdA==",
    "network": "VISA",
    "pan": "MATCH",
    "cvv": "NOT_PROCESSED",
    "avs": {
        "street": "MATCH",
        "zip": "NO_MATCH"
    },
    "ani": {
        "first_name": "MATCH",
        "last_name": "MATCH"
    },
    "created_date": "2024-03-01T15:18:57.464Z"
}
```

The [Get Card Account](https://docs-v2.interchecks.com/reference/get-card-account) response will now indicate the `verification_status` as `VERIFIED`. The `verification_result` will contain the first match result.

Get Card Account

```json
{
    "account_id": "RPA-f9Qe4Pm_THaw7uDTqck4IQ==",
    "description": "Visa Debit 0167",
    "created_date": "2021-11-09T14:47:42.843Z",
    "bank_name": "Banco Popular",
    "card_number": "451530XXXXXX0167",
    "card_type": "DEBIT",
    "exp_date": "2026-08",
    "verification_status": "VERIFIED",
    "verification_result": {
        "network": "VISA",
        "pan": "MATCH",
        "cvv": "MATCH",
        "avs": {
            "street": "NOT_PROCESSED",
            "zip": "NOT_PROCESSED"
        },
        "ani": {
            "first_name": "MATCH",
            "last_name": "MATCH"
        }
    }
}
```

### Address Updates  
Address updates should be processed through the [Verify Card Account](https://docs-v2.interchecks.com/reference/verify-card-account) endpoint. A non-matching result will disable the card for AFT Funding until a successful address match can be performed.

# Transaction  
[About Transactions](https://docs-v2.interchecks.com/reference/about-transactions) and [Create Transaction](https://docs-v2.interchecks.com/reference/create-transaction) contain details on request and response structures, transaction status, and HTTP response codes. Sample request and response specific to AFT Funding (`INSTANT_FUNDING`) shown below.

Request

```json
{
    "recipient_id" : "REejizS5fnTLiQYhGTKYXZaQ==",
    "account_id" : "RPA-lOt8vNX9QweylLYpzrFiVQ==",
    "reference_id" : "abc-123",
    "method" : "INSTANT_FUNDING",
    "type" : "DEBIT",
    "amount" : 10.00
}
```

Response

```json
{
    "transaction_id": "ICTN-435-21313-73757-ETE",
    "method": "INSTANT_FUNDING",
    "fee": 0.00,
    "amount": 10.00,
    "status": "PAID",
    "created_date": "2021-11-09T20:29:17.758Z",
    "detail": "VISA DEBIT 0167",
    "account_id": "RPA-lOt8vNX9QweylLYpzrFiVQ==",
    "recipient_id" : "REejizS5fnTLiQYhGTKYXZaQ==",
    "paid_date": "2025-08-09T20:29:18.711Z",
    "network_approval_code": "ABC12345",
    "provider_reference_id": "987654321"
}
```

```json
{
    "http_status": 422,
    "error_code": "ERR_INELIGIBLE_RECIPIENT_ACCOUNT",
    "error_message": "Ineligible account for transaction method"
}
```

The following Action codes should not be retried within 5 minutes. Retrying a transaction could result in additional transaction fees per network requirements.

| Action Code | Description |
| --- | --- |
| 04 | Pickup Card (no fraud) |
| 07 | Pick up card, special condition (fraud account) |
| 12 | Invalid Transaction |
| 15 | No such issuer |
| 41 | Lost card, pick up (fraud account) |
| 43 | Stolen card, pick up (fraud account) |
| 46 | Closed account |
| 57 | Transaction not permitted to cardholder |

Updated 8 months ago
