# Create a Card

The card object is the actual resource associated with the card issued out by Airwallex. It holds details such as linked account, embossed name (for physical cards), shipping method and information (for physical cards), card based spend controls (eg. transaction limits, blocked merchant category codes etc.). The card object also determines who the card is for (ie for clients or their customers/employees), form factor (physical or virtual), and the number of uses (single or multiple).

## Endpoint

`POST /api/v1/issuing/cards/create`

## Request Headers

- `Authorization` (string, required)
  Obtain a token via `POST /api/v1/authentication/login` with your API key and client unique identifier. Pass it as `Authorization: Bearer {{ACCESS_TOKEN}}`. Tokens expire after a configurable duration.

## Request Parameters

### Request Body

- `authorization_controls` (object, required)
  Spend controls that determine the rules and restrictions to check for transaction authorizations.
  - `allowed_transaction_count` (string, required)
    Specifies whether this card is a Single or Multiple Use card. Single Use means that the card can only be used for 1 successful debit transaction.
    Possible values:
    - `SINGLE`
    - `MULTIPLE`
  - `transaction_limits` (object, required)
    Transaction limits for the card. Multiple transaction limits can be configured based on single currency. Each transaction will be checked against the limits with interval after currency conversion rate applied.
    - `limits` (array[object], required)
      Transaction limits are based on interval and amount.

      If the per transaction limit is not set, the default per transaction limit amount for the selected limit currency will be used. The default per transaction amount is part of account settings. To change the default per transaction limit, please reach out to your account manager.

      The account holder may be liable for any unauthorised spending on the card, so please apply limits responsibly.
      - `amount` (number, required)
        Transaction limit amount. This field is mandatory and must be greater than 0. Customer can set perTransaction limit up to a maximum amount (The maximum amount is part of account setting).
      - `interval` (string, required)
        Transaction limit interval. This field is mandatory and must be one of: `PER_TRANSACTION`, `DAILY`, `WEEKLY`, `MONTHLY`, `ALL_TIME`.
    - `cash_withdrawal_limits` (array[object], optional)
      Cash withdrawal transaction limits are based on interval and amount.

      If the daily limit is not set, the default daily limit amount for the selected limit currency will be used. The default daily limit amount is part of the account setting. To change the default daily limit amount, please reach out to your account manager.

      Please note that the cash withdrawal transaction limits apply exclusively to cash withdrawals and are imposed to help manage potential liability for the account holder and for Airwallex. The account holder may be liable for any unauthorised spending on the card, so please apply the limits responsibly.

      **Important**: This limit will only appear if you have cash withdrawals enabled. Please speak to your account manager if you would like to enable cash withdrawals.
      - `amount` (number, required)
        Transaction limit amount. This field is mandatory and must be greater than 0. Customer can set perTransaction limit up to a maximum amount (The maximum amount is part of account setting).
      - `interval` (string, required)
        Transaction limit interval. This field is mandatory and must be one of: `PER_TRANSACTION`, `DAILY`, `WEEKLY`, `MONTHLY`, `ALL_TIME`.
    - `currency` (string, optional)
      Currency for transaction limits (3-letter ISO-4217 code). Will use USD if not set. Examples of valid base currencies are USD, AUD, GBP, EUR, CNY, HKD, SGD, NZD, JPY, CAD, CHF. More currencies may be available for your account: you may query the full list by calling the [Get issuing config](https://www.airwallex.com/docs/api/issuing/config/retrieve.md) endpoint.
  - `active_from` (string, optional)
    If provided, authorizations prior to this time will be rejected.
  - `active_to` (string, optional)
    If provided, authorizations after this time will be rejected.
  - `allowed_currencies` (array[string], optional)
    Allowed Currencies for transactions. Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then all transaction currencies will be allowed.
  - `allowed_merchant_brands` (object, optional)
    Allowed Merchant Brands rules for transactions. Please note if this field is absent from request payload, then transactions from all merchant brands will be allowed.
    - `categories` (array[string], optional)
      Allowed Merchant Brands Categories for transactions. These must be provided using the codes defined in the [Merchant Brands Controls product page](https://www.airwallex.com/docs/issuing/card-controls/authorization-controls/merchant-brand-transaction-categories.md). Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then transactions from all merchant brand categories will be allowed.
    - `ids` (array[string (format: uuid)], optional)
      Allowed Merchant Brand identifiers for transactions. Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then transactions from all merchant brand ids will be allowed. You can search for Merchant Brands ids using the [Merchant Brands API](https://www.airwallex.com/docs/api/issuing/merchant_brands/retrieve.md).
    - `subcategories` (array[string], optional)
      Allowed Merchant Brands Subcategories for transactions. These must be provided using the codes defined in the [Merchant Brands Controls product page](https://www.airwallex.com/docs/issuing/card-controls/authorization-controls/merchant-brand-transaction-categories.md). Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then transactions from all merchant brand subcategories will be allowed.
  - `allowed_merchant_categories` (array[string], optional)
    Allowed Merchant Category Codes. Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then all merchant categories will be allowed.
  - `allowed_merchant_countries` (array[string], optional)
    Allowed Merchant Countries for transactions. Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then transactions from all merchant countries will be allowed (although some may still be blocked by our risk team).
  - `blocked_transaction_usages` (array[object], optional)
    List of disabled transaction usages, based on transaction_scope and usage_scope values. Please note if this field is absent from request payload or has a value of `null`, then all transaction usages will be allowed unless a default configration is added.

    You can add multiple transaction_scope and usage_scope values. The most restrictive scope(s) would apply.
    - `transaction_scope` (string, optional)
      Types of transaction scope. It can be one of: `ALL_TRANSACTIONS`, `ONLINE_TRANSACTION`, `CONTACTLESS_TRANSACTION`, `CONTACT_CHIP_TRANSACTION`, `MAGSTRIPE`, `CASH_WITHDRAWAL`, `BILL_PAYMENT`, `ACCOUNT_FUNDING`.
    - `usage_scope` (string, optional)
      Determines if a transaction can be made domestically and/or internationally. It can be one of: `ALL`, `INTERNATIONAL`, `DOMESTIC`.
- `cardholder_id` (string, format: uuid, required)
  The unique identifier of the cardholder to associate this card with.
- `created_by` (string, required)
  Full legal name of user requesting new card.
- `form_factor` (string, required)
  Form of the card - `PHYSICAL` or `VIRTUAL`.
- `is_personalized` (boolean, required)
  Determines whether the card should be assigned to a singular individual or to the business with multiple cardholders who are authorized to use the card. Note - only personalized cards can be created as physical and added to digital wallet providers.
- `program` (object, required)
  Card program.
  - `purpose` (string, required)
    `COMMERCIAL`: A card used for business purposes backed by funding belonging to a business.
    `CONSUMER`: A card used for personal purposes backed by funding belonging to an individual.
  - `bin` (string, optional)
    Optional 6- or 8-digit network BIN. If provided, the requested BIN is used only if it is active, mapped to your program, and compatible with the card. Otherwise, the request is rejected with an `ineligible_bin` error. If omitted, Airwallex selects an eligible BIN automatically. Values that are not 6 or 8 digits return `invalid_bin_format`. This field is available only to accounts enabled for BIN selection. Contact your Airwallex Account Manager to request access.
  - `card_profile_id` (string, format: uuid, optional)
    Unique identifier of the card profile to use when creating the card. Card profiles are configured per account and define the card program, card art, and other defaults and limits for a specific card offering. If provided, the card's program and card art are resolved from this profile. If omitted, the card is resolved using the other program fields as usual.
  - `interchange_percent` (string, optional)
    Interchange percent of the card - This is only available for `sub_type="B2B_TRAVEL"` cards. Interchange can vary from 0.8 to 1.9, with increments of 0.1.
  - `sub_type` (string, optional)
    Sub type of the program - This is used for specific products under the defined program types. e.g `B2B_TRAVEL` which designates BINs for travel use cases (E.g OTAs).
  - `type` (string, optional)
    Card type - `PREPAID`, `DEBIT`, `CREDIT` or `DEFERRED_DEBIT`. `DEFERRED_DEBIT` is Deferred Debit card available for OTA (Online Travel Agent) customers only in UK/Europe countries. If card type is not set, the default card type which is a part of your account setting will be used.
- `request_id` (string, required)
  A unique request identifier specified by the client.  Requests with the same request_id will be ignored.  This allows requests to be replayed if client is unsure of the outcome, e.g. due to network issues, system failures, etc.  Note: Can be non-UUID as long as it is unique between requests.
- `activate_on_issue` (boolean, optional)
  Set this to `true` to activate the physical card when it is created. This will enable use of the card while it’s being delivered to the cardholder. Virtual cards will always be activated upon creation.
- `additional_cardholder_ids` (array[string (format: uuid)], optional)
  The IDs of additional cardholders to associate this card with. Only valid if `is_personalized` is `false`.
- `alert_settings` (object, optional)
  Contains alert configuration settings for the card.
  - `low_remaining_transaction_limit` (object, optional)
    Configures an alert for when the remaining spending limit dips below a specified percentage. When enabled, a webhook notification will be triggered if the remaining limit falls below the defined threshold. Note that:

    - Only one notification per spend limit interval will be sent. A webhook is triggered only when the threshold is crossed, and further spending below the threshold will not trigger additional notifications. Example: if the percent enabled is 10, a webhook will be sent once the remaining limit is at or less than 10%.
    - If the spend limit has been updated, a new notification will be sent when the new threshold is crossed.
    - This alert only applies to multiple use cards.
    - If not specified, this setting will be enabled by default with ``enabled`` set to ``true`` and ``percent`` set to an account specific default value.
    - `enabled` (boolean, required)
      Indicates whether the alert is active.
    - `percent` (integer, format: int32, required)
      Specifies the percentage threshold for the alert.
- `auto_close_date` (string, format: date, optional)
  If provided, the card is automatically closed at the start of the specified day (00:00 GMT). The date must be in the format YYYY-MM-DD and must be at least 1 day and no more than 5 years after the card is created. If not provided, the card is not automatically closed and follows the standard expiry and reissue behavior.
- `brand` (string, optional)
  Scheme for Issuance. Default `VISA`.
- `client_data` (string, optional)
  Client data which will be stored against the card record in Airwallex.
- `delivery_details` (object, optional)
  Delivery detail of the card. Only available for physical cards.
  - `mobile_number` (string, optional)
    Optional mobile number for physical card delivery in E.164 format (e.g., +6512345678). Defaults to the cardholder's registered number if not provided. Required for EXPRESS delivery or when the destination country is China.
  - `preferred_delivery_mode` (string, optional)
    Customizable options that customers can specify for physical card delivery. The requested delivery mode will be provided on a best-effort basis. `MAIL`: Delivery of the card is delivered via mail shipment. `EXPRESS`: Delivery of the card is tracked and delivered via express shipment.
- `funding_source_id` (string, format: uuid, optional)
  A unique identifier that links a card to its designated funding source. This unique identifier determines which funding source will be accessed for the deduction of funds during transactions. The `funding_source_id` can be retrieved from the client's account manager. If `funding_source_id` is not provided, the default funding source would be the account's wallet.
- `metadata` (object, optional)
  A set of key-value pairs that can be attached to the Card. You can specify up to 20 keys, with key names up to 20 characters long and values up to 150 characters long.
- `nick_name` (string, optional)
  A nick name for the card.
- `note` (string, optional)
  Notes that are to be stored against the card request (for client reference).
- `postal_address` (object, optional)
  Optional postal address of physical card delivery. The card will be issued to the cardholder's postal address if this value is not set. The cardholder's address will be used instead if cardholder's postal address does not exist.
  - `city` (string, required)
    City of address.
  - `country` (string, required)
    ISO country code of address.
  - `line1` (string, required)
    Address line 1.
  - `postcode` (string, required)
    Address postcode or ZIP code.
  - `line2` (string, optional)
    Address line 2.
  - `state` (string, optional)
    Address state or region.
- `purpose` (string, optional)
  Optional purpose for card's usage when card `issueTo` is `ORGANISATION`. Can be one of - `BUSINESS_EXPENSES`, `CLIENT_EXPENSES`, `MARKETING_EXPENSES`, `OFFICE_SUPPLIES`, `ONLINE_PURCHASING`, `OTHER`, `SUBSCRIPTIONS`, `TEAM_EXPENSES`, `TRAVEL_EXPENSES`. Default value is `BUSINESS_EXPENSES`.

## cURL example

```bash
curl --request POST \
  --url 'https://api.sandbox.airwallex.com/api/v1/issuing/cards/create' \
  --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
  --header 'Content-Type: application/json' \
  --data '{
  "activate_on_issue": false,
  "additional_cardholder_ids": [
    "7f687fe6-dcf4-4462-92fa-80335301d9d2",
    "b0a1b145-4853-4456-b4b3-d690c7f3535c"
  ],
  "auto_close_date": "2027-01-31",
  "alert_settings": {
    "low_remaining_transaction_limit": {
      "enabled": false,
      "percent": 10
    }
  },
  "authorization_controls": {
    "active_from": "2018-10-31T00:00:00+0000",
    "active_to": "2018-10-31T00:00:00+0000",
    "allowed_currencies": [
      "USD",
      "AUD"
    ],
    "allowed_merchant_brands": {
      "categories": [
        "10000",
        "16000"
      ],
      "ids": [
        "245e5003-58ec-540c-89a0-e148e54c2518"
      ],
      "subcategories": [
        "10001",
        "16003"
      ]
    },
    "allowed_merchant_categories": [
      "7531",
      "7534"
    ],
    "allowed_merchant_countries": [
      "US",
      "AU"
    ],
    "allowed_transaction_count": "SINGLE",
    "blocked_transaction_usages": [
      {
        "transaction_scope": "MAGSTRIPE",
        "usage_scope": "INTERNATIONAL"
      },
      {
        "transaction_scope": "ONLINE_TRANSACTION",
        "usage_scope": "ALL"
      }
    ],
    "transaction_limits": {
      "cash_withdrawal_limits": [
        {
          "amount": 1000,
          "interval": "PER_TRANSACTION"
        }
      ],
      "currency": "USD",
      "limits": [
        {
          "amount": 1000,
          "interval": "PER_TRANSACTION"
        }
      ]
    }
  },
  "brand": "VISA",
  "cardholder_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",
  "client_data": "20190817_dfelsflkj73494lksdfg9480ww",
  "created_by": "John Smith",
  "delivery_details": {
    "mobile_number": "+6512345678",
    "preferred_delivery_mode": "MAIL"
  },
  "form_factor": "VIRTUAL",
  "funding_source_id": "6682111f-cb4a-47ce-8e95-5abcc5394727",
  "is_personalized": true,
  "metadata": {
    "key1": "value1",
    "key2": "value2"
  },
  "nick_name": "travelling",
  "note": "This is my first card.",
  "postal_address": {
    "city": "Melbourne",
    "country": "AU",
    "line1": "44 Gillespie St",
    "line2": "Unit 2",
    "postcode": "3121",
    "state": "VIC"
  },
  "program": {
    "interchange_percent": "1.0",
    "purpose": "COMMERCIAL",
    "sub_type": "GOOD_FUNDS_CREDIT",
    "type": "PREPAID"
  },
  "purpose": "<string>",
  "request_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2"
}'
```

## Response

### 202 Accepted

**Example:**

```json
{
  "activate_on_issue": false,
  "additional_cardholder_ids": [
    "7f687fe6-dcf4-4462-92fa-80335301d9d2",
    "b0a1b145-4853-4456-b4b3-d690c7f3535c"
  ],
  "auto_close_date": "2027-01-31",
  "alert_settings": {
    "low_remaining_transaction_limit": {
      "enabled": false,
      "percent": 10
    }
  },
  "all_card_versions": [
    {
      "card_number": "************4111",
      "card_status": "ACTIVE",
      "card_version": 1,
      "created_at": "2024-01-09T00:00:00+0000"
    }
  ],
  "authorization_controls": {
    "active_from": "2018-10-31T00:00:00+0000",
    "active_to": "2018-10-31T00:00:00+0000",
    "allowed_currencies": [
      "USD",
      "AUD"
    ],
    "allowed_merchant_brands": {
      "categories": [
        "10000",
        "16000"
      ],
      "ids": [
        "245e5003-58ec-540c-89a0-e148e54c2518"
      ],
      "subcategories": [
        "10001",
        "16003"
      ]
    },
    "allowed_merchant_categories": [
      "7531",
      "7534"
    ],
    "allowed_merchant_countries": [
      "US",
      "AU"
    ],
    "allowed_transaction_count": "SINGLE",
    "blocked_transaction_usages": [
      {
        "transaction_scope": "MAGSTRIPE",
        "usage_scope": "INTERNATIONAL"
      },
      {
        "transaction_scope": "ONLINE_TRANSACTION",
        "usage_scope": "ALL"
      }
    ],
    "transaction_limits": {
      "cash_withdrawal_limits": [
        {
          "amount": 1000,
          "interval": "PER_TRANSACTION"
        }
      ],
      "currency": "USD",
      "limits": [
        {
          "amount": 1000,
          "interval": "PER_TRANSACTION"
        }
      ]
    }
  },
  "brand": "visa",
  "card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",
  "card_number": "************4111",
  "card_status": "ACTIVE",
  "card_version": 1,
  "cardholder_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",
  "client_data": "20190817_dfelsflkj73494lksdfg9480ww",
  "created_at": "2024-01-09T00:00:00+0000",
  "created_by": "<string>",
  "delivery_details": {
    "delivery_mode": "MAIL",
    "delivery_vendor": "DHL",
    "mobile_number": "+6512345678",
    "preferred_delivery_mode": "MAIL",
    "status": "DISPATCHED",
    "status_description": "The card has been printed.",
    "tracked": true,
    "tracking_link": "https://www.dhl.com/global-en/home/tracking/tracking-parcel.html?submit=1&tracking-id=ABCD1234",
    "tracking_number": "ABCD1234",
    "updated_at": "2024-01-09T00:00:00+0000"
  },
  "form_factor": "VIRTUAL",
  "funding_source_id": "6682111f-cb4a-47ce-8e95-5abcc5394727",
  "is_personalized": true,
  "issue_to": "ORGANISATION",
  "metadata": {
    "key1": "value1",
    "key2": "value2"
  },
  "name_on_card": "John Smith",
  "nick_name": "travelling",
  "note": "This is my first card.",
  "postal_address": {
    "city": "Melbourne",
    "country": "AU",
    "line1": "44 Gillespie St",
    "line2": "Unit 2",
    "postcode": "3121",
    "state": "VIC"
  },
  "primary_contact_details": {
    "email": "john@example.com",
    "full_name": "John Smith",
    "mobile_number": "619922334321"
  },
  "program": {
    "interchange_percent": "1.0",
    "purpose": "COMMERCIAL",
    "sub_type": "GOOD_FUNDS_CREDIT",
    "type": "PREPAID"
  },
  "purpose": "BUSINESS_EXPENSES",
  "request_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",
  "updated_at": "2024-01-09T00:00:00+0000"
}
```

- `activate_on_issue` (boolean, optional)
  Set this to `true` to activate the physical card when it is created. This will enable use of the card while it’s being delivered to the cardholder. Virtual cards will always be activated upon creation.
- `additional_cardholder_ids` (array[string (format: uuid)], optional)
  The ID of additional cardholders of this card. Only valid if `is_personalized` is `false`.
- `alert_settings` (object, optional)
  Contains alert configuration settings for the card.
  - `low_remaining_transaction_limit` (object, optional)
    Configures an alert for when the remaining spending limit dips below a specified percentage. When enabled, a webhook notification will be triggered if the remaining limit falls below the defined threshold. Note that:

    - Only one notification per spend limit interval will be sent. A webhook is triggered only when the threshold is crossed, and further spending below the threshold will not trigger additional notifications. Example: if the percent enabled is 10, a webhook will be sent once the remaining limit is at or less than 10%.
    - If the spend limit has been updated, a new notification will be sent when the new threshold is crossed.
    - This alert only applies to multiple use cards.
    - If not specified, this setting will be enabled by default with ``enabled`` set to ``true`` and ``percent`` set to an account specific default value.
    - `enabled` (boolean, required)
      Indicates whether the alert is active.
    - `percent` (integer, format: int32, required)
      Specifies the percentage threshold for the alert.
- `all_card_versions` (array[object], optional)
  Contains information about all versions of a card. A version changes with change in PAN.
  - `card_number` (string, optional)
    Masked card number of this version.
  - `card_status` (string, optional)
    Card status of this version. See [Card Status](https://www.airwallex.com/docs/issuing/get-started/create-cards/card-statuses.md) for definitions.
    Possible values:
    - `PENDING`
    - `FAILED`
    - `INACTIVE`
    - `ACTIVE`
    - `LOST`
    - `STOLEN`
    - `CLOSED`
    - `BLOCKED`
    - `EXPIRED`
    - `UNKNOWN`
  - `card_version` (integer, format: int32, optional)
    Version Id which uniquely identifies this card version object.
  - `created_at` (string, format: date-time, optional)
    Creation time of the card version.
- `authorization_controls` (object, optional)
  Spend controls that determine the rules and restrictions to check for transaction authorizations.
  - `allowed_transaction_count` (string, required)
    Specifies whether this card is a Single or Multiple Use card. Single Use means that the card can only be used for 1 successful debit transaction.
    Possible values:
    - `SINGLE`
    - `MULTIPLE`
  - `transaction_limits` (object, required)
    Transaction limits for the card. Multiple transaction limits can be configured based on single currency. Each transaction will be checked against the limits with interval after currency conversion rate applied.
    - `limits` (array[object], required)
      Transaction limits are based on interval and amount.

      If the per transaction limit is not set, the default per transaction limit amount for the selected limit currency will be used. The default per transaction amount is part of account settings. To change the default per transaction limit, please reach out to your account manager.

      The account holder may be liable for any unauthorised spending on the card, so please apply limits responsibly.
      - `amount` (number, required)
        Transaction limit amount. This field is mandatory and must be greater than 0. Customer can set perTransaction limit up to a maximum amount (The maximum amount is part of account setting).
      - `interval` (string, required)
        Transaction limit interval. This field is mandatory and must be one of: `PER_TRANSACTION`, `DAILY`, `WEEKLY`, `MONTHLY`, `ALL_TIME`.
    - `cash_withdrawal_limits` (array[object], optional)
      Cash withdrawal transaction limits are based on interval and amount.

      If the daily limit is not set, the default daily limit amount for the selected limit currency will be used. The default daily limit amount is part of the account setting. To change the default daily limit amount, please reach out to your account manager.

      Please note that the cash withdrawal transaction limits apply exclusively to cash withdrawals and are imposed to help manage potential liability for the account holder and for Airwallex. The account holder may be liable for any unauthorised spending on the card, so please apply the limits responsibly.

      **Important**: This limit will only appear if you have cash withdrawals enabled. Please speak to your account manager if you would like to enable cash withdrawals.
      - `amount` (number, required)
        Transaction limit amount. This field is mandatory and must be greater than 0. Customer can set perTransaction limit up to a maximum amount (The maximum amount is part of account setting).
      - `interval` (string, required)
        Transaction limit interval. This field is mandatory and must be one of: `PER_TRANSACTION`, `DAILY`, `WEEKLY`, `MONTHLY`, `ALL_TIME`.
    - `currency` (string, optional)
      Currency for transaction limits (3-letter ISO-4217 code). Will use USD if not set. Examples of valid base currencies are USD, AUD, GBP, EUR, CNY, HKD, SGD, NZD, JPY, CAD, CHF. More currencies may be available for your account: you may query the full list by calling the [Get issuing config](https://www.airwallex.com/docs/api/issuing/config/retrieve.md) endpoint.
  - `active_from` (string, optional)
    If provided, authorizations prior to this time will be rejected.
  - `active_to` (string, optional)
    If provided, authorizations after this time will be rejected.
  - `allowed_currencies` (array[string], optional)
    Allowed Currencies for transactions. Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then all transaction currencies will be allowed.
  - `allowed_merchant_brands` (object, optional)
    Allowed Merchant Brands rules for transactions. Please note if this field is absent from request payload, then transactions from all merchant brands will be allowed.
    - `categories` (array[string], optional)
      Allowed Merchant Brands Categories for transactions. These must be provided using the codes defined in the [Merchant Brands Controls product page](https://www.airwallex.com/docs/issuing/card-controls/authorization-controls/merchant-brand-transaction-categories.md). Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then transactions from all merchant brand categories will be allowed.
    - `ids` (array[string (format: uuid)], optional)
      Allowed Merchant Brand identifiers for transactions. Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then transactions from all merchant brand ids will be allowed. You can search for Merchant Brands ids using the [Merchant Brands API](https://www.airwallex.com/docs/api/issuing/merchant_brands/retrieve.md).
    - `subcategories` (array[string], optional)
      Allowed Merchant Brands Subcategories for transactions. These must be provided using the codes defined in the [Merchant Brands Controls product page](https://www.airwallex.com/docs/issuing/card-controls/authorization-controls/merchant-brand-transaction-categories.md). Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then transactions from all merchant brand subcategories will be allowed.
  - `allowed_merchant_categories` (array[string], optional)
    Allowed Merchant Category Codes. Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then all merchant categories will be allowed.
  - `allowed_merchant_countries` (array[string], optional)
    Allowed Merchant Countries for transactions. Please note if this field is absent from request payload, or has a value of `null` or empty array `[]`, then transactions from all merchant countries will be allowed (although some may still be blocked by our risk team).
  - `blocked_transaction_usages` (array[object], optional)
    List of disabled transaction usages, based on transaction_scope and usage_scope values. Please note if this field is absent from request payload or has a value of `null`, then all transaction usages will be allowed unless a default configration is added.

    You can add multiple transaction_scope and usage_scope values. The most restrictive scope(s) would apply.
    - `transaction_scope` (string, optional)
      Types of transaction scope. It can be one of: `ALL_TRANSACTIONS`, `ONLINE_TRANSACTION`, `CONTACTLESS_TRANSACTION`, `CONTACT_CHIP_TRANSACTION`, `MAGSTRIPE`, `CASH_WITHDRAWAL`, `BILL_PAYMENT`, `ACCOUNT_FUNDING`.
    - `usage_scope` (string, optional)
      Determines if a transaction can be made domestically and/or internationally. It can be one of: `ALL`, `INTERNATIONAL`, `DOMESTIC`.
- `auto_close_date` (string, format: date, optional)
  The date on which the card is automatically closed, at the start of that day (00:00 GMT). The date is in the format YYYY-MM-DD. Returns `null` if no automatic closure is scheduled.
- `brand` (string, optional)
  Card Brand.
- `card_id` (string, format: uuid, optional)
  Unique Identifier for the card.
- `card_number` (string, optional)
  Masked card number.
- `card_status` (string, optional)
  Current card status. See [Card Status](https://www.airwallex.com/docs/issuing/get-started/create-cards/card-statuses.md) for definitions.
  Possible values:
  - `PENDING`
  - `FAILED`
  - `INACTIVE`
  - `ACTIVE`
  - `LOST`
  - `STOLEN`
  - `CLOSED`
  - `BLOCKED`
  - `EXPIRED`
  - `UNKNOWN`
- `card_version` (integer, format: int32, optional)
  Current version of the card.
- `cardholder_id` (string, format: uuid, optional)
  The unique identifier of the cardholder this card is associated with if it is an individual card.
- `client_data` (string, optional)
  Client data which will be stored against the card record in Airwallex.
- `created_at` (string, format: date-time, optional)
  Creation time of the card.
- `created_by` (string, optional)
  The creator of the card.
- `delivery_details` (object, optional)
  Delivery detail of the card. Only available for physical cards.
  - `delivery_mode` (string, optional)
    `MAIL`: Delivery of the card is delivered via mail shipment. Tracking may or may not be provided.
    `EXPRESS`: Delivery of the card is tracked and delivered via express shipment. A tracking_link will always be provided.
    Possible values:
    - `MAIL`
    - `EXPRESS`
    - `UNKNOWN`
  - `delivery_vendor` (string, optional)
    Delivery vendor of this card.
    Possible values:
    - `UNKNOWN`
    - `AU_POST`
    - `EMS`
    - `HK_POST`
    - `CITY_LINK`
    - `DHL`
    - `CN_POST`
    - `PL_POST`
    - `USPS`
    - `FEDEX`
  - `mobile_number` (string, optional)
    The mobile number for the card delivery.
  - `preferred_delivery_mode` (string, optional)
    The delivery mode customer selected when the Create Card API is called.
    Possible values:
    - `MAIL`
    - `EXPRESS`
    - `UNKNOWN`
  - `status` (string, optional)
    See [Delivery Status](https://www.airwallex.com/docs/issuing/manage-cards/retrieve-physical-card-delivery-details.md) for definitions.
    Possible values:
    - `PENDING`
    - `PRINTED`
    - `FAILED_TO_PRINT`
    - `DISPATCHED`
    - `IN_TRANSIT`
    - `OUT_FOR_DELIVERY`
    - `DELIVERED`
    - `DELIVERY_FAILED`
    - `DELIVERY_DELAYED`
    - `UNKNOWN`
  - `status_description` (string, optional)
    A brief description of the status.
  - `tracked` (boolean, optional)
    Specifies if the delivery of the card is tracked. If `true`, a tracking link will be provided when status becomes `DISPATCHED`.
  - `tracking_link` (string, optional)
    Tracking link of the card.
  - `tracking_number` (string, optional)
    Delivery tracking number of this card.
  - `updated_at` (string, format: date-time, optional)
    Last update time of the delivery details.
- `form_factor` (string, optional)
  Form of the card.
  Possible values:
  - `PHYSICAL`
  - `VIRTUAL`
- `funding_source_id` (string, format: uuid, optional)
  A unique identifier that links a card to its designated funding source. This unique identifier determines which funding source will be accessed for the deduction of funds during transactions. The `funding_source_id` can be retrieved from the client's account manager. If `funding_source_id` is not provided, the default funding source would be the account's wallet.
- `is_personalized` (boolean, optional)
  Determines whether the card should be assigned to a singular individual or to the business with multiple cardholders who are authorized to use the card. Note - only personalized cards can be created as physical and added to digital wallet providers.
- `metadata` (object, optional)
  A set of key-value pairs that can be attached to the Card. You can specify up to 20 keys, with key names up to 20 characters long and values up to 150 characters long.
- `name_on_card` (string, optional)
  Name to be printed on card.
- `nick_name` (string, optional)
  A nick name for the card.
- `note` (string, optional)
  Notes that are to be stored against the card request (for client reference).
- `postal_address` (object, optional)
  Optional postal address of physical card delivery.
  - `city` (string, required)
    City of address.
  - `country` (string, required)
    ISO country code of address.
  - `line1` (string, required)
    Address line 1.
  - `postcode` (string, required)
    Address postcode or ZIP code.
  - `line2` (string, optional)
    Address line 2.
  - `state` (string, optional)
    Address state or region.
- `primary_contact_details` (object, optional)
  Details of the primary contact of the card.
  - `email` (string, optional)
    The email address of the primary contact of the new card.
  - `full_name` (string, optional)
    Full name of the primary contact of the new card.
  - `mobile_number` (string, optional)
    The mobile number of the primary contact of the new card.
- `program` (object, optional)
  Card program.
  - `card_profile_id` (string, format: uuid, optional)
    Unique identifier of the card profile used to create this card, if one was applied. When `card_profile_id` is supplied in the Create Card request, the card's program and card art are resolved from that profile.
  - `interchange_percent` (string, optional)
    Interchange percent of the card - This is only available for `sub_type="B2B_TRAVEL"` cards. Interchange can vary from 0.8 to 1.9, with increments of 0.1.
  - `purpose` (string, optional)
    Possible values:
    - `CONSUMER` — A card used for personal purposes backed by funding belonging to an individual.
    - `COMMERCIAL` — A card used for business purposes backed by funding belonging to a business.
  - `sub_type` (string, optional)
    Sub type of the program - This is used for specific products under the defined program types. e.g `B2B_TRAVEL` which designates BINs for travel use cases (E.g OTAs).
    Possible values:
    - `GOOD_FUNDS_CREDIT`
    - `B2B_TRAVEL`
    - `UNKNOWN`
  - `type` (string, optional)
    Card type - `PREPAID`, `DEBIT`, `CREDIT` or `DEFERRED_DEBIT`. `DEFERRED_DEBIT` is Deferred Debit card available for OTA (Online Travel Agent) customers only in UK/Europe countries. If card type is not set, the default card type which is a part of your account setting will be used.
    Possible values:
    - `UNKNOWN`
    - `DEBIT`
    - `PREPAID`
    - `CREDIT`
    - `DEFERRED_DEBIT`
- `purpose` (string, optional)
  The purpose of the card's usage. Only available for expense cards.
  Possible values:
  - `SUBSCRIPTIONS`
  - `OFFICE_SUPPLIES`
  - `MARKETING_EXPENSES`
  - `TRAVEL_EXPENSES`
  - `CLIENT_EXPENSES`
  - `TEAM_EXPENSES`
  - `ONLINE_PURCHASING`
  - `BUSINESS_EXPENSES`
  - `OTHER`
- `request_id` (string, optional)
  A unique request identifier specified by the client. Requests with the same request_id will be ignored. This allows requests to be replayed if client is unsure of the outcome, e.g. due to network issues, system failures, etc.  Note: Can be non-UUID as long as it is unique between requests.
- `updated_at` (string, format: date-time, optional)
  Last update time of the card.

## Errors

### 400 Bad request

Possible errors: `field_required`, `bad_request`, `invalid_argument`, `invalid_bin_format`, `ineligible_bin`, `invalid_card_profile`

### 401 Unauthorized

Possible errors: `credentials_invalid`, `credentials_expired`

### 429 Too many requests

Too many requests

### 500 Server error

Service unavailable
