Card Lifecycle
Overview
To request a card, follow these steps:
- Obtain the card product ID from a company offering issuer processing services. Currently, only the card product from Thredd is supported on the IF platform.
- Create an active client.
- Create the user who will serve as the cardholder.
Card Types
On the IF platform, you have the option to create two distinct types of cards:
- Virtual Cards: These cards are in an active status upon creation.
- Physical Cards: These cards start in an inactive status when initially created.
Card Statuses
- Pending: Initial state, the card is not issued yet
- Declined: The service provider has declined the creation of the card with the provided parameters
- Inactive: This status is applicable only to physical cards. Card issuing is completed, and the masked PAN and expiration date are available. The card remains inactive for transactions until the card is activated by the cardholder.
- Active: The card is enabled for transactions. Virtual cards are automatically activated upon completion of the issuing process.
- Suspended: The card is disabled for transactions temporarily. This status should be used when an IF customer the cardholder decides to suspend a card. Suspended cards must have a reason of suspension specified:
- User Requested reason means the cardholder asked for a temporary inactivation of the card.
- Suspected Fraud reason means IF customer suspended the card temporarily.
- Suspended by Third Party reason means IF received a message from underlying service provider stating that card is suspended for any reason. Details of this can be checked using "Service Provider Information" tab of the card in IF Backoffice.
- Terminated: The card is disabled for transactions permanently and cannot be reverted back to an active status. Terminated cards must have a reason of termination specified:
- Lost Card reason means the cardholder asked for a termination because the card is lost.
- Stolen Card reason means the cardholder asked for a termination because the card is stolen.
- Expired Card reason means the card is terminated because it's expired.
- Termination Requested reason means the cardholder asked for a permanent termination of the card.
- Terminated by Third Party reason means IF received a message from underlying service provider stating that card is terminated for any reason. Details of this can be checked using "Service Provider Information" tab of the card in IF Backoffice.
Linked Accounts
To facilitate transactions with the card, it needs to be linked to specific account(s), which must be set up by the customer. These accounts will serve as the card balance. Customers can choose to link at least one or more account IDs to the card in the Create a Card API request. Currently, a single card can only be linked to a single account. This limitation will be removed in the future.
The Add Linked Account to a Card API can be utilised to link new accounts to the card. If you wish to remove the linked accounts of the card, you can use the Remove Linked Account of a Card API.
Cards can be linked to both the main account and sub-accounts based on the customer's needs.
Create a Card
POST /cards
{
"workflow": {
"code": "client.debit.issuing"
},
"data": {
"card": {
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"alias": "Platinium Plus Card",
"attributes": {
"threddCardProduct": "00000",
"threddImageId": "An image id"
},
"linkedAccounts": [
"00000000-0000-0000-0000-000000000000"
]
}
},
"connect": {
"type": "explicit",
"serviceProvider": "thredd"
},
"metadata": {}
}
{
"workflow": {
"code": "client.debit.issuing"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "pending",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Platinium Plus Card",
"bin": null,
"pan": null,
"expirationDate": null,
"attributes": {
"threddCardProduct": "00000",
"threddImageId": "An image id"
},
"linkedAccounts": [
{
"accountId": "00000000-0000-0000-0000-000000000000",
"accountStatus": "active"
}
],
"connection": {
"id": null,
"serviceProvider": "thredd",
"reference": null,
"state": "creation-in-progress",
"status": null,
"method": "built-in",
"error": null
}
}
},
"connect": {
"type": "explicit",
"serviceProvider": "thredd"
},
"metadata": {}
}
{
"workflow": {
"code": "client.debit.issuing"
},
"data": {
"card": {
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "physical",
"alias": "Platinium Plus Card",
"deliveryAddress": {
"country": "GB",
"region": "England",
"city": "London",
"street": "Baker Street",
"houseNumber": "221B",
"postalCode": "XYZ ABC",
"refinement": ""
},
"attributes": {
"threddCardProduct": "00000",
"threddCardManufacturer": "AB Note",
"threddDeliveryMethod": "0",
"threddCarrierType": "Type 1",
"threddImageId": "An image id",
"threddDesignId": "DSGN-DEFAULT"
},
"linkedAccounts": [
"00000000-0000-0000-0000-000000000000"
]
}
},
"connect": {
"type": "explicit",
"serviceProvider": "thredd"
},
"metadata": {}
}
{
"workflow": {
"code": "client.debit.issuing"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "physical",
"status": "pending",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Platinium Plus Card",
"bin": null,
"pan": null,
"expirationDate": null,
"deliveryAddress": {
"country": "GB",
"region": "England",
"city": "London",
"street": "Baker Street",
"houseNumber": "221B",
"postalCode": "XYZ ABC",
"refinement": ""
},
"attributes": {
"threddCardProduct": "00000",
"threddCardManufacturer": "AB Note",
"threddDeliveryMethod": "0",
"threddCarrierType": "Type 1",
"threddImageId": "An image id",
"threddDesignId": "DSGN-DEFAULT"
},
"linkedAccounts": [
{
"accountId": "00000000-0000-0000-0000-000000000000",
"accountStatus": "active"
}
],
"connection": {
"id": null,
"serviceProvider": "thredd",
"reference": null,
"state": "creation-in-progress",
"status": null,
"method": "built-in",
"error": null
}
}
},
"connect": {
"type": "explicit",
"serviceProvider": "thredd"
},
"metadata": {}
}
{
"workflow": {
"code": "client.debit.issuing"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "physical",
"status": "pending",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": null,
"pan": null,
"expirationDate": null,
"deliveryAddress": {
"country": "GB",
"region": "England",
"city": "London",
"street": "Baker Street",
"houseNumber": "221B",
"postalCode": "XYZ ABC",
"refinement": ""
},
"attributes": {
"threddCardProduct": "00000",
"threddCardManufacturer": "AB Note",
"threddDeliveryMethod": "0",
"threddCarrierType": "Type 1",
"threddImageId": "An image id"
},
"linkedAccounts": [
{
"accountId": "00000000-0000-0000-0000-000000000000",
"accountStatus": "active"
}
],
"connection": {
"id": null,
"serviceProvider": "thredd",
"reference": null,
"state": "creation-failed",
"status": null,
"method": "built-in",
"error": {
"category": "technical",
"origin": "platform",
"code": "invalid_value_detected",
"message": "An error occured",
"attributes": {}
}
}
},
"connect": {
"type": "implicit",
"serviceProvider": "thredd"
},
"metadata": {}
}
}
- workflow:
- code: It can be
client.debit.issuing
. This indicates that a new card will be issued at a specific service provider of your choice. In this workflow, service provider information must also be provided inconnect
section.
- data:
- card:
- clientId: The ID of the active client that will create the card.
- userId: The ID of the user who will be the cardholder.
- type: The type of the card. It must be
virtual
orphysical
- alias: The alias of the card.
- deliveryAddress: The address to which physical cards will be delivered. For virtual cards, it must remain empty. If left blank on physical cards, the user's residential address is used as the delivery address.
- attributes: A key value map that can be used for storing any additional metadata that you'd like to link to card. There are some reserved keys for each service provider.
- thredd's reserved attributes:
- threddCardProduct: The unique ID of the card product linked to the card.
- threddDesignId: For physical cards, it is required. Thredd forwards the design ID in the physical card output file to the card manufacturer for card creation. The design ID enables the card manufacturer to determine which card design to print on the card. For example, physical card design blue could be ID PBLUE01.
- threddImageId: A reference that identifies the image file of the card manufacturer to be printed on the face of the card.
- threddCardManufacturer: The manufacturer to whom the card generation request should be sent, for example: TCT, AllPay, GNC, Gemalto, Nitecrest and Exceet.
- threddDeliveryMethod: The card's delivery method can be one of the following: Standard delivery, Registered mail, Direct delivery, Customised delivery
- threddCarrierType: The carrier product design reference as used by the card manufacturer. This is the letter onto which the card is attached when sent to the cardholder. Identifies the carrier product type of the card manufacturer.
- thredd's reserved attributes:
- linkedAccounts: The list of accounts IDs to be linked to the card. The maximum list size is 10.
- connect:
- type: The type of how connected service provider is decided. Currently,
explicit
is the only type supported. - serviceProvider: The name of the service provider creating the card
Update a Card
PATCH /cards/{cardId}
Updatable attributes of a Card:
- alias
- status can be updated based on the state diagram at the top of this page.
- suspensionReason must be provided when new status is suspended. Possible values are “user-requested", “suspected-fraud" and “suspended-by-third-party“.
- terminationReason must be provided when new status is terminated.
{
"workflow": {
"code": "client.direct"
},
"data": {
"card": {
"status":"inactive"
}
},
"connect": {},
"metadata": {}
}
{
"workflow": {
"code": "client.direct"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "inactive",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "000000000",
"state": "completed-up-to-date",
"status": "inactive",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"workflow": {
"code": "client.direct"
},
"data": {
"card": {
"status":"active"
}
},
"connect": {},
"metadata": {}
}
{
"workflow": {
"code": "client.direct"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "physical",
"status": "active",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "000000000",
"state": "completed-up-to-date",
"status": "active",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"workflow": {
"code": "client.direct"
},
"data": {
"card": {
"alias": "Gold Card"
}
},
"connect": {},
"metadata": {}
}
{
"workflow": {
"code": "client.direct"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "terminated",
"suspensionReason": null,
"terminationReason": "terminated-by-third-party",
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "000000000",
"state": "completed-up-to-date",
"status": "terminated-by-third-party",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"workflow": {
"code": "client.direct"
},
"data": {
"card": {
"status":"suspended",
"suspensionReason":"user-requested"
}
},
"connect": {},
"metadata": {}
}
{
"workflow": {
"code": "client.direct"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "suspended",
"suspensionReason": "user-requested",
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Platinium Plus Debit Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "000000000",
"state": "completed-up-to-date",
"status": "user-requested",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"workflow": {
"code": "client.direct"
},
"data": {
"card": {
"status":"terminated",
"terminationReason":"lost-card"
}
},
"connect": {},
"metadata": {}
}
{
"workflow": {
"code": "client.direct"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "terminated",
"suspensionReason": null,
"terminationReason": "lost-card",
"serviceProvider": "thredd",
"alias": "Platinium Plus Debit Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "000000000",
"state": "completed-up-to-date",
"status": "terminated-by-third-party",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
Get a Card
GET /cards/{cardId}
This endpoint supports a single optional query parameter named as metadata.include
. The possible values that can be passed in it are listed below:
key | description |
---|---|
connect.connection | Includes information about provider connection of the card. |
Connection can have the following states:
state | description |
---|---|
pending | Pending for user connection to reach the appropriate state. |
creation-in-progress | Card creation is in progress. |
update-in-progress | Card update is in progress. |
dependency-completed | User connection is in the appropriate state. |
completed-up-to-date | Card connection has been successfully created and is up to date. |
completed-outdated | Card connection update failed. |
dependency-failed | User connection is not in the appropriate state. |
creation-failed | Card creation is failed. |
{
"workflow": {},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "active",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "000000000",
"state": "completed-up-to-date",
"status": "active",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
List Cards
GET /cards
Supported query parameters:
parameter | description |
---|---|
metadata.page.number | 0-indexed, default=0 |
metadata.page.size | default=10 |
data.card.clientId | ID of client |
data.card.userId | ID of user |
data.card.type | virtual, physical |
data.card.alias | Alias of the card |
data.card.status | pending, declined, active, inactive, suspended, frozen, terminated |
data.card.serviceProvider | |
data.card.attributes[key] | A key from attributes map. Example usage: If there is an threddCardProduct defined in attributes with value of 10023, it can be searched using the query of data.card.attributes[threddCardProduct]=10023 |
{
"workflow": {},
"data": {
"cards": [
{
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "physical",
"status": "active",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Physical Gold",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"deliveryAddress": {
"country": "GB",
"region": "England",
"city": "London",
"street": "Baker Street",
"houseNumber": "221B",
"postalCode": "XYZ ABC",
"refinement": ""
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "REF-01234",
"state": "completed-up-to-date",
"status": "active",
"method": "built-in",
"error": null
}
},
{
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "pending",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"serviceProvider": "thredd",
"state": "creation-failed",
"method": "built-in",
"error": {
"category": "technical",
"origin": "platform",
"code": "invalid_value_detected",
"message": "An error occured",
"attributes": {}
}
}
},
{
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "active",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "000000000",
"state": "completed-up-to-date",
"status": "active",
"method": "built-in",
"error": null
}
}
]
},
"connect": {},
"metadata": {}
}
Add Linked Account to a Card
POST /cards/{cardId}/linked-accounts
{
"workflow": {
"code": "direct"
},
"data": {
"linkedAccount": {
"accountId": "00000000-0000-0000-0000-000000000000"
}
},
"connect": {},
"metadata": {}
}
{
"workflow": {
"code": "direct"
},
"data": {
"linkedAccount": {
"accountId": "00000000-0000-0000-0000-000000000000",
"accountStatus": "active"
}
},
"connect": {},
"metadata": {}
}
Remove Linked Account of a Card
DELETE /cards/{cardId}/linked-accounts/{linkedAccountId}
{
"workflow": {},
"data": {
"linkedAccount": {
"accountId": "00000000-0000-0000-0000-000000000000",
"accountStatus": "active"
}
},
"connect": {},
"metadata": {}
}
List Linked Account of a Card
GET /cards/{cardId}/linked-accounts
Supported query parameters:
parameter | description |
---|---|
metadata.page.number | 0-indexed, default=0 |
metadata.page.size | default=10 |
data.linkedAccount.accountStatus | status of account |
{
"workflow": {},
"data": {
"linkedAccounts": [
{
"accountId": "00000000-0000-0000-0000-000000000000",
"accountStatus": "active"
},
{
"accountId": "00000000-0000-0000-0000-000000000000",
"accountStatus": "active"
},
]
},
"connect": {},
"metadata": {
"page": {
"size": 20,
"totalElements": 1,
"totalPages": 1,
"number": 0
}
}
}
Webhooks
Card webhooks have "cards" in the module
field in the webhook
container object.
There are a total of 13 different webhooks for cards, 7 of which show changes on the card and 6 of which show changes on the service provider of the card:
Card
- card-instructed
- card-activated
- card-inactivated
- card-suspended
- card-declined
- card-terminated
Card Connection
- connection-creation-instructed
- connection-created
- connection-creation-failed
- connection-update-instructed
- connection-updated
- connection-update-failed
These types are exposed in the webhook.type
field.
{
"webhook": {
"module": "cards",
"type": "card-instructed"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "pending",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": null,
"serviceProvider": "thredd",
"reference": null,
"state": "creation-in-progress",
"status": "active",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"webhook": {
"module": "cards",
"type": "card-activated"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "active",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "000000000",
"state": "completed-up-to-date",
"status": "active",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"webhook": {
"module": "cards",
"type": "card-inactivated"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "physical",
"status": "inactive",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"deliveryAddress": {
"country": "GB",
"region": "England",
"city": "London",
"street": "Baker Street",
"houseNumber": "221B",
"postalCode": "XYZ ABC",
"refinement": ""
},
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "000000000",
"state": "completed-up-to-date",
"status": "inactive",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"webhook": {
"module": "cards",
"type": "card-suspended"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "suspended",
"suspensionReason": "suspected-fraud",
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/21",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "000000000",
"state": "completed-up-to-date",
"status": "suspected-fraud",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"webhook": {
"module": "cards",
"type": "card-declined"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "declined",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/26",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": null,
"serviceProvider": "thredd",
"reference": null,
"state": "creation-failed",
"method": "built-in",
"error": {
"category": "technical",
"origin": "platform",
"code": "invalid_value_detected",
"message": "An error occured",
"attributes": {}
}
}
}
},
"connect": {},
"metadata": {}
}
{
"webhook": {
"module": "cards",
"type": "card-terminated"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "terminated",
"suspensionReason": null,
"terminationReason": "expired-card",
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/21",
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "000000000",
"serviceProvider": "thredd",
"reference": "000000000",
"state": "completed-up-to-date",
"status": "expired-card",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
The connection
section is optional. Once the card creation process has been initiated at the service provider, the current connection information can also be displayed.
Connection can have the following states:
state | description |
---|---|
creation-in-progress | Card creation is in progress. |
creation-failed | Card creation is failed. |
update-in-progress | Card update is in progress. |
completed-up-to-date | Card connection has been successfully created / updated and is up to date. |
completed-outdated | Card connection update failed. |
{
"webhook": {
"module": "cards",
"type": "connection-creation-instructed"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "pending",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": null,
"pan": null,
"expirationDate": null,
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": null,
"serviceProvider": "thredd",
"reference": null,
"state": "creation-in-progress",
"status": null,
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"webhook": {
"module": "cards",
"type": "connection-created"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "active",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/21",
"attributes": {
"threddCardProduct": "00000",
"threddImageId": "An image id"
},
"connection": {
"id": "00000000-0000-0000-0000-000000000000",
"serviceProvider": "thredd",
"reference": "000000",
"state": "completed-up-to-date",
"status": "active",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"webhook": {
"module": "cards",
"type": "connection-creation-failed"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "pending",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": null,
"pan": null,
"expirationDate": null,
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": null,
"serviceProvider": "thredd",
"reference": null,
"state": "creation-failed",
"status": null,
"method": "built-in",
"error": {
"category": "technical",
"origin": "platform",
"code": "invalid_value_detected",
"message": "An error occured",
"attributes": {}
}
}
}
},
"connect": {},
"metadata": {}
}
{
"webhook": {
"module": "cards",
"type": "connection-update-instructed"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "pending",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Gold Card",
"bin": null,
"pan": null,
"expirationDate": null,
"attributes": {
"threddCardProduct": "00000"
},
"connection": {
"id": "00000000-0000-0000-0000-000000000000",
"serviceProvider": "thredd",
"reference": "REF-01234",
"state": "update-in-progress",
"status": "active",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"webhook": {
"module": "cards",
"type": "connection-updated"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "active",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Silver Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/21",
"attributes": {
"threddCardProduct": "00000",
"threddImageId": "An image id"
},
"connection": {
"id": "00000000-0000-0000-0000-000000000000",
"serviceProvider": "thredd",
"reference": "REF-01234",
"state": "completed-up-to-date",
"status": "active",
"method": "built-in",
"error": null
}
}
},
"connect": {},
"metadata": {}
}
{
"webhook": {
"module": "cards",
"type": "connection-update-failed"
},
"data": {
"card": {
"id": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"type": "virtual",
"status": "active",
"suspensionReason": null,
"terminationReason": null,
"serviceProvider": "thredd",
"alias": "Platinium Card",
"bin": "999999",
"pan": "999999******6526",
"expirationDate": "12/21",
"attributes": {
"threddCardProduct": "00000",
"threddImageId": "An image id"
},
"connection": {
"id": "00000000-0000-0000-0000-000000000000",
"serviceProvider": "thredd",
"reference": "000000",
"state": "completed-outdated",
"status": "active",
"method": "built-in",
"error": {
"category": "technical",
"origin": "platform",
"code": "invalid_value_detected",
"message": "An error occured",
"attributes": {}
}
}
}
},
"connect": {},
"metadata": {}
}
Updated 16 days ago