Card

BETA

Allows lenders to associate physical or virtual card with a loan or line of credit.

Create card

The card details.

You can pass either issuerId + corresponding accountIdentifier for the card (e.g. accountIdentifiers.galileoCad) attributes or the cardDetails object.

If issuerId + card accountIdentifier attributes are passed and issuerEventsSubscriber is set to peach, Peach will sync the card status, transactions and balances with the loan ledger seamlessly. Note: these attributes must be passed if issuerEventsSubscriber is set to peach, because Peach will need the identifying information to tie the issuer's events to the proper card.

If cardDetails is passed, the card details will be stored in the Peach system as read-only. The lender is responsible for updating the loan details based on the card usage. Note: if cardDetails is passed without issuerId and accountIdentifier, issuerEventsSubscriber cannot be set to peach.

The card issuerId and accountIdentifier attributes can be updated only if the loan status is originated or pending. After the loan is activated, the issuerId and accountIdentifier information cannot be changed.

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

Request Body schema: application/json
required
Any of:
id
string
createdAt
string <date-time>
updatedAt
string or null <date-time>
deletedAt
string or null <date-time>
externalId
string or null [ 1 .. 50 ] characters

A lender's identifier for an object.

After the object is successfully created, a lender can use ID or externalId identifiers to fetch the object.

To fetch the object using externalId you need to add ext- to the URL.

Note: Don't add ext- to the identifier value. For example: if the external identifier is ABCDE, then pass externalId=ACBCE and NOT ext-ABCDE when creating the object.

issuerId
string

The card issuer/vendor unique identifier. The card issuer must be configured in Peach.

galileoPrn
string

Unique 12-digit Galileo-generated account identifier.

galileoCad
string

Galileo-generated identifier for a specific card.

marqetaUserToken
string

Marqeta-generated identifier for a specific user.

marqetaBusinessToken
string

Marqeta-generated identifier for a specific business.

marqetaCardToken
string

Lender or Marqeta-generated unique identifier for the card.

marqetaCardProductToken
string

Marqeta-generated identifier for a specific card product.

lithicAccountToken
string

Lithic-generated identifier for an account holder (consumer or business).

lithicCardToken
string

Lithic-generated identifier for a specific card product.

object (CardDetailsWithPanAndCvv)

The card details.

type
string

The type of card issued. For loanType installment, only the only allowable value is virtualCard. For loanType lineOfCredit, virtual and credit card are accepted.

Value: "virtualCard"
object

The card balances. Only applicable to virtualCard type card objects.

Responses
200

Success

post/people/{personId}/loans/{loanId}/cards
Request samples
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "externalId": "string",
  • "issuerId": "string",
  • "galileoPrn": "string",
  • "galileoCad": "string",
  • "marqetaUserToken": "string",
  • "marqetaBusinessToken": "string",
  • "marqetaCardToken": "string",
  • "marqetaCardProductToken": "string",
  • "lithicAccountToken": "string",
  • "lithicCardToken": "string",
  • "cardDetails": {
    },
  • "type": "virtualCard",
  • "cardBalances": {
    }
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Get cards

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

query Parameters
showPan
boolean

Set to true to get the full PAN in the response. Special permission is required.

showCvv
boolean

Set to true to get the full CVV2 number in the response. Special permission is required.

refresh
boolean

If true, the Peach system will make new API calls to the card issuer to get the most recent card details and balances, and will store the new details in the Peach database. Otherwise, the Peach system will return the most recent details from its database.

Responses
200

Success

get/people/{personId}/loans/{loanId}/cards
Response samples
application/json
{
  • "status": 0,
  • "count": 0,
  • "data": [
    ]
}

Update card

The card details.

You can pass either issuerId + corresponding accountIdentifier for the card (e.g. accountIdentifiers.galileoCad) attributes or the cardDetails object.

If issuerId + card accountIdentifier attributes are passed and issuerEventsSubscriber is set to peach, Peach will sync the card status, transactions and balances with the loan ledger seamlessly. Note: these attributes must be passed if issuerEventsSubscriber is set to peach, because Peach will need the identifying information to tie the issuer's events to the proper card.

If cardDetails is passed, the card details will be stored in the Peach system as read-only. The lender is responsible for updating the loan details based on the card usage. Note: if cardDetails is passed without issuerId and accountIdentifier, issuerEventsSubscriber cannot be set to peach.

The card issuerId and accountIdentifier attributes can be updated only if the loan status is originated or pending. After the loan is activated, the issuerId and accountIdentifier information cannot be changed.

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

cardId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

The ID of the card. Can be Peach or lender's external identifier.

Request Body schema: application/json
required
Any of:
id
string
createdAt
string <date-time>
updatedAt
string or null <date-time>
deletedAt
string or null <date-time>
externalId
string or null [ 1 .. 50 ] characters

A lender's identifier for an object.

After the object is successfully created, a lender can use ID or externalId identifiers to fetch the object.

To fetch the object using externalId you need to add ext- to the URL.

Note: Don't add ext- to the identifier value. For example: if the external identifier is ABCDE, then pass externalId=ACBCE and NOT ext-ABCDE when creating the object.

issuerId
string

The card issuer/vendor unique identifier. The card issuer must be configured in Peach.

galileoPrn
string

Unique 12-digit Galileo-generated account identifier.

galileoCad
string

Galileo-generated identifier for a specific card.

marqetaUserToken
string

Marqeta-generated identifier for a specific user.

marqetaBusinessToken
string

Marqeta-generated identifier for a specific business.

marqetaCardToken
string

Lender or Marqeta-generated unique identifier for the card.

marqetaCardProductToken
string

Marqeta-generated identifier for a specific card product.

lithicAccountToken
string

Lithic-generated identifier for an account holder (consumer or business).

lithicCardToken
string

Lithic-generated identifier for a specific card product.

object (CardDetailsWithPanAndCvv)

The card details.

type
string

The type of card issued. For loanType installment, only the only allowable value is virtualCard. For loanType lineOfCredit, virtual and credit card are accepted.

Value: "virtualCard"
object

The card balances. Only applicable to virtualCard type card objects.

statusChangeReasonCode
string

The reason a card's status is being updated. Please see table below for allowable statuses based on reason code.

Peach Card Status Change Reason Code Allowable Peach Card Status
cardCanceled canceled
cardExpired expired
cardInvalid invalid
cardClosed terminated
cardDamaged terminated
cardFraudulent paused
cardInactive inactive
cardLost paused
cardPFraud paused
cardSuspended suspended
cardUnauthorized invalid
cardAcceptorActivityQuestionable paused
cardStolen terminated
Enum: "cardCanceled" "cardExpired" "cardInvalid" "cardClosed" "cardDamaged" "cardFraudulent" "cardInactive" "cardLost" "cardPFraud" "cardSuspended" "cardUnauthorized" "cardAcceptorActivityQuestionable" "cardStolen"
Responses
200

Success

put/people/{personId}/loans/{loanId}/cards/{cardId}
Request samples
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "deletedAt": "2019-08-24T14:15:22Z",
  • "externalId": "string",
  • "issuerId": "string",
  • "galileoPrn": "string",
  • "galileoCad": "string",
  • "marqetaUserToken": "string",
  • "marqetaBusinessToken": "string",
  • "marqetaCardToken": "string",
  • "marqetaCardProductToken": "string",
  • "lithicAccountToken": "string",
  • "lithicCardToken": "string",
  • "cardDetails": {
    },
  • "type": "virtualCard",
  • "cardBalances": {
    },
  • "statusChangeReasonCode": "cardCanceled"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Get card

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

cardId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

The ID of the card. Can be Peach or lender's external identifier.

query Parameters
showPan
boolean

Set to true to get the full PAN in the response. Special permission is required.

showCvv
boolean

Set to true to get the full CVV2 number in the response. Special permission is required.

refresh
boolean

If true, the Peach system will make new API calls to the card issuer to get the most recent card details and balances, and will store the new details in the Peach database. Otherwise, the Peach system will return the most recent details from its database.

Responses
200

Success

get/people/{personId}/loans/{loanId}/cards/{cardId}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Request sandbox access