**Last updated**: 06 March 2026 | [**Change log**](/access/products/card-payouts/changelog/)

# 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](/access/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](/access/products/wallets/applepay) and [Google Pay](/access/products/wallets/googlepay)
2. Integrate with our Payments API -  use our [`payments:cardOnFileAuthorize`](/access/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](/access/products/card-payouts/v3/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](/access/products/card-payments/v6/get-started#query-the-payments-root-resource) request.

### Card on file authorization example request:

`POST`  `https://try.access.worldpay.com/payments/authorizations/cardOnFile`

`cardOnFile` authorization request body

Apple Pay

```json
{
    "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

```json
{
  "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](/access/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.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](/access/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](/access/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](/access/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](/access/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](/access/products/wallets/applepay)/ [Google Pay](/access/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

```json
{
    "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

```json
{
    "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](/access/products/card-payments/v6/manage-payments#cancel-an-authorization), [settle](/access/products/card-payments/v6/manage-payments#settle-an-authorization), [partially settle](/access/products/card-payments/v6/manage-payments#partially-settle-an-authorization) or [query a payment](/access/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](/access/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

```json
{
    "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.com/payments/authorizations/cancellations/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA=="
        },
        "payments:settle": {
            "href": "https://try.access.worldpay.com/payments/settlements/full/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA=="
        },
        "payments:partialSettle": {
            "href": "https://try.access.worldpay.com/payments/settlements/partials/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA=="
        },
        "payments:events": {
            "href": "https://try.access.worldpay.com/payments/events/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA=="
        },
        "payments:cardOnFileAuthorize": {
            "href": "https://try.access.worldpay.com/payments/authorizations/cardOnFile/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMS4wLjAifQ==.R6PzeBs1kC+VT5dtn2WKHquYi:0CPtdsTmoC0CiPjw6CkE+Ujvons6ZVs+R2JwUJmXAx1+34Kz67cP9hSVZNkQ=="
        },
        "payments:recurringAuthorize": {
            "href": "https://try.access.worldpay.com/payments/authorizations/recurring/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMS4wLjAifQ==.R6PzeBs1kC+VT5dtn2WKHquYi:0CPtdsTmoC0CiPjw6CkE+Ujvons6ZVs+R2JwUJmXAx1+34Kz67cP9hSVZNkQ=="
        },
        "tokens:token": {
            "href": "https://access.worldpay.com/tokens/linkData"
        },
        "curies": [{
            "name": "payments",
            "href": "https://try.access.worldpay.com/rels/payments/{rel}",
            "templated": true
        }]
    }
}
```

Refused

```json
{
    "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](/access/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](/access/products/card-payouts/v3/payouts) you have received in your [card on file response](#card-on-file-response).