--- title: "Instant card funding" url: "https://docs.adyen.com/online-payments/instant-card-funding" source_url: "https://docs.adyen.com/online-payments/instant-card-funding.md" canonical: "https://docs.adyen.com/online-payments/instant-card-funding" last_modified: "2025-10-13T12:07:00+02:00" language: "en" --- # Instant card funding [View source](/online-payments/instant-card-funding.md) Instant card funding lets you process transactions for a shopper moving money from a card to another card, digital wallet or bank account. Adyen supports instant card funding transactions for Visa and Mastercard. Possible use cases include: #### Top-up * A shopper loading or topping up their prepaid cards. * A shopper moving funds into another of their financial accounts such as a savings deposit account or retirement account. * A shopper loading their third-party digital wallet. #### Person to person money transfer * A funding source for person to person money transfers. ## Enable instant card funding ### Step 1: Compliance To enable instant card funding, you must submit compliance documents to Adyen. You must also specify your use case and fulfill compliance requirements for the card scheme. Contact your Account Manager to discuss the requirements. ### Step 2: Configuration When you have completed the compliance processes, contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) to enable instant card funding. ## Process an instant card funding transaction To process transactions for instant card funding, you must send some additional data fields in your [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request to indicate who is sending the funds and, if applicable, who is receiving them. The data you submit in your requests must meet our requirements to pass our [data validation](#data-validation) checks. ### Tab: Top-up | Field | Required | Description | | -------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `fundOrigin.shopperName` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The name of the sender. If you are sending the name in your request using the [shopperName](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-shopperName) field, you do not need to send it again in the `fundOrigin` object. | | `fundOrigin.billingAddress` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The address of the sender. If you are sending the address in your request using the [billingAddress](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-billingAddress) field, you do not need to send it again in the `fundOrigin` object. | | `fundOrigin.shopperEmail` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The email of the sender. | | `fundOrigin.telephoneNumber` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The phone number of the sender. | | `fundRecipient.walletIdentifier` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Your unique identifier for the wallet or account the funds are being transferred to. You can use the shopper reference or any other identifier. | Instant card funding [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) requests sent without this data can be refused. **/payments request to top up a wallet from a card** ```json { "paymentMethod": { "type": "scheme", "number": "4111111111111111", "expiryMonth": "03", "expiryYear": "2030", "holderName": "John Smith", "cvc": "737" }, "amount": { "value": 200, "currency": "EUR" }, "reference": "MERCHANT_REFERENCE", "merchantAccount": "MERCHANT_ACCOUNT", "fundOrigin": { "shopperName": { "firstName": "John", "lastName": "Smith" }, "billingAddress": { "country":"NL", "city":"Amsterdam", "street":"Simon Carmiggeltstraat", "houseNumberOrName":"1" }, "shopperEmail": "john.smith@email.com", "telephoneNumber": "0612345678" }, "fundRecipient": { "walletIdentifier": "1234ABC" } } ``` ### Tab: Person to person money transfer | Field | Required | Description | | -------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | | `fundOrigin.shopperName` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The name of the sender. | | `fundOrigin.billingAddress` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The address of the sender. | | `fundOrigin.walletIdentifier` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Your unique identifier for the wallet or account the funds are being transferred from. You can use the shopper reference or any other identifier. | | `fundOrigin.shopperEmail` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The email of the sender. | | `fundOrigin.telephoneNumber` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The phone number of the sender. | | `fundRecipient.shopperName` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The name of the recipient. | | `fundRecipient.billingAddress` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The address of the recipient. | | `fundRecipient.walletIdentifier` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Your unique identifier for the wallet or account the funds are being transferred to. You can use the shopper reference or any other identifier. | Instant card funding [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) requests sent without this data can be refused. **/payments request to perform a person to person money transfer** ```json { "paymentMethod": { "type": "scheme", "number": "4111111111111111", "expiryMonth": "03", "expiryYear": "2030", "holderName": "John Smith", "cvc": "737" }, "amount": { "value": 200, "currency": "EUR" }, "reference": "MERCHANT_REFERENCE", "merchantAccount": "MERCHANT_ACCOUNT", "fundOrigin": { "shopperName": { "firstName": "John", "lastName": "Smith" }, "billingAddress": { "country":"NL", "city":"Amsterdam", "street":"Simon Carmiggeltstraat", "houseNumberOrName":"1" }, "shopperEmail": "john.smith@email.com", "telephoneNumber": "0612345678", "walletIdentifier": "1234ABC" }, "fundRecipient": { "shopperName": { "firstName": "Jane", "lastName": "Smith" }, "billingAddress": { "country": "US", "stateOrProvince": "NY", "city": "New York", "street": "5th Avenue", "houseNumberOrName": "71", "postalCode": "10003" }, "walletIdentifier": "6789XYZ" } } ``` ## Data validation We perform additional validations when facilitating money transfers between different entities, and decline transactions where the data provided does not meet our requirements. * Only ASCII characters are supported. * The `shopperName`, and `billingAddress` fields values can not: * Consist only of spaces, symbols, numbers. * Include emojis. * Be **N/A**, or **null**. * The `shopperName`, and `billingAddress` fields can only contain the following special characters: `,`, `.`, `;`, `:`, `-`, `—`, `/`, `\`, `+`, `&`, `!`, `?`, `@`, `(`, `)`, `"`, `'`. * The `shopperName` can not be a common placeholder name, like **John Doe**. * The combined number of characters for the `firstName` and `lastName` fields in the `shopperName` can not be less than 3. * The `billingAddress.street` field can not consist of less than 3 characters. * The different fields in the `billingAddress` can not have the same value. ## Partial authorization Partial authorizations enable you to request an authorization for shopper's available balance when the requested amount is higher than the shopper's balance. We recommend to enable [partial authorizations](/online-payments/partial-authorizations/) for online payouts to avoid failures when a shopper has insufficient funds, and increase authorization rates. ## See also * [Instant card payouts](/online-payments/online-payouts/instant-payouts)