API

CardOrder

A card order: create one, list or get them, update its status, and check requirements, programs and addresses.

Operations

Every route this entity exposes. Each route links to its own reference on this page.

Method Route SDK operation Returns
POST /spend/profiles/{profileId}/card-orders create OK - Card order created successfully
POST /spend/address/validate create OK - Validation result returned. An empty errors collection means the address is valid
GET /spend/profiles/{profileId}/card-orders/{cardOrderId}/requirements list OK - Successfully retrieved card order requirements
GET /spend/profiles/{profileId}/card-orders list OK - Successfully retrieved card orders
GET /spend/profiles/{profileId}/card-orders/availability list OK - Successfully retrieved available card programs
GET /spend/profiles/{profileId}/card-orders/{cardOrderId} load OK - Successfully retrieved card order
PUT /spend/profiles/{profileId}/card-orders/{cardOrderId}/status update Accepted - Card order status update has been accepted

Examples

One example per SDK, generated from the API model. The argument names are the parameters and fields of this entity, and the values are placeholders. The examples are not compiled or executed.

Golang

Construct client as shown in the Golang setup, then call the operations:

card_orders, err := client.CardOrder(nil).List(map[string]any{"profile_id": 1}, nil)
if err != nil {
    panic(err)
}
fmt.Println(card_orders)
card_order, err := client.CardOrder(nil).Load(map[string]any{"id": 1, "profile_id": 1}, nil)
if err != nil {
    panic(err)
}
fmt.Println(card_order)
created, err := client.CardOrder(nil).Create(map[string]any{"cardHolderName": "example", "program": "example"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(created)
updated, err := client.CardOrder(nil).Update(map[string]any{"id": 1, "profile_id": 1, "status": "example"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(updated)

Lua

Construct client as shown in the Lua setup, then call the operations:

local card_orders, err = client:CardOrder():list({ profile_id = 1 })
local card_order, err = client:CardOrder():load({ id = 1, profile_id = 1 })
local created, err = client:CardOrder():create({ cardHolderName = "example", program = "example" })
local updated, err = client:CardOrder():update({ id = 1, profile_id = 1, status = "example" })

PHP

Construct client as shown in the PHP setup, then call the operations:

$card_orders = $client->CardOrder()->list(["profile_id" => 1]);
$card_order = $client->CardOrder()->load(["id" => 1, "profile_id" => 1]);
$created = $client->CardOrder()->create(["cardHolderName" => "example", "program" => "example"]);
$updated = $client->CardOrder()->update(["id" => 1, "profile_id" => 1, "status" => "example"]);

Python

Construct client as shown in the Python setup, then call the operations:

card_orders = client.CardOrder().list({"profile_id": 1})
card_order = client.CardOrder().load({"id": 1, "profile_id": 1})
created = client.CardOrder().create({ "cardHolderName": "example", "program": "example" })
updated = client.CardOrder().update({"id": 1, "profile_id": 1, "status": "example"})

Ruby

Construct client as shown in the Ruby setup, then call the operations:

card_orders = client.CardOrder.list({ "profile_id" => 1 })
card_order = client.CardOrder.load({ "id" => 1, "profile_id" => 1 })
created = client.CardOrder.create({ "cardHolderName" => "example", "program" => "example" })
updated = client.CardOrder.update({ "id" => 1, "profile_id" => 1, "status" => "example" })

TypeScript

Construct client as shown in the TypeScript setup, then call the operations:

const card_orders = await client.CardOrder().list({ profile_id: 1 })
const card_order = await client.CardOrder().load({ id: 1, profile_id: 1 })
const created = await client.CardOrder().create({ cardHolderName: "example", program: "example" })
const updated = await client.CardOrder().update({ id: 1, profile_id: 1, status: "example" })

Fields

Field Type Required Description
address object No Address set during card order.
cardHolderName string No Name of the card holder.
cardHolderProfileId integer No The cardholder profile for this card.
cardProgram object No The card program associated with this card order.
cardToken one,string,null No Token of the card associated with card order.
city string No Card holder's city (max 30 characters).
clientId string No Client ID.
country string No Card holder's country (ISO 3166-1 alpha-2, max 2 characters).
creationTime string No Time when the card order is created.
deliveryDetails object No Delivery details of a physical card order.
deliveryEstimate string No The estimated time when the card will be delivered.
deliveryOption string No The delivery method for the card order.
embossedName string No The cardholder's name to print on the card (physical card only).
errors array No Collection of validation errors.
firstLine string No Card holder's address (max 30 characters).
id integer No ID of the card order.
lifetimeLimit one,number,null No Maximum amount of spending on the card once issued.
modificationTime string No Time when the card order was last modified.
phoneNumber string No Phone number associated with the card order.
postCode string No Card holder's postal code (max 10 characters).
profileId integer No Profile ID.
program string Yes The name of the card program.
replacementDetails object No The replacement details for this card.
replacesCard one,string,null No Token of the card being replaced by this replacement card order.
secondLine one,string,null No Card holder's address (max 30 characters).
state one,string,null No Card holder's state (max 30 characters).
status string No Status of the card order.
thirdLine one,string,null No Card holder's address (max 30 characters).

create

POST /spend/profiles/{profileId}/card-orders

Operation ID: cardOrderCreate.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The profile ID (personal or business).
X-idempotence-uuid header string (uuid) Yes Idempotency key. Should be generated and used for any subsequent retries.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Request body

application/json

Property Type Required Description
address object No The cardholder's billing address or delivery address. Required for physical cards. Optional for virtual cards (defaults to the profile address, if omitted). Fields vary by country. See the card address validation guide.
address.city string No
address.country string No ISO 3166-1 alpha-2 country code.
address.firstLine string No
address.postCode string No
address.secondLine string,null No
address.state string,null No
address.thirdLine string,null No
cardHolderName string Yes The cardholder's name.
cardHolderProfileId integer (int64) No The cardholder profile for this card. This is used for business profiles.
deliveryOption enum: POSTAL_SERVICE_STANDARD, POSTAL_SERVICE_WITH_TRACKING, KIOSK_COLLECTION No The delivery method for the card order. The delivery method will be defined during scoping phase. Please reach out to your Implementation Manager for more information. Only specify this field for KIOSK_COLLECTION. If not specified, the default delivery method for your region will be used. - POSTAL_SERVICE_STANDARD - Default delivery method. Not traceable. - POSTAL_SERVICE_WITH_TRACKING - Available in certain regions. Default in Brazil. - KIOSK_COLLECTION - Available in select regions. See the kiosk collection guide.
embossedName string No The cardholder's name to print on the card (physical card only). The field length should be between 1 and 22 characters (spaces included).
lifetimeLimit number No 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.
phoneNumber string No For partners onboarded after 1/3/2025, we will use the profile phone number for any Card-related One-Time Password (OTP) requests. See 3ds. Ensure that the phone number is valid and starts with a "+" followed by the country code.
program string Yes The name of the card program.
replacementDetails object No The replacement details for this card.
replacementDetails.cardToken string No Token of the card to replace.
replacementDetails.reason enum: CARD_DAMAGED, CARD_EXPIRING No Reason for replacing the card: - CARD_DAMAGED - CARD_EXPIRING

Responses

200: OK - Card order created successfully

application/json

Property Type Required Description
address object No Address set during card order. Required for physical cards. Optional for virtual cards (defaults to the profile address, if omitted). Fields vary by country. See the card address validation guide for country-specific fields and validation rules.
address.city string No Card holder's city.
address.country string No Card holder's country (ISO 3166-1 alpha-2).
address.firstLine string No Card holder's address.
address.postCode string No Card holder's postal code.
address.secondLine string,null No Card holder's address.
address.state string,null No Card holder's state.
address.thirdLine string,null No Card holder's address.
cardHolderName string No Name of the card holder.
cardProgram object No The card program associated with this card order. 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.
cardProgram.cardType enum: VIRTUAL_NON_UPGRADEABLE, PHYSICAL No The type of the card: - VIRTUAL_NON_UPGRADEABLE - PHYSICAL
cardProgram.defaultCurrency string No The default currency assigned to the card program.
cardProgram.name string No The name of the card program.
cardProgram.scheme enum: MASTERCARD, VISA No The network of the card program: - MASTERCARD - VISA
cardToken string,null No Token of the card associated with card order. Nullable.
clientId string No Client ID.
creationTime string (date-time) No Time when the card order is created.
deliveryDetails object No Delivery details of a physical card order. For virtual cards, this value is null.
deliveryDetails.deliveryOption enum: POSTAL_SERVICE_STANDARD, POSTAL_SERVICE_WITH_TRACKING, KIOSK_COLLECTION No The delivery option used on the card order.
deliveryDetails.deliveryVendor string,null No The name of the delivery vendor.
deliveryDetails.trackingNumber string,null No The tracking number of the card delivery.
deliveryDetails.trackingUrl string,null No The URL to track the card delivery.
deliveryEstimate string (date-time) No The estimated time when the card will be delivered. There are few scenarios to be mindful of: 1. For virtual card the delivery estimate will be close to the creationTime, as it does not require delivery. 2. For physical card in PLACED status, the delivery estimate is calculated assuming that the order requirements will be fulfilled today (refreshed daily). 3. 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 integer (int64) No ID of the card order.
lifetimeLimit number,null No Maximum amount of spending on the card once issued. Nullable.
modificationTime string (date-time) No Time when the card order was last modified.
phoneNumber string No Phone number associated with the card order.
profileId integer (int64) No Profile ID.
replacesCard string,null No Token of the card being replaced by this replacement card order. Nullable.
status enum: PLACED, REQUIREMENTS_FULFILLED, CARD_DETAILS_CREATED, PRODUCED, COMPLETED, CANCELLED, ... No Status of the card order. See card order status flow for details.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

POST /spend/address/validate

Operation ID: cardOrderValidateAddress.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Request body

application/json

Property Type Required Description
city string No Card holder's city (max 30 characters).
country string No Card holder's country (ISO 3166-1 alpha-2, max 2 characters).
firstLine string No Card holder's address (max 30 characters).
postCode string No Card holder's postal code (max 10 characters).
secondLine string,null No Card holder's address (max 30 characters).
state string,null No Card holder's state (max 30 characters).
thirdLine string,null No Card holder's address (max 30 characters).

Responses

200: OK - Validation result returned. An empty errors collection means the address is valid

application/json

Property Type Required Description
errors array of object No Collection of validation errors. Empty if address is valid.
errors[].field string No The field that failed validation.
errors[].message string No Description of the validation error.

Example response:

{
  "errors": [
    {
      "field": "city",
      "message": "Required Field"
    },
    {
      "field": "postCode",
      "message": "Please enter a valid postcode"
    },
    {
      "field": "firstLine",
      "message": "Must be less than 30 characters"
    }
  ]
}
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

list

GET /spend/profiles/{profileId}/card-orders/{cardOrderId}/requirements

Operation ID: cardOrderRequirementsGet.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The profile ID (personal or business).
cardOrderId path integer (int64) Yes The card order ID.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Responses

200: OK - Successfully retrieved card order requirements

application/json

Property Type Required Description
requirements array of object No
requirements[].status enum: NOT_INITIATED, NEEDS_ACTION, PENDING, COMPLETED, FAILED No The status of the requirement: - NOT_INITIATED - NEEDS_ACTION - PENDING - COMPLETED - FAILED
requirements[].type enum: PIN, VERIFICATION, ADDRESS No The type of requirement: - PIN - Set a PIN on the card order - VERIFICATION - Verify customer by providing KYC evidences - ADDRESS - Provide a valid address for the card order

Example response:

{
  "requirements": [
    {
      "status": "NOT_INITIATED",
      "type": "PIN"
    },
    {
      "status": "PENDING",
      "type": "VERIFICATION"
    },
    {
      "status": "COMPLETED",
      "type": "ADDRESS"
    }
  ]
}
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

GET /spend/profiles/{profileId}/card-orders

Operation ID: cardOrderList.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The profile ID (personal or business).
pageSize query integer (int32) No The maximum number of card orders to return per page. This number can be between 10 - 100, and will default to 10.
pageNumber query integer (int32) No The page number to retrieve the next set of card orders. The number has to be greater or equal to 1, and will default to 1.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Responses

200: OK - Successfully retrieved card orders

application/json

Property Type Required Description
cardOrders array of object No
cardOrders[].address object No Address set during card order. Required for physical cards. Optional for virtual cards (defaults to the profile address, if omitted). Fields vary by country. See the card address validation guide for country-specific fields and validation rules.
cardOrders[].address.city string No Card holder's city.
cardOrders[].address.country string No Card holder's country (ISO 3166-1 alpha-2).
cardOrders[].address.firstLine string No Card holder's address.
cardOrders[].address.postCode string No Card holder's postal code.
cardOrders[].address.secondLine string,null No Card holder's address.
cardOrders[].address.state string,null No Card holder's state.
cardOrders[].address.thirdLine string,null No Card holder's address.
cardOrders[].cardHolderName string No Name of the card holder.
cardOrders[].cardProgram object No The card program associated with this card order. 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.
cardOrders[].cardProgram.cardType enum: VIRTUAL_NON_UPGRADEABLE, PHYSICAL No The type of the card: - VIRTUAL_NON_UPGRADEABLE - PHYSICAL
cardOrders[].cardProgram.defaultCurrency string No The default currency assigned to the card program.
cardOrders[].cardProgram.name string No The name of the card program.
cardOrders[].cardProgram.scheme enum: MASTERCARD, VISA No The network of the card program: - MASTERCARD - VISA
cardOrders[].cardToken string,null No Token of the card associated with card order. Nullable.
cardOrders[].clientId string No Client ID.
cardOrders[].creationTime string (date-time) No Time when the card order is created.
cardOrders[].deliveryDetails object No Delivery details of a physical card order. For virtual cards, this value is null.
cardOrders[].deliveryDetails.deliveryOption enum: POSTAL_SERVICE_STANDARD, POSTAL_SERVICE_WITH_TRACKING, KIOSK_COLLECTION No The delivery option used on the card order.
cardOrders[].deliveryDetails.deliveryVendor string,null No The name of the delivery vendor.
cardOrders[].deliveryDetails.trackingNumber string,null No The tracking number of the card delivery.
cardOrders[].deliveryDetails.trackingUrl string,null No The URL to track the card delivery.
cardOrders[].deliveryEstimate string (date-time) No The estimated time when the card will be delivered. There are few scenarios to be mindful of: 1. For virtual card the delivery estimate will be close to the creationTime, as it does not require delivery. 2. For physical card in PLACED status, the delivery estimate is calculated assuming that the order requirements will be fulfilled today (refreshed daily). 3. 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.
cardOrders[].id integer (int64) No ID of the card order.
cardOrders[].lifetimeLimit number,null No Maximum amount of spending on the card once issued. Nullable.
cardOrders[].modificationTime string (date-time) No Time when the card order was last modified.
cardOrders[].phoneNumber string No Phone number associated with the card order.
cardOrders[].profileId integer (int64) No Profile ID.
cardOrders[].replacesCard string,null No Token of the card being replaced by this replacement card order. Nullable.
cardOrders[].status enum: PLACED, REQUIREMENTS_FULFILLED, CARD_DETAILS_CREATED, PRODUCED, COMPLETED, CANCELLED, ... No Status of the card order. See card order status flow for details.
totalCount integer No The total number of card orders for this profile.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

GET /spend/profiles/{profileId}/card-orders/availability

Operation ID: cardOrderProgramsGet.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The profile ID (personal or business).
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Responses

200: OK - Successfully retrieved available card programs

application/json

Property Type Required Description
cardPrograms array of object No List of available card programs. 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.
cardPrograms[].cardType enum: VIRTUAL_NON_UPGRADEABLE, PHYSICAL No The type of the card: - VIRTUAL_NON_UPGRADEABLE - PHYSICAL
cardPrograms[].defaultCurrency string No The default currency assigned to the card program.
cardPrograms[].name string No The name of the card program.
cardPrograms[].scheme enum: MASTERCARD, VISA No The network of the card program: - MASTERCARD - VISA
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

load

GET /spend/profiles/{profileId}/card-orders/{cardOrderId}

Operation ID: cardOrderGet.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The profile ID (personal or business).
cardOrderId path integer (int64) Yes The card order ID.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Responses

200: OK - Successfully retrieved card order

application/json

Property Type Required Description
address object No Address set during card order. Required for physical cards. Optional for virtual cards (defaults to the profile address, if omitted). Fields vary by country. See the card address validation guide for country-specific fields and validation rules.
address.city string No Card holder's city.
address.country string No Card holder's country (ISO 3166-1 alpha-2).
address.firstLine string No Card holder's address.
address.postCode string No Card holder's postal code.
address.secondLine string,null No Card holder's address.
address.state string,null No Card holder's state.
address.thirdLine string,null No Card holder's address.
cardHolderName string No Name of the card holder.
cardProgram object No The card program associated with this card order. 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.
cardProgram.cardType enum: VIRTUAL_NON_UPGRADEABLE, PHYSICAL No The type of the card: - VIRTUAL_NON_UPGRADEABLE - PHYSICAL
cardProgram.defaultCurrency string No The default currency assigned to the card program.
cardProgram.name string No The name of the card program.
cardProgram.scheme enum: MASTERCARD, VISA No The network of the card program: - MASTERCARD - VISA
cardToken string,null No Token of the card associated with card order. Nullable.
clientId string No Client ID.
creationTime string (date-time) No Time when the card order is created.
deliveryDetails object No Delivery details of a physical card order. For virtual cards, this value is null.
deliveryDetails.deliveryOption enum: POSTAL_SERVICE_STANDARD, POSTAL_SERVICE_WITH_TRACKING, KIOSK_COLLECTION No The delivery option used on the card order.
deliveryDetails.deliveryVendor string,null No The name of the delivery vendor.
deliveryDetails.trackingNumber string,null No The tracking number of the card delivery.
deliveryDetails.trackingUrl string,null No The URL to track the card delivery.
deliveryEstimate string (date-time) No The estimated time when the card will be delivered. There are few scenarios to be mindful of: 1. For virtual card the delivery estimate will be close to the creationTime, as it does not require delivery. 2. For physical card in PLACED status, the delivery estimate is calculated assuming that the order requirements will be fulfilled today (refreshed daily). 3. 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 integer (int64) No ID of the card order.
lifetimeLimit number,null No Maximum amount of spending on the card once issued. Nullable.
modificationTime string (date-time) No Time when the card order was last modified.
phoneNumber string No Phone number associated with the card order.
profileId integer (int64) No Profile ID.
replacesCard string,null No Token of the card being replaced by this replacement card order. Nullable.
status enum: PLACED, REQUIREMENTS_FULFILLED, CARD_DETAILS_CREATED, PRODUCED, COMPLETED, CANCELLED, ... No Status of the card order. See card order status flow for details.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

update

PUT /spend/profiles/{profileId}/card-orders/{cardOrderId}/status

Operation ID: cardOrderStatusUpdate.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The profile ID (personal or business).
cardOrderId path integer (int64) Yes The card order ID.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Request body

application/json

Property Type Required Description
status enum: CANCELLED, COMPLETED Yes The intended new status of the card order: - CANCELLED - COMPLETED (deprecated)

Responses

202: Accepted - Card order status update has been accepted
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.