**Last updated**: 08 October 2025 | [**Change log**](/products/card-payouts/changelog/) # Card Payout to a wallet Use our card on file resource to authorize a payment with a digital wallet. Note You must [integrate with Google Pay or Apple Pay](/products/wallets/applepay) before you can submit a wallet payment request to our Payments API. ### Payout to wallet flow 1. Integrate with your mobile wallet provider: [Apple Pay](/products/wallets/applepay) and [Google Pay](/products/wallets/googlepay). 2. Integrate with our Payments API - use our [`payments:cardOnFileAuthorize`](/products/card-payments/v6/authorise-a-cardonfile-payment) endpoint with your encrypted payload - see below. 3. You receive a `tokens:token` in your response. 4. Integrate with our Payouts API - use your token to [make a payout](/products/card-payouts/payouts) with `payoutInstrument` `"type": "card/tokenized". ## Card on file authorization request `POST` your initial card on file authorizations to our `payments:cardOnFileAuthorize` action link resource received in your [query the payments root resource](/products/card-payments/v6/get-started#query-the-payments-root-resource) request. ### Card on file authorization example request: `POST` `https://try.access.worldpay-bsh.securedataplatform.com/payments/authorizations/cardOnFile` `cardOnFile` authorization request body Apple Pay { "transactionReference": "Memory265-13/08/1876", "merchant": { "entity": "default" }, "instruction": { "narrative": { "line1": "Mind Palace Ltd" }, "value": { "currency": "GBP", "amount": 250 }, "paymentInstrument": { "type": "card/wallet+applepay", "walletToken": "{\"version\": \"EC_v1\",\"data\": \"kdHd..GQ==\",\"signature\": \"MIAGCSqGSIb3DQEH...AAA\",\"header\": {\"transactionId\": \"d3b28af..f8\",\"ephemeralPublicKey\": \"MFkwE..Q==\",\"publicKeyHash\": \"dxCK..6o=\"}}" } } } Token/wallet payout { "transactionReference": "Memory265-13/08/1876", "merchant": { "entity": "default" }, "instruction": { "narrative": { "line1": "Mind Palace Ltd" }, "value": { "currency": "GBP", "amount": 250 }, "paymentInstrument": { "type": "card/wallet+googlepay", "walletToken": "{\"version\": \"EC_v1\",\"data\": \"kdHd..GQ==\",\"signature\": \"MIAGCSqGSIb3DQEH...AAA\",\"header\": {\"transactionId\": \"d3b28af..f8\",\"ephemeralPublicKey\": \"MFkwE..Q==\",\"publicKeyHash\": \"dxCK..6o=\"}}" } } } #### Descriptions of your authorization request parameters | Parameter | Required? | Description | | --- | --- | --- | | `transactionReference` | ✅ | A unique reference generated by you that is used to identify a payment throughout its lifecycle. See [transaction reference format](/products/reference/formatting#transaction-reference-format), for more details and the best practices. | | `merchant` | ✅ | An object that contains information about the merchant. | | `merchant.entity` | ✅ | Directs your payment to assist with billing, reporting and reconciliation. This is mandatory for authentication and queries.Contact your [Implementation Manager](https://www.worldpay-bsh.securedataplatform.com/en-GB/merchant-support#still-need-help) for more details. | | `instruction` | ✅ | An object that contains all the information related to the payment. | | `instruction.narrative` | ✅ | The text that appears on your customer's statement. Used to identify the merchant.See [narrative format](/products/reference/formatting#narrative-format) for more details and best practices. | | `narrative.line1` | ✅ | The first line of the narrative which appears on your customer's statement (24 characters max. If character is not supported it is replaced with a space.).See [narrative `line1` format](/products/reference/formatting#narrative-line1) for more details. | | `instruction.value` | ✅ | An object that contains information about the value of the payment. | | `value.currency` | ✅ | The three digit currency code.See list of [supported currencies](/products/reference/supported-countries-currencies#iso-currency-codes). | | `value.amount` | ✅ | The payment amount. This is a whole number with an exponent e.g. if exponent is two, 250 is 2.50. You can find the relevant exponent in our [currency table](/products/reference/supported-countries-currencies#iso-currency-codes). | | `instruction.paymentInstrument` | ✅ | An object that contains the payment type and details. You must integrate with [Apple Pay](/products/wallets/applepay)/ [Google Pay](/products/wallets/googlepay) first to use the `card/wallet+applepay`/`card/wallet+googlepay` `paymentInstrument`. | details summary cardOnFile authorization optional fields The requests below contain all the mandatory and optional fields needed for a successful `cardOnFile` authorization request. The full request schema is also available in our API reference. #### Complete card on file authorization request schema Full `cardOnFile` authorization request body: Apple Pay { "transactionReference": "Memory265-13/08/1876", "merchant": { "entity": "default" }, "instruction": { "intent": "instalment", "narrative": { "line1": "Mind Palace Ltd", "line2": "Memory265-13/08/1876" }, "value": { "currency": "GBP", "amount": 1000 }, "paymentInstrument": { "type": "card/wallet+applepay", "walletToken": "{\"version\": \"EC_v1\",\"data\": \"kdHd..GQ==\",\"signature\": \"MIAGCSqGSIb3DQEH...AAA\",\"header\": {\"transactionId\": \"d3b28af..f8\",\"ephemeralPublicKey\": \"MFkwE..Q==\",\"publicKeyHash\": \"dxCK..6o=\"}}", "billingAddress": { "address1": "221B Baker Street", "address2": "Marylebone", "address3": "Westminster", "postalCode": "NW1 6XE", "city": "London", "state": "Greater London", "countryCode": "GB" } } } } Token/wallet payout { "transactionReference": "Memory265-13/08/1876", "merchant": { "entity": "default" }, "instruction": { "intent": "instalment", "narrative": { "line1": "Mind Palace Ltd", "line2": "Memory265-13/08/1876" }, "value": { "currency": "GBP", "amount": 1000 }, "paymentInstrument": { "type": "card/wallet+googlepay", "walletToken": "{\"version\": \"EC_v1\",\"data\": \"kdHd..GQ==\",\"signature\": \"MIAGCSqGSIb3DQEH...AAA\",\"header\": {\"transactionId\": \"d3b28af..f8\",\"ephemeralPublicKey\": \"MFkwE..Q==\",\"publicKeyHash\": \"dxCK..6o=\"}}", "billingAddress": { "address1": "221B Baker Street", "address2": "Marylebone", "address3": "Westminster", "postalCode": "NW1 6XE", "city": "London", "state": "Greater London", "countryCode": "GB" } } } } #### Descriptions of your card on file authorization request parameters | Parameter | Required? | Description | | --- | --- | --- | | `instruction.intent` | ❌ | A parameter detailing the reason for this particular repeat agreement. Possible value: `instalment` | | `narrative.line2` | ❌ | Additional details about the payment e.g. order number, telephone number. | ## Card on file response ### Successful response You receive: * an HTTP code `201` * an `"outcome": "authorized"` * risk factors (only returned if issuer identifies conflict) * a scheme reference * a `paymentInstrument` detailing brand information about the card that was used * links to [cancel](/products/card-payments/v6/manage-payments#cancel-an-authorization), [settle](/products/card-payments/v6/manage-payments#settle-an-authorization), [partially settle](/products/card-payments/v6/manage-payments#partially-settle-an-authorization) or [query a payment](/products/card-payments/v6/query-a-payment) payment events * authorization links * a token link you can use to make a Payout ### Refused response You receive: * an HTTP code `201` * an `"outcome": "refused"` * a [refusal code](/products/reference/refusal-response) * a `description` which gives additional context on the refusal * risk factors (only returned if issuer identifies conflict) * a `paymentInstrument` #### Example response Successful { "outcome": "authorized", "riskFactors": [{ "risk": "not_checked", "detail": "postcode", "type": "avs" }, { "risk": "not_checked", "detail": "address", "type": "avs" } ], "scheme": { "reference": "schemeReference" }, "paymentInstrument": { "type": "card/network+masked", "card": { "number": { "bin": "444433", "last4Digits": "1111", "dpan": "4444333322221111" }, "countryCode": "GB", "expiryDate": { "month": 6, "year": 2021 }, "brand": "visa", "fundingType": "debit", "issuer": { "name": "VALID_ISSUER" }, "paymentAccountReference": "somePAR" } }, "_links": { "payments:cancel": { "href": "https://try.access.worldpay-bsh.securedataplatform.com/payments/authorizations/cancellations/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA==" }, "payments:settle": { "href": "https://try.access.worldpay-bsh.securedataplatform.com/payments/settlements/full/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA==" }, "payments:partialSettle": { "href": "https://try.access.worldpay-bsh.securedataplatform.com/payments/settlements/partials/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA==" }, "payments:events": { "href": "https://try.access.worldpay-bsh.securedataplatform.com/payments/events/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA==" }, "payments:cardOnFileAuthorize": { "href": "https://try.access.worldpay-bsh.securedataplatform.com/payments/authorizations/cardOnFile/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMS4wLjAifQ==.R6PzeBs1kC+VT5dtn2WKHquYi:0CPtdsTmoC0CiPjw6CkE+Ujvons6ZVs+R2JwUJmXAx1+34Kz67cP9hSVZNkQ==" }, "payments:recurringAuthorize": { "href": "https://try.access.worldpay-bsh.securedataplatform.com/payments/authorizations/recurring/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMS4wLjAifQ==.R6PzeBs1kC+VT5dtn2WKHquYi:0CPtdsTmoC0CiPjw6CkE+Ujvons6ZVs+R2JwUJmXAx1+34Kz67cP9hSVZNkQ==" }, "tokens:token": { "href": "https://access.worldpay-bsh.securedataplatform.com/tokens/linkData" }, "curies": [{ "name": "payments", "href": "https://try.access.worldpay-bsh.securedataplatform.com/rels/payments/{rel}", "templated": true }] } } Refused { "outcome": "refused", "description": "do not honour", "code": "5", "refusalAdvice": { "code": "03" }, "riskFactors": [{ "risk": "not_checked", "detail": "postcode", "type": "avs" }, { "risk": "not_checked", "detail": "address", "type": "avs" } ], "paymentInstrument": { "type": "card/network+masked", "card": { "number": { "bin": "444433", "last4Digits": "1111" }, "countryCode": "GB", "brand": "visa", "fundingType": "debit", "issuer": { "name": "VALID_ISSUER" }, "paymentAccountReference": "somePAR" } } } You can use the `payments:settle` action link to [settle the payment](/products/card-payments/v6/manage-payments#settle-an-authorization) straight away. Alternatively you can cache the response and use the link to settle the payment later. **Next steps** Make a [payout with the token](/products/card-payouts/payouts) you have received in your [card on file response](#card-on-file-response).