Create a card order
You can issue 2 types of cards:
- Virtual card: This card is issued with a
program
when thecardType
value starts withVIRTUAL_
. A virtual card exists in your Wise account and is ready to be used. - Physical card: This card is issued with a
program
when thecardType
value isPHYSICAL
. The card is sent to the delivery address specified when ordering the card. On top of virtual card capabilities, physical cards also have chip and PIN, magstripe and contactless payments capabilities.
All cards will arrive pre-activated. Pre-activated cards mean that the card details can be used immediately for all online transactions. In order for your users to use their card for contactless/point-of-sale purchases, they will have to make their first transaction in store - by inserting the card into the terminal and keying in the PIN that's been generated for them on Wise. Be aware that ordering a virtual card and a physical card results in 2 distinctive cards.
To issue cards to your users with Cards API, you'll need to create a card order. A card order is linked to a card program and a profile. It is key to identify the profileId
of the user, as well as the different balance account currencies that exist on that profile.
The general workflow to create a card order is a two-step process:
- Get available card programs - This allows you to retrieve all the available card programs for the user's profile. A card program gives information on the name of the card program, the type of card, the network that the card is on, as well as the default currency for that card. The
cardType
determines what type of card is issued with aprogram
. - Create a card order:
- Create a virtual card order - This creates a Virtual card for the
profileId
, with theprogram
being one of the card programs returned in step 1. - Create a physical card order - This creates a Physical card for the
profileId
, with theprogram
being one of the card programs returned in step 1.
- Create a virtual card order - This creates a Virtual card for the
If required, we also have endpoints that allow you to retrieve a list of your open card orders.\
A Card Program is what Wise refers to all the cards that you will be issuing with us, grouped by product type and by issuing country.
The name of the card program
The network of the card program. One of MASTERCARD
or VISA
The default currency assigned to the card program
The type of the card. It can be one of VIRTUAL_NON_UPGRADEABLE
or PHYSICAL
{"cardPrograms": [{"name": "VISA_DEBIT_BUSINESS_UK_1_CARDS_API","scheme": "VISA","defaultCurrency": "GBP","cardType" : "VIRTUAL_NON_UPGRADEABLE"}]}
ID of the card order
Profile ID
Client ID
Card Program of the card holder.
Address set during card order
Address set during card order
Type of the card order. E.g. PHYSICAL
or VIRTUAL_<type>
Token of the card associated with card order. Nullable.
A string for replacement card. Not supported at the moment.
Time when the card order is created
Time when the card order was last modified
Status of the card order before card is issued.
Checkout card order statuses for more information.
Name of the card holder.
Phone number associated with the card order.
Maximum amount of spending on the card once issued. Nullable.
The estimated time when the card will be delivered. There are few scenarios to be mindful of:
- For virtual card the delivery estimate will be close to the creationTime. As it does not require delivery.
- For physical card in
PLACED
status, the delivery estimate is calculated assuming that the order requirements will be fulfilled today (refreshed daily). - For physical card after
PLACED
status, we provide a best effort estimation, and it should not be used as delivery timing as we will have separate delivery tracking (subject to region availability) for physical card that is coming soon.
{"id": 142,"profileId": 123456,"clientId": "{{clientId}}","cardProgram": {"name": "VISA_DEBIT_BUSINESS_UK_1_CARDS_API","scheme": "VISA","defaultCurrency": "GBP","cardType" : "VIRTUAL_NON_UPGRADEABLE"},"address": {"firstLine": "56 Shoreditch High St","secondLine": "The Tea Bldg","thirdLine": null,"city": "London","postCode": "E1 6JJ","state": null,"country": "GB"},"billingAddress": { // deprecated on the 16/10/2023"firstLine": "56 Shoreditch High St","secondLine": "The Tea Bldg","thirdLine": null,"city": "London","postCode": "E1 6JJ","state": null,"country": "GB"},"cardType": "VIRTUAL_NON_UPGRADEABLE", // deprecated - field moved to cardProgram"cardToken": "4dc0be88-903f-49e4-8237-735f1139e3dd","replacesCard": null,"creationTime": "2023-07-31T01:43:24.596321434Z","modificationTime": "2023-07-31T01:43:24.596321825Z","status": "CARD_DETAILS_CREATED","cardHolderName": "John Smith","phoneNumber": "+441234567890","lifetimeLimit": 100,"deliveryEstimate": "2023-10-30T07:11:00.848681Z"}
GET /v3/spend/profiles/{{profileId}}/card-orders/availability
Retrieves the list of available card programs for each profileId
.
curl -X GET https://api.sandbox.transferwise.tech/v3/spend/profiles/{{profileId}}/card-orders/availability \-H 'Authorization: Bearer <your api token>' \-H 'Content-Type: application/json'
Response
Returns a collection of CardProgram resources available to the profileId
.
{"cardPrograms": [{"name": "VISA_DEBIT_BUSINESS_UK_1_CARDS_API","scheme": "VISA","defaultCurrency": "GBP","cardType" : "VIRTUAL_NON_UPGRADEABLE"}]}
POST /v3/spend/profiles/{{profileId}}/card-orders
Orders a new card for a given profileId
. The program
should be retrieved via the /card-orders/availability endpoint.
The cardType
determines what type of card is issued with a program
. cardType
value would be PHYSICAL
if the program
issue physical cards.
The name of the card program
The card holder's name
The card holder's name to print on the card (physical card only)
Must be a valid phone number prefixed with + and country code. An example of a valid phone number would be +6588888888
The card holder's billing address or delivery address. See Address
The card holder's billing address or delivery address. See Address
Optionally sets a lifetime spending limit on the card. A lifetime limit of 0 means that a card cannot be used until the lifetime limit is updated.
Returns a Card Order.
curl -X POST https://api.sandbox.transferwise.tech/v3/spend/profiles/{{profileId}}/card-orders \-H 'Authorization: Bearer <your api token>' \-H 'Content-Type: application/json' \-H 'X-idempotence-uuid: 054064c9-e01e-49fb-8fd9-b0990b9442f4' \-d '{"program": "VISA_DEBIT_BUSINESS_UK_1_PHYSICAL_CARDS_API","cardHolderName": "John Smith,"embossedName": "Smith John", // Physical card order"phoneNumber": "+441234567890","address": {"firstLine": "56 Shoreditch High St","secondLine": "The Tea Bldg","thirdLine": null,"city": "London","postCode": "E1 6JJ","state": null,"country": "GB"},"billingAddress": { // deprecated on the 16/10/2023"firstLine": "56 Shoreditch High St","secondLine": "The Tea Bldg","thirdLine": null,"city": "London","postCode": "E1 6JJ","state": null,"country": "GB"},"lifetimeLimit": 100,}'
Returns a list of card orders created for the profileId
specified in the endpoint.
GET /v3/spend/profiles/{{profileId}}/card-orders?pageSize=10&pageNumber=1
The maximum number of card orders to return per page. This number can be between 10 - 100, and will default to 10
The page number to retrieve the next set of card orders. The number has to be greater than 1, and will default to 1
curl -X GET https://api.sandbox.transferwise.tech/v3/spend/profiles/{{profileId}}/card-orders?pageSize=10&pageNumber=1 \-H 'Authorization: Bearer <your api token>'
Response
The total number of card orders for this profileId
A collection of CardOrder for this profileId
{"cardOrders": [{"id": 142,"profileId": 123456,"clientId": "wise_api_docs","cardProgram": {"name": "VISA_DEBIT_BUSINESS_UK_1_CARDS_API","scheme": "VISA","defaultCurrency": "GBP","cardType" : "VIRTUAL_NON_UPGRADEABLE",},"address": {"firstLine": "56 Shoreditch High St","secondLine": "The Tea Bldg","thirdLine": null,"city": "London","postCode": "E1 6JJ","state": null,"country": "GB"},"billingAddress": { // deprecated on the 16/10/2023"firstLine": "56 Shoreditch High St","secondLine": "The Tea Building","thirdLine": null,"city": "London","postCode": "E1 6JJ","state": null,"country": "GB",},"cardType" : "VIRTUAL_NON_UPGRADEABLE", // deprecated - field moved to cardProgram"cardToken": null,"replacesCard": null,"creationTime": "2022-05-31T01:43:24.596321434Z","modificationTime": "2022-05-31T01:43:24.596321825Z","status": "REQUIREMENTS_FULFILLED","cardHolderName": "John Smith","phoneNumber": "+441234567890","lifetimeLimit": 100}],"totalCount": 100}
GET /v3/spend/profiles/{{profileId}}/card-orders/{{cardOrderId}}
Retrieves a card order based on the cardOrderId
.
curl -X GET https://api.sandbox.transferwise.tech/v3/spend/profiles/{{profileId}}/card-orders/{{cardOrderId}} \-H 'Authorization: Bearer <your api token>'
Response
Returns a Card Order.