Card Issuing APIs
Cross River card issuing lets you offer customers different types of debit card products. These products, known as instrument types, include contact-less and virtual cards. CR card issuing in COS uses i2c as the payment processor, with the ability to adapt to other card processors.
Find these APIs in the cardmanagement
module of our COS sandbox.
Get started with Cross River APIs.
This table presents APIs that we describe in detail.
Action |
API Call |
Description |
---|---|---|
POST /cardmanagement/v1/cards
|
Requests creation of a new card | |
POST /cardmanagement/v1/cards/{id}/activate
|
Activates a card for a customer. This is the preferred way to activate a card. | |
PUT /cardmanagement/v1/cards/{id}/pin
|
Sets the customer PIN | |
|
Returns the details of a specific debit card based on its ID |
|
|
Returns information about card transactions based on various query criteria such as payment date or a range of dates, card type or account number |
Create a new card
To create a card, you must supply a valid deposit account number along with other card-specific information. The initial card status of a newly submitted card is unactivated
. When the card is successfully created the order status is OrderPending
.
Request attributes
accountNumber string Required Cardholder deposit account number |
|||||||||||||
customerId string Required The unique ID assigned to a customer when the customer record is created ( The ID is in GUID format. |
|||||||||||||
configurationId string Required Unique ID for the card configuration profile the card is based on. You get this ID from CR. This ID is in GUID format. |
|||||||||||||
firstName string Required Cardholder first name 60 characters maximum |
|||||||||||||
middleName string Optional Cardholder middle name 60 characters maximum |
|||||||||||||
lastName string Required Cardholder last name 60 characters maximum |
|||||||||||||
suffix string Optional Cardholder name suffix 60 characters maximum |
|||||||||||||
phone object Optional Details of the cardholder phone contact information child attributes
|
|||||||||||||
emailAddress string Optional Cardholder email address 60 characters maximum |
|||||||||||||
shippingAddress object Required Address to which a physical card is shipped child attributes
|
|||||||||||||
billingAddress object Required Address to send credit card bills child attributes
|
|||||||||||||
nameOnCard string Required Cardholder name as it appears on the card 23 characters maximum |
|||||||||||||
companyNameOnCard string Optional If the card is connected to a business account, the company name 23 characters maximum |
|||||||||||||
shippingType string Required How the card is shipped:
|
|||||||||||||
clientIdentifier string Optional Use this attribute to add your own unique identifying string to a payment call or COS record. This attribute is useful for idempotency purposes. 50 characters maximum. |
id string GUID format card ID in the CR system, which is the |
|||||||||||||
partnerId string Your ID in the CR system. This ID is in GUID format. |
|||||||||||||
productId string Product ID of the cardholder deposit account. This ID is in the GUID format. See also here. |
|||||||||||||
processorCardId string Card processor's unique identifier |
|||||||||||||
accountNumber string Deposit account number associated with the card |
|||||||||||||
status string Card activation status:
|
|||||||||||||
statusReasonCode string Reason for the card status:
|
|||||||||||||
processorCardStatus string Status of the card in the processor's system |
|||||||||||||
firstName string Cardholder first name |
|||||||||||||
middleName string Cardholder middle name |
|||||||||||||
lastName string Cardholder last name |
|||||||||||||
suffix string Cardholder name suffix |
|||||||||||||
birthDate string Cardholder birthdate |
|||||||||||||
shippingAddress object Address where a physical card is sent child attributes
|
|||||||||||||
billingAddress object Address where the credit card bills are sent child attributes
|
|||||||||||||
phone object Information about the cardholder's phone (type and number) child attributes
|
|||||||||||||
emailAddress string Cardholder email address |
|||||||||||||
nameOnCard string Full cardholder name as written on card |
|||||||||||||
companyNameOnCard string If defined, the name of the cardholder company |
|||||||||||||
panLastFour string Last 4 digits of the PAN, the primary account number, which appears on the physical card |
|||||||||||||
previousCardId string ID of the previous card if the current card is a replacement |
|||||||||||||
isPinSet boolean True if the PIN number is set for the card, otherwise false. |
|||||||||||||
expirationDate string Card expiration date |
|||||||||||||
adminBlocked boolean True if the card has been blocked by the administrator, otherwise false. This block cannot be removed. |
|||||||||||||
fraudSuspect boolean True, if the card was blocked by the processor due to potential fraud, otherwise false. |
|||||||||||||
configurationId string Unique ID for the card configuration profile the card is based on. You get this ID from CR. This ID is in GUID format. |
|||||||||||||
category string Type of card:
|
|||||||||||||
paymentInstrument string Card payment instrument type:
|
|||||||||||||
processor string The name of the card processor |
|||||||||||||
shippingType string How the card is shipped:
|
|||||||||||||
orderStatus string Status of the card order:
|
|||||||||||||
replacementStatus string Indicates whether the card is a replacement card and the status of the replacement:
|
|||||||||||||
customerId string Unique CR identifier for the account owner in GUID format. |
|||||||||||||
clientIdentifier string Use this attribute to add your own unique identifying string to a payment call or COS record. This attribute is useful for idempotency purposes. |
|||||||||||||
processorCustomerId string Processor's Unique ID for the cardholder |
|||||||||||||
createdAt string Date and time when the card was created. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] |
|||||||||||||
suspendedAt string Date and time when the card was suspended. If not suspended, null. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] |
|||||||||||||
closedAt string Date and time the card was closed. If not closed, null. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] |
|||||||||||||
initialActivation string Date the card was activated. The time is set to midnight at the start of that day. |
|||||||||||||
activatedAt string Exact date and time the card was activated. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] |
|||||||||||||
openedAt string Null |
|||||||||||||
lastModifiedAt string Date and time the card record was last modified. Examples include change of name on the card and change in card status. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] |
Sample request
curl --location
-X POST
-H 'Content-Type: application/json' \
-H 'Authorization: {Bearer token}' \
-d '{
"accountNumber": "2608927303",
"customerId": "2b15a695-13dc-4b10-b4e5-af5b0138873c",
"configurationId": "a6b5a94c-f8f9-462b-8ce8-afa400f5b640",
"firstName": "John",
"middleName": "Jacob",
"lastName": "Smith",
"suffix": "Jr",
"phone": {
"phoneType": "Home",
"phoneNumber": "2015551234"
"emailAddress": "john@abccompany.com"
"shippingAddress": {
"street1": "123 Maple Lane",
"street2": "Apt. 1",
"city": "New York",
"state": "NY",
"postalCode": "10025",
"countryCode": "US"
},
"billingAddress": {
"street1": "123 Maple Lane",
"street2": "Apt. 1",
"city": "New York",
"state": "NY",
"postalCode": "10025",
"countryCode": "US"
},
"nameOnCard": "John J. Smith, Jr.",
"shippingType": "Normal",
} 'https://sandbox.crbcos.com/cardmanagement/v1/cards'
Sample response
{
"id": "e03cee19-fb0d-404a-ae60-aff700d20d37",
"partnerId": "cd9c12f4-7691-424a-b38b-af5b0134c611",
"productId": "83bed086-8182-4151-a1e3-af5b01362783",
"accountNumber": "2608927303",
"status": "Unactivated",
"statusReasonCode": "NotSet",
"processorCardStatus": "I",
"firstName": "John",
"middleName": "Jacob",
"lastName": "Smith",
"suffix": "Jr",
"shippingAddress": {
"street1": "123 Maple Lane",
"street2": "Apt. 1",
"city": "New York",
"state": "NY",
"postalCode": "10025",
"countryCode": "US"
},
"billingAddress": {
"street1": "123 Maple Lane",
"street2": "Apt. 1",
"city": "New York",
"state": "NY",
"postalCode": "10025",
"countryCode": "US"
},
"phone": {
"phoneType": "Home",
"phoneNumber": "2015551234"
},
"emailAddress": "john@abccompany.com",
"nameOnCard": "John J. Smith, Jr.",
"isPinSet": false,
"adminBlocked": false,
"fraudSuspect": false,
"configurationId": "a6b5a94c-f8f9-462b-8ce8-afa400f5b640",
"category": "Credit",
"paymentInstrument": "VirtualPan",
"processor": "i2c",
"shippingType": "Normal",
"orderStatus": "OrderPending",
"replacementStatus": "NotApplicable",
"customerId": "2b15a695-13dc-4b10-b4e5-af5b0138873c",
"createdAt": "2023-05-03T08:44:46.568048-04:00",
"lastModifiedAt": "2023-05-03T08:44:46.568048-04:00"
}
Activate a card by card ID
Cards can only be used once they are activated. After creation, the card status is Unactivated
. Once you are ready to activate the card for use, call the Activate Card ID endpoint. This is the preferred way to activate a card.
Path parameters
id string Required GUID format card ID in the CR system, which is the |
Response attributes
The response attributes for this call are the same as for Create a new card.
curl -X POST
--header 'Accept: application/json'
--header 'Authorization: Bearer
https://sandbox.crbcos.com/CardManagement/v1/cards/e03cee19-fb0d-404a-ae60-aff700d20d37/activate
Sample response
{
"id": "e03cee19-fb0d-404a-ae60-aff700d20d37",
"partnerId": "cd9c12f4-7691-424a-b38b-af5b0134c611",
"productId": "83bed086-8182-4151-a1e3-af5b01362783",
"processorCardId": "123749109682647",
"accountNumber": "2608927303",
"status": "Active",
"statusReasonCode": "NotSet",
"processorCardStatus": "B",
"firstName": "John",
"middleName": "Jacob",
"lastName": "Smith",
"suffix": "Jr",
"shippingAddress": {
"street1": "123 Maple Lane",
"street2": "Apt. 1",
"city": "New York",
"state": "NY",
"postalCode": "10025",
"countryCode": "US"
},
"billingAddress": {
"street1": "123 Maple Lane",
"street2": "Apt. 1",
"city": "New York",
"state": "NY",
"postalCode": "10025",
"countryCode": "US"
},
"phone": {
"phoneType": "Home",
"phoneNumber": "2015551234"
},
"emailAddress": "john@abccompany.com",
"nameOnCard": "John J. Smith, Jr.",
"panLastFour": "0358",
"isPinSet": false,
"expirationDate": "2026-05-03",
"adminBlocked": false,
"fraudSuspect": false,
"configurationId": "a6b5a94c-f8f9-462b-8ce8-afa400f5b640",
"category": "Credit",
"paymentInstrument": "VirtualPan",
"processor": "i2c",
"shippingType": "Normal",
"orderStatus": "Completed",
"replacementStatus": "NotApplicable",
"customerId": "2b15a695-13dc-4b10-b4e5-af5b0138873c",
"processorCustomerId": "86POB06B0T6RQN9C81W7",
"createdAt": "2023-05-03T08:44:46.567-04:00",
"initialActivation": "2023-05-03T00:00:00-04:00",
"activatedAt": "2023-05-03T09:21:33.8505605-04:00",
"lastModifiedAt": "2023-05-03T09:21:33.8505605-04:00"
}
Set an initial card personal identification number (PIN)
/cardmanagement/v1/cards/{id}/pin
Set an initial debit card personal identification number (PIN) number for withdrawing funds from an ATM and other uses.
To set a card PIN number, the card cannot already have a PIN number set. This means that the card's isPinSet
must have a value of false.
Request attributes
id string Required GUID format card ID in the CR system, which is the |
pin string Required 4-digit personal identification number associated with the card for verification purposes during purchase or cash withdrawal transactions. |
Response attributes
The response attributes for this call are the same as for Create a new card.
Request sample
curl
-X PUT
--header 'Content-Type: application/json'
--header 'Accept: application/json'
--header 'Authorization: Bearer <token>'
-d '{
"pin": "2563"
}' 'https://sandbox.crbcos.com/CardManagement/v1/cards/e03cee19-fb0d-404a-ae60-aff700d20d37/pin'
Response sample
{
"id": "e03cee19-fb0d-404a-ae60-aff700d20d37",
"partnerId": "cd9c12f4-7691-424a-b38b-af5b0134c611",
"productId": "83bed086-8182-4151-a1e3-af5b01362783",
"processorCardId": "123749109682647",
"accountNumber": "2608927303",
"status": "Active",
"statusReasonCode": "NotSet",
"processorCardStatus": "B",
"firstName": "John",
"middleName": "Jacob",
"lastName": "Smith",
"suffix": "Jr",
"shippingAddress": {
"street1": "123 Maple Lane",
"street2": "Apt. 1",
"city": "New York",
"state": "NY",
"postalCode": "10025",
"countryCode": "US"
},
"billingAddress": {
"street1": "123 Maple Lane",
"street2": "Apt. 1",
"city": "New York",
"state": "NY",
"postalCode": "10025",
"countryCode": "US"
},
"phone": {
"phoneType": "Home",
"phoneNumber": "2015551234"
},
"emailAddress": "john@abccompany.com",
"nameOnCard": "John J. Smith, Jr.",
"panLastFour": "0358",
"isPinSet": true,
"expirationDate": "2026-05-03",
"adminBlocked": false,
"fraudSuspect": false,
"configurationId": "a6b5a94c-f8f9-462b-8ce8-afa400f5b640",
"category": "Credit",
"paymentInstrument": "VirtualPan",
"processor": "i2c",
"shippingType": "Normal",
"orderStatus": "Completed",
"replacementStatus": "NotApplicable",
"customerId": "2b15a695-13dc-4b10-b4e5-af5b0138873c",
"processorCustomerId": "86POB06B0T6RQN9C81W7",
"createdAt": "2023-05-03T08:44:46.567-04:00",
"initialActivation": "2023-05-03T00:00:00-04:00",
"activatedAt": "2023-05-03T09:21:33.85-04:00",
"lastModifiedAt": "2023-08-14T06:50:21.3572506-04:00"
}
Get card details by ID
Returns the details of a specific debit card based on its ID.
Path parameters
id string Required GUID format card ID in the CR system, which is the |
Response attributes
The response attributes for this call are the same as for Create a new card.
Sample request
curl -X GET
--header 'Accept: application/json'
--header 'Authorization: Bearer <token>'
https://sandbox.crbcos.com/CardManagement/v1/cards/187A7456-0310-42C7-B764-AED200FF1FA2'
Sample response
{
"id": "187a7456-0310-42c7-b764-aed200ff1fa2",
"partnerId": "1e5d3f04-ae24-4af6-9e30-aecf012b99dd",
"productId": "dead8916-7764-4f93-b1d7-aecf012c1915",
"processorCardId": "804373635140968",
"accountNumber": "2561347044",
"status": "Active",
"statusReasonCode": "NotSet",
"processorCardStatus": "B",
"firstName": "John",
"lastName": "Wick",
"shippingAddress": {
"street1": "123 Any St",
"city": "Anywhere",
"state": "NY",
"postalCode": "10001",
"countryCode": "US"
},
"billingAddress": {
"street1": "123 Any St",
"city": "Anywhere",
"state": "NY",
"postalCode": "10001",
"countryCode": "US"
},
"phone": {
"phoneType": "Mobile",
"phoneNumber": "2018075036"
},
"emailAddress": "john@babayega.com",
"nameOnCard": "John Wick",
"panLastFour": "8471",
"isPinSet": false,
"expirationDate": "2025-07-14",
"adminBlocked": false,
"fraudSuspect": false,
"configurationId": "4a338a0d-734f-40bc-a5fd-aed000d935b8",
"category": "Debit",
"paymentInstrument": "PhysicalCombo",
"processor": "i2c",
"shippingType": "Normal",
"orderStatus": "Completed",
"replacementStatus": "NotApplicable",
"customerId": "b94661ad-07c7-488a-ad85-aecf0131b5b2",
"processorCustomerId": "2530036X0A09H50UUJ8D",
"createdAt": "2022-07-14T11:28:52.623-04:00",
"initialActivation": "2022-08-03T00:00:00-04:00",
"activatedAt": "2022-08-03T19:00:48.287-04:00",
"lastModifiedAt": "2022-08-03T19:00:48.2865625-04:00"
}
Get transaction details
Returns details about card transactions. The response values below are repeated for each transaction.
Add query parameters to filter the response the API returns to all GET calls.
Use pagination to control presentation of your results.
Query parameters
from date-time Optional Date/time to return results from. |
to date-time Optional Date/time to return results to |
partnerId string Optional Your ID in the CR system. This ID is in GUID format. |
productId string Optional Product ID of the cardholder deposit account. This ID is in the GUID format. |
accountNumber string Optional Deposit account number associated with the card |
minAmount long Optional Minimum transaction dollar amount to return |
maxAmount long Optional Maximum transaction dollar amount to return |
retrievalReferenceNumber string Optional Automatically generated reference (alphanumeric) |
outboundResponseCode string Optional Code describing outbound response. List of codes. |
isDebit boolean Optional True if the card is a debit card, otherwise false. |
Response attributes
id string GUID format card ID in the CR system, which is the |
partnerId string Your ID in the CR system. This ID is in GUID format. |
productId string ID in GUID format of your specific product type on which the account is based. Provided by CR. |
accountNumber string Deposit account number associated with the card |
createdAt string Date and time the transaction record was created. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] |
description string Description of the transaction |
isReversal boolean True if the transaction is a reversal of a previous transaction, otherwise false. |
traceNumber integer A unique number assigned to a transaction from the time it leaves the merchant bank until it arrives at the cardholder bank |
transmissionDate string Date and time the message entered the data interchange system |
cardProgramId string Unique ID for the card program the card is assigned to |
panLastFour string Last 4 digits of the PAN, the primary account number, which appears on the physical card |
transactionType string Type of transaction: debit or credit |
isDebit boolean True if the card is a debit card, otherwise false. |
transactionAmount integer Funds requested by the cardholder in the local currency of either the acquirer or source location of the transaction, exclusive the of transaction fee amount |
billingAmount integer The amount billed to the cardholder in the currency of the cardholder account, exclusive of cardholder billing fees |
settlementAmount integer The settlement amount may vary from the transaction amount if currency conversion is involved |
responseCode string A code that defines the disposition of a message. When the response code is 30, the Additional Response Data contains the bit number in error. |
retrievalReferenceNumber string Automatically generated reference (alphanumeric) |
networkId string Unique identifier for the transaction, provided by the card network |
merchantNameLocation string Name and location of merchant involved in the transaction |
merchantType string Classification of the merchant type of business, product, or service |
terminalId string Unique code identifying a terminal at the card acceptor location |
transactionCurrencyCode string ISO 4217 currency code telling you the local currency of either the acquirer or the source location of the transaction. This is the currency used in the transaction amount and transaction fee amount. |
billingCurrencyCode string ISO 4217 currency code telling you the currency of the cardholder billing amount and the cardholder billing fee amount |
settlementCurrencyCode string ISO 4217 currency code telling you the currency of both the settlement amount and the settlement fee amount |
authorizationCode string Code provided by the issuer when a transaction is approved or a “no reason to decline” code provided for successful verification. |
transactionIdentifier string A number that remains unique throughout a transaction life cycle |
transactionUniqueIdentifier string Additional unique identifier for the transaction |
authorizationIndicator string Not used |
authorizationLifeCycle string Time interval in effect for pre-authorization when an acquirer is requests guarantee of funds. The first digit indicates the type of time interval (1=calendar days, 2=hours, 3=minutes) and the second digit is the actual time interval value. |
accountIdentification string Series of digits used to identify a customer account or relationship ID |
partialAuthorizationIndicator boolean If true, indicates that the authorization is for a partial amount and not the whole amount of the transaction, otherwise, false. |
isChargeBack boolean True if the transaction is a chargeback, otherwise false. |
outboundResponseCode string Code describing outbound response. List of codes. |
messageType string Identifies the message type related to the transaction. List of message types. |
processingCode string Indicates the what took place for a given transaction. A list of processing codes can be seen here. |
cardAcceptorCode string Unique code identifying a terminal at the card acceptor location |
expirationDate string The year and month after which the card expires. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] |
billingConversionRate integer The factor used in the conversion from the transaction to the cardholder billing amount. The transaction amount is multiplied by the cardholder billing conversion rate to determine the cardholder billing amount. |
settlementConversionRate integer The factor used in the conversion from the transaction to the settlement amount. The transaction amount is multiplied by the settlement conversion rate to determine the settlement amount. |
bankNetReferenceNumber string Unique reference ID within the Banknet system. See: https://www.banknet.gov/entrance/about-banknet/about-banknet.html |
transactionFeeAmount integer The fee charged (for example, by the acquirer) for transaction activity in the currency of the transaction amount. This fee can be a surcharge, rebate, or transaction fee. |
chargeBackIndicator string If the transaction is a chargeback, this contain the chargeback flag |
acquiringInstitutionCode string Code identifying the acquiring institution (for example, merchant bank) or its agent. This can be any uniquely identifying number agreed upon by the network. |
forwardingInstitutionCode string Code identifying the institution that is forwarding a request or advice message in an interchange system. |
processor string The name of the card processor |
memoPostId string Unique identifier for the memo post. This ID is in GUID format. |
coreTransactionId string Unique CR identifier for the core transaction. This ID is in GUID format. |
transactionKey string Unique identifier for the transaction |
Sample request
curl -X GET
--header 'Accept: application/json'
--header 'Authorization: Bearer <token>
'https://sandbox.crbcos.com/CardManagement/v1/transactions?filter.productId=83bed086-8182-4151-a1e3-af5b01362783'
Sample response
{
"id": "04ea8f98-ad82-4340-8062-ae27015c747c",
"partnerId": "1e5ef215-615a-471b-b061-adf701227a44",
"productId": "7e08413b-c662-41d4-b0e0-adf701227c3d",
"accountNumber": "2216413498",
"createdAt": "2022-01-24T16:08:41.1566667-05:00",
"isReversal": false,
"traceNumber": 242986,
"transmissionDate": "0124210841",
"panLastFour": "1042",
"isDebit": true,
"transactionAmount": 100,
"billingAmount": 100,
"settlementAmount": 0,
"retrievalReferenceNumber": "1800049327",
"merchantNameLocation": "Test Merchant City of Test MD21212USA ",
"merchantType": "1111",
"transactionCurrencyCode": "984",
"billingCurrencyCode": "984",
"settlementCurrencyCode": "984",
"authorizationCode": "V1BIF8",
"transactionIdentifier": "1-10001983300218",
"transactionUniqueIdentifier": "985154",
"accountIdentification": "716473091815465",
"partialAuthorizationIndicator": false,
"isChargeBack": false,
"outboundResponseCode": "00",
"messageType": "0100",
"processingCode": "Purchase",
"expirationDate": "0001-01-01T00:00:00-05:00",
"billingConversionRate": 0,
"settlementConversionRate": 0,
"bankNetReferenceNumber": "984970196",
"transactionFeeAmount": 0,
"processor": "i2c",
"coreTransactionId": "f7ea03f7-d577-4685-b6e3-ae27015c7489",
"transactionKey": "wOBdHrLLyUpeCn3jB3dkaONDV1A"
}
Associated webhook events
Event Name |
Description |
---|---|
Cards.Card.Activated |
Debit card activated |
Cards.Card.Closed |
Debit card closed |
Cards.Card.Created |
Debit card created |
Cards.Card.Failed |
Debit card creation failed |
Cards.Card.Pin.Set |
PIN set for debit card |
Cards.Card.Profile.Changed |
Profiled of cardholder changed |
Cards.Card.Replaced |
New card created to replace an existing card |
Cards.Card.Suspended |
Debit card use temporarily suspended |
Cards.Card.Unsuspended |
Suspension removed from debit card |
Cards.Transaction.Cleared |
Card transaction successfully completed |
Cards.Transaction.Authorized |
Card transaction approved |
Cards.Transaction.Declined |
Card transaction not approved |
Cards.Transaction.Failed |
Card transaction did not succeed |
Cards.Transaction.Reversed |
Payment credited to the originating account |
Cards.Card.Status.Changed |
Card state has changed |
Related topics
Card issuing management overview
Tutorials
How to activate a card with the card ID
How to simulate card management