---
title: "Create a card order"
method: POST
path: "/v3/spend/profiles/{profileId}/card-orders"
tags: ["card-order"]
---

# Create a card order

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

Creates a new card order. The `program` field value is retrieved from the [retrieve all card programs](/api-reference/card-order/cardorderprogramsget) endpoint.

{% admonition type="warning" %}
This request requires an extra field in the header, `X-idempotence-uuid`. This should be generated and used for any subsequent retries in the event that the initial request fails.
{% /admonition %}

When you issue a card under a business profile, the cardholder will automatically default to the [business representative](/api-reference/profile/profilebusinesscreate).

If the cardholder is not the business representative, create a cardholder [personal profile](/api-reference/profile/profilepersonalcreate) and add the profileId of the cardholder profile to the `cardHolderProfileId` field on the card order request.

For country-specific address fields and validation rules, see the [card address validation guide](/guides/developer/api-guides/card-address-validation).

## Path parameters

- `profileId` integer, required

## Headers

- `X-idempotence-uuid` string, uuid, required
- `X-External-Correlation-Id` string, uuid

## Request body

- object — Request body for creating a card order.
  - `program` string, required — The name of the card program.
  - `cardHolderName` string, required — The cardholder's name.
  - `embossedName` string — The cardholder's name to print on the card (physical card only). The field length should be between 1 and 22 characters (spaces included).
  - `phoneNumber` string — 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](/guides/product/issue-cards/3ds). Ensure that the phone number is valid and starts with a "+" followed by the country code.
  - `address` object — 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](/guides/developer/api-guides/card-address-validation).
    - `firstLine` string
    - `secondLine` string, nullable
    - `thirdLine` string, nullable
    - `city` string
    - `postCode` string
    - `state` string, nullable
    - `country` string — ISO 3166-1 alpha-2 country code.
  - `deliveryOption` 'POSTAL_SERVICE_STANDARD' | 'POSTAL_SERVICE_WITH_TRACKING' | 'KIOSK_COLLECTION' — 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](/guides/product/issue-cards/card-kiosk-collection).
  - `lifetimeLimit` number — 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.
  - `cardHolderProfileId` integer — The cardholder profile for this card. This is used for business profiles.
  - `replacementDetails` object — The replacement details for this card.
    - `cardToken` string — Token of the card to replace.
    - `reason` 'CARD_DAMAGED' | 'CARD_EXPIRING' — Reason for replacing the card: - `CARD_DAMAGED` - `CARD_EXPIRING`

## Response `200`

OK - Card order created successfully.

- CardOrder
  - `id` integer — ID of the card order.
  - `profileId` integer — Profile ID.
  - `clientId` string — Client ID.
  - `cardProgram` object — 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.
    - `name` string — The name of the card program.
    - `scheme` 'MASTERCARD' | 'VISA' — The network of the card program: - `MASTERCARD` - `VISA`
    - `defaultCurrency` string — The default currency assigned to the card program.
    - `cardType` 'VIRTUAL_NON_UPGRADEABLE' | 'PHYSICAL' — The type of the card: - `VIRTUAL_NON_UPGRADEABLE` - `PHYSICAL`
  - `address` object — 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](/guides/developer/api-guides/card-address-validation) for country-specific fields and validation rules.
    - `firstLine` string — Card holder's address.
    - `secondLine` string, nullable — Card holder's address.
    - `thirdLine` string, nullable — Card holder's address.
    - `city` string — Card holder's city.
    - `postCode` string — Card holder's postal code.
    - `state` string, nullable — Card holder's state.
    - `country` string — Card holder's country (ISO 3166-1 alpha-2).
  - `cardToken` string, nullable — Token of the card associated with card order. Nullable.
  - `replacesCard` string, nullable — A string for replacement card. Not supported at the moment.
  - `creationTime` string, date-time — Time when the card order is created.
  - `modificationTime` string, date-time — Time when the card order was last modified.
  - `status` 'PLACED' | 'REQUIREMENTS_FULFILLED' | 'CARD_DETAILS_CREATED' | 'PRODUCED' | 'COMPLETED' | 'CANCELLED' | 'RETURNED' — Status of the card order. See [card order status flow](/api-reference/card-order#card-order-status-flow) for details.
  - `cardHolderName` string — Name of the card holder.
  - `phoneNumber` string — Phone number associated with the card order.
  - `lifetimeLimit` number, nullable — Maximum amount of spending on the card once issued. Nullable.
  - `deliveryEstimate` string, date-time — 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.
  - `deliveryDetails` object — Delivery details of a physical card order. For virtual cards, this value is null.
    - `deliveryOption` 'POSTAL_SERVICE_STANDARD' | 'POSTAL_SERVICE_WITH_TRACKING' | 'KIOSK_COLLECTION' — The delivery option used on the card order.
    - `deliveryVendor` string, nullable — The name of the delivery vendor.
    - `trackingUrl` string, nullable — The URL to track the card delivery.
    - `trackingNumber` string, nullable — The tracking number of the card delivery.

## Other responses

- `429` — Rate limit exceeded. Retry after the number of seconds specified in the `Retry-After` header.

---

[API](https://skmtc.net/wise/apis/platform-api.md) · [All operations](https://skmtc.net/wise/apis/platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/wise/platform-api/revisions/4907a1d269ab/schema)
