Cards
You can create virtual cards associated with your organisation, these cards can be single or multi-usage and be restricted by merchant code, currency and transaction amount.
Please note, this API version is incompatible with any Airwallex Business Account Products such as "Borderless Cards" or "Expense Management" via Airwallex web or mobile applications. If you're using any of these products, please use API version 2024-02-22. Contact your account manager for more information and to verify compatibility.
POST /api/v1/issuing/cards/createGET /api/v1/issuing/cardsGET /api/v1/issuing/cards/{id}/detailsGET /api/v1/issuing/cards/{id}POST /api/v1/issuing/cards/{id}/activatePOST /api/v1/issuing/cards/{id}/provision_digital_tokenGET /api/v1/issuing/cards/{id}/limitsPOST /api/v1/issuing/cards/{id}/update
Create a card
POST /api/v1/issuing/cards/create
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).
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.
The IDs of additional cardholders to associate this card with. Only valid if is_personalized is false.
Contains alert configuration settings for the card.
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
enabledset totrueandpercentset to an account specific default value.
Indicates whether the alert is active.
Specifies the percentage threshold for the alert.
Scheme for Issuance. Default VISA.
The unique identifier of the cardholder to associate this card with.
Client data which will be stored against the card record in Airwallex.
Full legal name of user requesting new card
Delivery detail of the card. Only available for physical cards.
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.
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.
Form of the card - PHYSICAL or VIRTUAL
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.
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.
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.
A nick name for the card
Notes that are to be stored against the card request (for client reference)
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 of address
ISO country code of address
Address line 1
Address line 2
Address postcode or ZIP code
Address state or region
Card program
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.
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.
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).
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.
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.
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
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.
The ID of additional cardholders of this card. Only valid if is_personalized is false.
Contains alert configuration settings for the card.
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
enabledset totrueandpercentset to an account specific default value.
Indicates whether the alert is active.
Specifies the percentage threshold for the alert.
Contains information about all versions of a card. A version changes with change in PAN
Masked card number of this version
Card status of this version. See Card Status for definitions.
PENDING, FAILED, INACTIVE, ACTIVE, LOST, STOLEN, CLOSED, BLOCKED, EXPIRED, UNKNOWN
Version Id which uniquely identifies this card version object
Creation time of the card version.
Card Brand
Unique Identifier for card
Masked card number
Current card status. See Card Status for definitions.
PENDING, FAILED, INACTIVE, ACTIVE, LOST, STOLEN, CLOSED, BLOCKED, EXPIRED, UNKNOWN
Current version of the card
The unique identifier of the cardholder this card is associated with if it is an individual card.
Client data which will be stored against the card record in Airwallex.
Creation time of the card.
The creator of the card
Delivery detail of the card. Only available for physical cards.
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.
MAIL, EXPRESS, UNKNOWN
Delivery vendor of this card.
UNKNOWN, AU_POST, EMS, HK_POST, CITY_LINK, DHL, CN_POST, PL_POST, USPS, FEDEX
The mobile number for the card delivery.
The delivery mode customer selected when the Create Card API is called.
MAIL, EXPRESS, UNKNOWN
See Delivery Status for definitions.
PENDING, PRINTED, FAILED_TO_PRINT, DISPATCHED, IN_TRANSIT, OUT_FOR_DELIVERY, DELIVERED, DELIVERY_FAILED, DELIVERY_DELAYED, UNKNOWN
A brief description of the status
Specifies if the delivery of the card is tracked. If true, a tracking link will be provided when status becomes DISPATCHED
Tracking link of the card.
Delivery tracking number of this card.
Last update time of the delivery details
Form of the card - PHYSICAL or VIRTUAL
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.
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.
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 to be printed on card.
A nick name for the card
Notes that are to be stored against the card request (for client reference)
Optional postal address of physical card delivery.
City of address
ISO country code of address
Address line 1
Address line 2
Address postcode or ZIP code
Address state or region
Details of the primary contact of the card
The email address of the primary contact of the new card.
Full name of the primary contact of the new card.
The mobile number of the primary contact of the new card.
Card program
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.
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.
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).
GOOD_FUNDS_CREDIT, B2B_TRAVEL, UNKNOWN
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.
UNKNOWN, DEBIT, PREPAID, CREDIT, DEFERRED_DEBIT
The purpose of the card's usage. Only available for expense cards.
SUBSCRIPTIONS, OFFICE_SUPPLIES, MARKETING_EXPENSES, TRAVEL_EXPENSES, CLIENT_EXPENSES, TEAM_EXPENSES, ONLINE_PURCHASING, BUSINESS_EXPENSES, OTHER
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
Last update time of the card.
| Error status | Description |
|---|---|
| 400 | Possible errors: |
| 401 | Possible errors: |
| 429 | Too many requests |
| 500 | Service unavailable |
$curl --request POST \> --url 'https://api-demo.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"> ],> "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">}'
1{2 "activate_on_issue": false,3 "additional_cardholder_ids": [4 "7f687fe6-dcf4-4462-92fa-80335301d9d2",5 "b0a1b145-4853-4456-b4b3-d690c7f3535c"6 ],7 "alert_settings": {8 "low_remaining_transaction_limit": {9 "enabled": false,10 "percent": 1011 }12 },13 "all_card_versions": [14 {15 "card_number": "************4111",16 "card_status": "ACTIVE",17 "card_version": 1,18 "created_at": "2024-01-09T00:00:00+0000"19 }20 ],21 "authorization_controls": {22 "active_from": "2018-10-31T00:00:00+0000",23 "active_to": "2018-10-31T00:00:00+0000",24 "allowed_currencies": [25 "USD",26 "AUD"27 ],28 "allowed_merchant_brands": {29 "categories": [30 "10000",31 "16000"32 ],33 "ids": [34 "245e5003-58ec-540c-89a0-e148e54c2518"35 ],36 "subcategories": [37 "10001",38 "16003"39 ]40 },41 "allowed_merchant_categories": [42 "7531",43 "7534"44 ],45 "allowed_merchant_countries": [46 "US",47 "AU"48 ],49 "allowed_transaction_count": "SINGLE",50 "blocked_transaction_usages": [51 {52 "transaction_scope": "MAGSTRIPE",53 "usage_scope": "INTERNATIONAL"54 },55 {56 "transaction_scope": "ONLINE_TRANSACTION",57 "usage_scope": "ALL"58 }59 ],60 "transaction_limits": {61 "cash_withdrawal_limits": [62 {63 "amount": 1000,64 "interval": "PER_TRANSACTION"65 }66 ],67 "currency": "USD",68 "limits": [69 {70 "amount": 1000,71 "interval": "PER_TRANSACTION"72 }73 ]74 }75 },76 "brand": "visa",77 "card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",78 "card_number": "************4111",79 "card_status": "ACTIVE",80 "card_version": 1,81 "cardholder_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",82 "client_data": "20190817_dfelsflkj73494lksdfg9480ww",83 "created_at": "2024-01-09T00:00:00+0000",84 "created_by": "<string>",85 "delivery_details": {86 "delivery_mode": "MAIL",87 "delivery_vendor": "DHL",88 "mobile_number": "+6512345678",89 "preferred_delivery_mode": "MAIL",90 "status": "DISPATCHED",91 "status_description": "The card has been printed.",92 "tracked": true,93 "tracking_link": "https://www.dhl.com/global-en/home/tracking/tracking-parcel.html?submit=1&tracking-id=ABCD1234",94 "tracking_number": "ABCD1234",95 "updated_at": "2024-01-09T00:00:00+0000"96 },97 "form_factor": "VIRTUAL",98 "funding_source_id": "6682111f-cb4a-47ce-8e95-5abcc5394727",99 "is_personalized": true,100 "issue_to": "ORGANISATION",101 "metadata": {102 "key1": "value1",103 "key2": "value2"104 },105 "name_on_card": "John Smith",106 "nick_name": "travelling",107 "note": "This is my first card.",108 "postal_address": {109 "city": "Melbourne",110 "country": "AU",111 "line1": "44 Gillespie St",112 "line2": "Unit 2",113 "postcode": "3121",114 "state": "VIC"115 },116 "primary_contact_details": {117 "email": "[email protected]",118 "full_name": "John Smith",119 "mobile_number": "619922334321"120 },121 "program": {122 "interchange_percent": "1.0",123 "purpose": "COMMERCIAL",124 "sub_type": "GOOD_FUNDS_CREDIT",125 "type": "PREPAID"126 },127 "purpose": "BUSINESS_EXPENSES",128 "request_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",129 "updated_at": "2024-01-09T00:00:00+0000"130}
Get all cards
GET /api/v1/issuing/cards
Get cards issued under an account. Will default to a 30 day period unless both to and from created_at request fields are populated.
Current card status
One of PENDING, FAILED, INACTIVE, ACTIVE, LOST, STOLEN, CLOSED, BLOCKED, EXPIRED
PENDING, FAILED, INACTIVE, ACTIVE, LOST, STOLEN, CLOSED, BLOCKED, EXPIRED, UNKNOWN
The id of the cardholder for the card, if it is an employee card.
Created_from_date in ISO8601 format (inclusive)
Updated_from_date in ISO8601 format (inclusive)
Will be used to return cards whose nickname exactly matches the value of this field.
Page number, starts from 0
Number of results per page, between 10 and 200. The default is 100.
Created_to_date in ISO8601 format (inclusive)
Updated_to_date in ISO8601 format (inclusive)
Unique Identifiers for additional cardholders.
Card Brand
Unique Identifier for card
Masked card number
Current card status, one of:
PENDING, FAILED, INACTIVE, ACTIVE, LOST, STOLEN, CLOSED, BLOCKED, EXPIRED, UNKNOWN
Unique Identifier for cardholder, if this is an employee card.
Date card was created
Nickname on the card.
Last update time of the card.
| Error status | Description |
|---|---|
| 400 | Possible errors: |
| 401 | Possible errors: |
| 429 | Too many requests |
| 500 | Service unavailable |
$curl --request GET \> --url 'https://api-demo.airwallex.com/api/v1/issuing/cards' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json'
1{2 "has_more": false,3 "items": [4 {5 "additional_cardholder_ids": [6 "7f0216e7-0348-4a36-9871-d1ba82c13410",7 "b0a1b145-4853-4456-b4b3-d690c7f3535c"8 ],9 "brand": "visa",10 "card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",11 "card_number": "************4111",12 "card_status": "ACTIVE",13 "cardholder_id": "7f0216e7-0348-4a36-9871-d1ba82c13410",14 "created_at": "2018-10-31T00:00:00+0000",15 "nick_name": "Travel",16 "updated_at": "2024-01-09T00:00:00+0000"17 }18 ]19}
Get sensitive card details
GET /api/v1/issuing/cards/{id}/details
Get sensitive card information for virtual cards. This endpoint will only return data for active cards.
Unique Identifier for card
Card Number
Card Verification Value
Card Expiry Month
Card Expiry Year
Name printed on card
| Error status | Description |
|---|---|
| 400 | Possible errors: |
| 401 | Possible errors: |
| 429 | Too many requests |
| 500 | Service unavailable |
$curl --request GET \> --url 'https://api-demo.airwallex.com/api/v1/issuing/cards/card_id/details' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json'
1{2 "card_number": "4111111111111111",3 "cvv": "123",4 "expiry_month": 1,5 "expiry_year": 2022,6 "name_on_card": "John Smith"7}
Get card details
GET /api/v1/issuing/cards/{id}
Retrieve Card details
Unique Identifier for card
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.
The ID of additional cardholders of this card. Only valid if is_personalized is false.
Contains alert configuration settings for the card.
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
enabledset totrueandpercentset to an account specific default value.
Indicates whether the alert is active.
Specifies the percentage threshold for the alert.
Contains information about all versions of a card. A version changes with change in PAN
Masked card number of this version
Card status of this version. See Card Status for definitions.
PENDING, FAILED, INACTIVE, ACTIVE, LOST, STOLEN, CLOSED, BLOCKED, EXPIRED, UNKNOWN
Version Id which uniquely identifies this card version object
Creation time of the card version.
Card Brand
Unique Identifier for card
Masked card number
Current card status. See Card Status for definitions.
PENDING, FAILED, INACTIVE, ACTIVE, LOST, STOLEN, CLOSED, BLOCKED, EXPIRED, UNKNOWN
Current version of the card
The unique identifier of the cardholder this card is associated with if it is an individual card.
Client data which will be stored against the card record in Airwallex.
Creation time of the card.
The creator of the card
Delivery detail of the card. Only available for physical cards.
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.
MAIL, EXPRESS, UNKNOWN
Delivery vendor of this card.
UNKNOWN, AU_POST, EMS, HK_POST, CITY_LINK, DHL, CN_POST, PL_POST, USPS, FEDEX
The mobile number for the card delivery.
The delivery mode customer selected when the Create Card API is called.
MAIL, EXPRESS, UNKNOWN
See Delivery Status for definitions.
PENDING, PRINTED, FAILED_TO_PRINT, DISPATCHED, IN_TRANSIT, OUT_FOR_DELIVERY, DELIVERED, DELIVERY_FAILED, DELIVERY_DELAYED, UNKNOWN
A brief description of the status
Specifies if the delivery of the card is tracked. If true, a tracking link will be provided when status becomes DISPATCHED
Tracking link of the card.
Delivery tracking number of this card.
Last update time of the delivery details
Form of the card - PHYSICAL or VIRTUAL
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.
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.
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 to be printed on card.
A nick name for the card
Notes that are to be stored against the card request (for client reference)
Optional postal address of physical card delivery.
City of address
ISO country code of address
Address line 1
Address line 2
Address postcode or ZIP code
Address state or region
Details of the primary contact of the card
The email address of the primary contact of the new card.
Full name of the primary contact of the new card.
The mobile number of the primary contact of the new card.
Card program
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.
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.
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).
GOOD_FUNDS_CREDIT, B2B_TRAVEL, UNKNOWN
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.
UNKNOWN, DEBIT, PREPAID, CREDIT, DEFERRED_DEBIT
The purpose of the card's usage. Only available for expense cards.
SUBSCRIPTIONS, OFFICE_SUPPLIES, MARKETING_EXPENSES, TRAVEL_EXPENSES, CLIENT_EXPENSES, TEAM_EXPENSES, ONLINE_PURCHASING, BUSINESS_EXPENSES, OTHER
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
Last update time of the card.
| Error status | Description |
|---|---|
| 400 | Possible errors: |
| 401 | Possible errors: |
| 429 | Too many requests |
| 500 | Service unavailable |
$curl --request GET \> --url 'https://api-demo.airwallex.com/api/v1/issuing/cards/card_id' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json'
1{2 "activate_on_issue": false,3 "additional_cardholder_ids": [4 "7f687fe6-dcf4-4462-92fa-80335301d9d2",5 "b0a1b145-4853-4456-b4b3-d690c7f3535c"6 ],7 "alert_settings": {8 "low_remaining_transaction_limit": {9 "enabled": false,10 "percent": 1011 }12 },13 "all_card_versions": [14 {15 "card_number": "************4111",16 "card_status": "ACTIVE",17 "card_version": 1,18 "created_at": "2024-01-09T00:00:00+0000"19 }20 ],21 "authorization_controls": {22 "active_from": "2018-10-31T00:00:00+0000",23 "active_to": "2018-10-31T00:00:00+0000",24 "allowed_currencies": [25 "USD",26 "AUD"27 ],28 "allowed_merchant_brands": {29 "categories": [30 "10000",31 "16000"32 ],33 "ids": [34 "245e5003-58ec-540c-89a0-e148e54c2518"35 ],36 "subcategories": [37 "10001",38 "16003"39 ]40 },41 "allowed_merchant_categories": [42 "7531",43 "7534"44 ],45 "allowed_merchant_countries": [46 "US",47 "AU"48 ],49 "allowed_transaction_count": "SINGLE",50 "blocked_transaction_usages": [51 {52 "transaction_scope": "MAGSTRIPE",53 "usage_scope": "INTERNATIONAL"54 },55 {56 "transaction_scope": "ONLINE_TRANSACTION",57 "usage_scope": "ALL"58 }59 ],60 "transaction_limits": {61 "cash_withdrawal_limits": [62 {63 "amount": 1000,64 "interval": "PER_TRANSACTION"65 }66 ],67 "currency": "USD",68 "limits": [69 {70 "amount": 1000,71 "interval": "PER_TRANSACTION"72 }73 ]74 }75 },76 "brand": "visa",77 "card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",78 "card_number": "************4111",79 "card_status": "ACTIVE",80 "card_version": 1,81 "cardholder_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",82 "client_data": "20190817_dfelsflkj73494lksdfg9480ww",83 "created_at": "2024-01-09T00:00:00+0000",84 "created_by": "<string>",85 "delivery_details": {86 "delivery_mode": "MAIL",87 "delivery_vendor": "DHL",88 "mobile_number": "+6512345678",89 "preferred_delivery_mode": "MAIL",90 "status": "DISPATCHED",91 "status_description": "The card has been printed.",92 "tracked": true,93 "tracking_link": "https://www.dhl.com/global-en/home/tracking/tracking-parcel.html?submit=1&tracking-id=ABCD1234",94 "tracking_number": "ABCD1234",95 "updated_at": "2024-01-09T00:00:00+0000"96 },97 "form_factor": "VIRTUAL",98 "funding_source_id": "6682111f-cb4a-47ce-8e95-5abcc5394727",99 "is_personalized": true,100 "issue_to": "ORGANISATION",101 "metadata": {102 "key1": "value1",103 "key2": "value2"104 },105 "name_on_card": "John Smith",106 "nick_name": "travelling",107 "note": "This is my first card.",108 "postal_address": {109 "city": "Melbourne",110 "country": "AU",111 "line1": "44 Gillespie St",112 "line2": "Unit 2",113 "postcode": "3121",114 "state": "VIC"115 },116 "primary_contact_details": {117 "email": "[email protected]",118 "full_name": "John Smith",119 "mobile_number": "619922334321"120 },121 "program": {122 "interchange_percent": "1.0",123 "purpose": "COMMERCIAL",124 "sub_type": "GOOD_FUNDS_CREDIT",125 "type": "PREPAID"126 },127 "purpose": "BUSINESS_EXPENSES",128 "request_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",129 "updated_at": "2024-01-09T00:00:00+0000"130}
Activate a card
POST /api/v1/issuing/cards/{id}/activate
Activate a physical card for card payment authorizations.
Unique Identifier for card
| Error status | Description |
|---|---|
| 400 | Possible errors: |
| 401 | Possible errors: |
| 429 | Too many requests |
| 500 | Service unavailable |
$curl --request POST \> --url 'https://api-demo.airwallex.com/api/v1/issuing/cards/card_id/activate' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json'
Provision a card to a digital wallet
POST /api/v1/issuing/cards/{id}/provision_digital_token
Provisions a card into a digital wallet for in-app (push) provisioning. Available only to accounts with white-label digital wallets enabled.
The request body is wallet-specific and selected by the type field. The interactive form shows a single body shape, so the per-type request bodies are documented here:
apple_pay (Apple Wallet / PassKit provisioning):
device_certs(array): device certificate chain, leaf certificate firstnonce_signature(string): signature over the noncenonce(string): one-time nonce
google_pay (Google Pay provisioning):
device_id(string): stable device identifier from the Google Pay SDKclient_customer_id(string): wallet account holder identifier
samsung_pay (Samsung Pay provisioning):
device_id(string): stable device identifier from the Samsung Pay SDKclient_customer_id(string): wallet account holder identifier
Unique Identifier for card
Digital wallet type.
apple_pay, google_pay, samsung_pay
Required when type is apple_pay. Device certificate chain from the Apple Wallet (PassKit) provisioning request, leaf certificate first.
Required when type is apple_pay. One-time nonce supplied by Apple PassKit.
Required when type is apple_pay. Signature over the nonce, supplied by Apple PassKit.
Required when type is google_pay or samsung_pay. Identifier for the wallet account holder, provided by the wallet SDK.
Required when type is google_pay or samsung_pay. Stable device identifier provided by the wallet SDK.
Optional. Used for push provisioning with Google Pay.
Identifier of the provisioned card.
Present when type is apple_pay. Activation data to return to Apple PassKit.
Present when type is apple_pay. Encrypted pass data to return to Apple PassKit to complete provisioning.
Present when type is apple_pay. Ephemeral public key to return to Apple PassKit.
Present when type is google_pay. Expiration date of the provisioned token.
Expiry month of the provisioned token.
Expiry year of the provisioned token.
Present when type is google_pay, when available. Encrypted billing address.
Present when type is google_pay or samsung_pay. Last four digits of the tokenized card.
Present when type is google_pay or samsung_pay. Opaque payment card payload to pass to the wallet SDK.
Present when type is google_pay. Used for push provisioning.
Present when type is samsung_pay. Card network / type.
Present when type is samsung_pay.
| Error status | Description |
|---|---|
| 400 | Possible errors: |
| 401 | Possible errors: |
| 429 | Too many requests |
| 500 | Service unavailable |
$curl --request POST \> --url 'https://api-demo.airwallex.com/api/v1/issuing/cards/card_id/provision_digital_token' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "type": "apple_pay",> "device_certs": [],> "nonce": "<string>",> "nonce_signature": "<string>">}'
1{2 "card_id": "<string>",3 "activation_data": "<string>",4 "encrypted_pass_data": "<string>",5 "ephemeral_public_key": "<string>"6}
Get card remaining limits
GET /api/v1/issuing/cards/{id}/limits
Retrieve remaining limits of a card
Unique Identifier for card
Remaining Cash Withdrawal Limits for Intervals.
Transaction limit amount.
Transaction limit interval. One of: PER_TRANSACTION, DAILY, WEEKLY, MONTHLY, ALL_TIME
Remaining amount of transaction limit for that interval. Refunds are always restored to active limits (each refund will increase the limit balance). Please check product doc for more details.
Currency of transaction limits (3-letter ISO-4217 code).
Remaining limits for Intervals.
Transaction limit amount.
Transaction limit interval. One of: PER_TRANSACTION, DAILY, WEEKLY, MONTHLY, ALL_TIME
Remaining amount of transaction limit for that interval. Refunds are always restored to active limits (each refund will increase the limit balance). Please check product doc for more details.
| Error status | Description |
|---|---|
| 401 | Possible errors: |
| 429 | Too many requests |
| 500 | Service unavailable |
$curl --request GET \> --url 'https://api-demo.airwallex.com/api/v1/issuing/cards/card_id/limits' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json'
1{2 "cash_withdrawal_limits": [3 {4 "amount": 1000,5 "interval": "PER_TRANSACTION",6 "remaining": 10007 }8 ],9 "currency": "USD",10 "limits": [11 {12 "amount": 1000,13 "interval": "PER_TRANSACTION",14 "remaining": 100015 }16 ]17}
Update a card
POST /api/v1/issuing/cards/{id}/update
Updates card details by setting the values of the included parameters. Parameters that are not included will be left unchanged.
Unique Identifier for card
The IDs of additional cardholders to associate this card with. Only valid if is_personalized is false.
Contains alert configuration settings for the card.
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
enabledset totrueandpercentset to an account specific default value.
Indicates whether the alert is active.
Specifies the percentage threshold for the alert.
Card status, Allowed values are INACTIVE, ACTIVE, CLOSED
The unique identifier of the cardholder to associate this card with.
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.
A nick name for the card
Optional purpose for card's usage when card issueTo value 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.
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.
The ID of additional cardholders of this card. Only valid if is_personalized is false.
Contains alert configuration settings for the card.
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
enabledset totrueandpercentset to an account specific default value.
Indicates whether the alert is active.
Specifies the percentage threshold for the alert.
Contains information about all versions of a card. A version changes with change in PAN
Masked card number of this version
Card status of this version. See Card Status for definitions.
PENDING, FAILED, INACTIVE, ACTIVE, LOST, STOLEN, CLOSED, BLOCKED, EXPIRED, UNKNOWN
Version Id which uniquely identifies this card version object
Creation time of the card version.
Card Brand
Unique Identifier for card
Masked card number
Current card status. See Card Status for definitions.
PENDING, FAILED, INACTIVE, ACTIVE, LOST, STOLEN, CLOSED, BLOCKED, EXPIRED, UNKNOWN
Current version of the card
The unique identifier of the cardholder this card is associated with if it is an individual card.
Client data which will be stored against the card record in Airwallex.
Creation time of the card.
The creator of the card
Delivery detail of the card. Only available for physical cards.
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.
MAIL, EXPRESS, UNKNOWN
Delivery vendor of this card.
UNKNOWN, AU_POST, EMS, HK_POST, CITY_LINK, DHL, CN_POST, PL_POST, USPS, FEDEX
The mobile number for the card delivery.
The delivery mode customer selected when the Create Card API is called.
MAIL, EXPRESS, UNKNOWN
See Delivery Status for definitions.
PENDING, PRINTED, FAILED_TO_PRINT, DISPATCHED, IN_TRANSIT, OUT_FOR_DELIVERY, DELIVERED, DELIVERY_FAILED, DELIVERY_DELAYED, UNKNOWN
A brief description of the status
Specifies if the delivery of the card is tracked. If true, a tracking link will be provided when status becomes DISPATCHED
Tracking link of the card.
Delivery tracking number of this card.
Last update time of the delivery details
Form of the card - PHYSICAL or VIRTUAL
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.
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.
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 to be printed on card.
A nick name for the card
Notes that are to be stored against the card request (for client reference)
Optional postal address of physical card delivery.
City of address
ISO country code of address
Address line 1
Address line 2
Address postcode or ZIP code
Address state or region
Details of the primary contact of the card
The email address of the primary contact of the new card.
Full name of the primary contact of the new card.
The mobile number of the primary contact of the new card.
Card program
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.
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.
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).
GOOD_FUNDS_CREDIT, B2B_TRAVEL, UNKNOWN
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.
UNKNOWN, DEBIT, PREPAID, CREDIT, DEFERRED_DEBIT
The purpose of the card's usage. Only available for expense cards.
SUBSCRIPTIONS, OFFICE_SUPPLIES, MARKETING_EXPENSES, TRAVEL_EXPENSES, CLIENT_EXPENSES, TEAM_EXPENSES, ONLINE_PURCHASING, BUSINESS_EXPENSES, OTHER
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
Last update time of the card.
| Error status | Description |
|---|---|
| 400 | Possible errors: |
| 401 | Possible errors: |
| 429 | Too many requests |
| 500 | Service unavailable |
$curl --request POST \> --url 'https://api-demo.airwallex.com/api/v1/issuing/cards/card_id/update' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "additional_cardholder_ids": [> "7f687fe6-dcf4-4462-92fa-80335301d9d2",> "b0a1b145-4853-4456-b4b3-d690c7f3535c"> ],> "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"> ],> "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"> }> ]> }> },> "card_status": "INACTIVE",> "cardholder_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",> "metadata": {> "key1": "value1",> "key2": "value2"> },> "nick_name": "travelling",> "purpose": "<string>">}'
1{2 "activate_on_issue": false,3 "additional_cardholder_ids": [4 "7f687fe6-dcf4-4462-92fa-80335301d9d2",5 "b0a1b145-4853-4456-b4b3-d690c7f3535c"6 ],7 "alert_settings": {8 "low_remaining_transaction_limit": {9 "enabled": false,10 "percent": 1011 }12 },13 "all_card_versions": [14 {15 "card_number": "************4111",16 "card_status": "ACTIVE",17 "card_version": 1,18 "created_at": "2024-01-09T00:00:00+0000"19 }20 ],21 "authorization_controls": {22 "active_from": "2018-10-31T00:00:00+0000",23 "active_to": "2018-10-31T00:00:00+0000",24 "allowed_currencies": [25 "USD",26 "AUD"27 ],28 "allowed_merchant_categories": [29 "7531",30 "7534"31 ],32 "allowed_transaction_count": "SINGLE",33 "allowed_merchant_countries": [34 "US",35 "AU"36 ],37 "blocked_transaction_usages": [38 {39 "transaction_scope": "MAGSTRIPE",40 "usage_scope": "INTERNATIONAL"41 },42 {43 "transaction_scope": "ONLINE_TRANSACTION",44 "usage_scope": "ALL"45 }46 ],47 "transaction_limits": {48 "cash_withdrawal_limits": [49 {50 "amount": 1000,51 "interval": "PER_TRANSACTION"52 }53 ],54 "currency": "USD",55 "limits": [56 {57 "amount": 1000,58 "interval": "PER_TRANSACTION"59 }60 ]61 }62 },63 "brand": "visa",64 "card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",65 "card_number": "************4111",66 "card_status": "ACTIVE",67 "card_version": 1,68 "cardholder_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",69 "client_data": "20190817_dfelsflkj73494lksdfg9480ww",70 "created_at": "2024-01-09T00:00:00+0000",71 "created_by": "<string>",72 "delivery_details": {73 "delivery_mode": "MAIL",74 "delivery_vendor": "DHL",75 "mobile_number": "+6512345678",76 "preferred_delivery_mode": "MAIL",77 "status": "DISPATCHED",78 "status_description": "The card has been printed.",79 "tracked": true,80 "tracking_link": "https://www.dhl.com/global-en/home/tracking/tracking-parcel.html?submit=1&tracking-id=ABCD1234",81 "tracking_number": "ABCD1234",82 "updated_at": "2024-01-09T00:00:00+0000"83 },84 "form_factor": "VIRTUAL",85 "funding_source_id": "6682111f-cb4a-47ce-8e95-5abcc5394727",86 "is_personalized": true,87 "issue_to": "ORGANISATION",88 "metadata": {89 "key1": "value1",90 "key2": "value2"91 },92 "name_on_card": "John Smith",93 "nick_name": "travelling",94 "note": "This is my first card.",95 "postal_address": {96 "city": "Melbourne",97 "country": "AU",98 "line1": "44 Gillespie St",99 "line2": "Unit 2",100 "postcode": "3121",101 "state": "VIC"102 },103 "primary_contact_details": {104 "email": "[email protected]",105 "full_name": "John Smith",106 "mobile_number": "619922334321"107 },108 "program": {109 "interchange_percent": "1.0",110 "purpose": "COMMERCIAL",111 "sub_type": "GOOD_FUNDS_CREDIT",112 "type": "PREPAID"113 },114 "purpose": "BUSINESS_EXPENSES",115 "request_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",116 "updated_at": "2024-01-09T00:00:00+0000"117}