Skip to content

Debit and Credit Cards Using /ibis

The /ibis endpoint is used to manage debit cards, credit cards, and vAccounts associated with existing connectFi customers.

Endpoint Action
/ibis/account/add Create a vAccount for a specified customer that is not automatically associated with a debit or credit card
/ibis/debit-card/add Create a debit card and associated vAccount for a specified customer
/ibis/credit-card/application Start a credit application
/ibis/credit-card/application/:applicationId Get the status of a credit application
/ibis/credit-card/add Add a credit card for a customer who has received credit approval
/ibis/card/activate Activate a card
/ibis/card/set-pin Set a card PIN
/ibis/card/check-pin Check a card PIN
/ibis/card/status Get the current status of a card
/ibis/card/set-status Set the status of a card
/ibis/card/cardholder-profile Get a card holder profile
/ibis/card/reissue Reissue a card
/ibis/card/list List cards/vAccounts for a specified customer
/ibis/financial/card-to-card Make a card to card funds transfer
/ibis/financial/funds-credit Push funds to a card
/ibis/financial/funds-debit Pull funds from a card
/ibis/financial/reversal Reverse a card to card funds transfer
/ibis/financial/retrieve Retrieve the details of a funds transfer
/ibis/inquiry/transaction-history Get the transaction history for a specified card

Add Account Only with /ibis

Request method and URL

POST /ibis/account/add

Description

This endpoint will add an ibis vAccount to an existing connectFi customer. The account that is created will not be automatically associated with a debit or credit card. The vAccountNumber and abaRoutingNumber are included as part of the response body.

To check the KYC/KYB status of a customer before requesting an ibis vAccount, you may use the /customer/status/:customerId endpoint and refer to the kycStatus attribute, or you may use the /akepa/status/:customerId endpoint and verify that the outcome for the KYC/KYB verification application is "Approved". Note that when using /akepa/status/:customerId, every entityApplications object must have an "approved" status in order for the overall verification application outcome to resolve to "Approved". It is the client's responsibility to check the KYC/KYB status before requesting card or account products if necessary.

The /ibis/account/add endpoint supports idempotency and will not accept requests with duplicate reference IDs. Multiple requests using the same reference ID will result in an error indicating that the specified reference ID already exists in the connectFi system. The external reference ID included in the request body is how connectFi controls for duplicate card requests. It is important to note that card requests submitted with unique reference IDs will not be considered duplicates, even if there are other properties with identical values. For example, the following requests are not considered duplicates.

{ //Two separate vAccounts will be added to this customer, since two requests were made with unique reference IDs (even though the remaining properties are identical)
    "customerId" : "cstap_4kuirHlq31JkYwNJtzUJn2", //same customer ID in connectFi
    "reference" : "EXT_REFERENCE_ID1", //Different reference IDs
}

{ //Two separate vAccounts will be added to this customer, since two requests were made with unique reference IDs (even though the remaining properties are identical)
    "customerId" : "cstap_4kuirHlq31JkYwNJtzUJn2", //same customer ID in connectFi
    "reference" : "EXT_REFERENCE_ID2", //Different reference IDs
}
Required Properties Description Schema Example Values
customerId Customer ID in connectFi string "cstap_52fZPjmd0jqFaR3FpZRhec"
reference An external alphanumeric reference ID (1-32 characters) for the account in your system string "extCrd118"
Additional Properties Description Schema Example Values
profile An object containing account holder details (required for business account holders only, nullable for individual customers) object See profile Object below

profile Object

Optional Properties Description Schema Example Values
occupation The occupation of the account holder string "Student"
Additional Properties Description Schema Example Values
accountHolderId A connectFi ID for the account holder (required for business account holders only, nullable for individual customers). Must match customerId if included for individual customers. string "extHldr123"
accountHolderType The type of account holder (required for business account holders only, nullable for individual customers). The value "representative" indicates that this account holder is categorized as a business representative of the business customer. The value "individual" indicates that this account holder is either an individual customer or an employee of a business customer, but is not categorized as a business representative. string "individual" or "representative"

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body examples

Individual Customer

{
    "customerId" : "cstap_2IJAI8v1tztwGgdF0tbaHu", //individual customer ID in connectFi
    "reference" : "extICrd267", //external reference in your system
}

OR

{
    "customerId" : "cstap_2IJAI8v1tztwGgdF0tbaHu", //individual customer ID in connectFi
    "reference" : "extICrd267", //external reference in your system
    "profile" : {
        "accountHolderType": "individual",
        "accountHolderId": "cstap_2IJAI8v1tztwGgdF0tbaHu" //same individual customer ID in connectFi
    }
}

Business Customer (business representative account holder)

{
    "customerId" : "cstab_6DwNo4XuvUYb33vFyAklGE", //customer ID in connectFi
    "reference" : "extBICrd297", //external reference in your system
    "profile" : {
        "accountHolderType": "representative",
        "accountHolderId": "cstab_6DwRI8fFRPro1zVNVy8bpe" //business representative ID in connectFi
    }
}

Business Customer (employee account holder)

{
    "customerId" : "cstab_6DwNo4XuvUYb33vFyAklGE", //customer ID in connectFi
    "reference" : "extBICrd298", //external reference in your system
    "profile" : {
        "accountHolderType": "individual",
        "accountHolderId": "cstap_lv8Et5vminK2msONiUFT6" //employee ID in connectFi
    }
}

Possible responses

200 (HTTP response status code) -- Account was created

{
    "code": "0", //Success
    "data": {
        "cFiAccountId": "icrd_3Yeh2SYzgv3JXR6zbIauCw", //account ID in connectFi
        "accountProgramId": "d_gpr_test", //program ID
        "cFiStatus": "Complete", //current status of account in connectFi
        "customerId": "cstap_2IJAI8v1tztwGgdF0tbaHu", //customer ID in connectFi
        "cFiAggregatorId": "evolve",
        "reference": "extICrd267", //external reference in your system
        "memberNumber": "cstcp_bAceHsbtuPoKTuP3I6zZS", //cFiCommonCustomerId in connectFi
        "programType": "vAccountOnly",
        "boReferenceId": "110195630208951", //reference ID in the back office
        "boCustomerId": "110000001956302089", //customer ID in the back office
        "vAccountNumber": "1234567890123456", //vAccountNumber for the account
        "abaRoutingNumber": "122244184", //routing number for the account
        "dtsCreatedAt": "2023-07-07T16:01:18.780Z",
        "batchReferenceId": "1047462",
        "transId": "F2165741062",
        "batchRecordId": "1728609",
        "fee": 0,
        "balance": 0,
        "lastDepositAmount": 0,
        "ledgerBalance": 0
    },
    "requestId": "826b03001cdf11ee8d0856da8a867924"
}

400 (HTTP response status code) -- Reference already exists

In this example, an account with the requested reference ID already exists. /ibis endpoints support idempotency, therefore reference IDs cannot be reused.

{
    "requestId": "70838b906e8c11eebc4256da8a8696e4",
    "code": "referenceExists",
    "context": {
        "reference": "extIAcct289",
        "entityId": "icrd_6CWtK180lY8ctp9uhodRMY"
    },
    "message": "Reference already exists."
}

400 (HTTP response status code) -- Must have required property

In this example, the request body is missing a required field.

{
    "requestId": "98ba7f606e8c11eebc4256da8a8696e4",
    "code": "requestValidateError",
    "context": [
        {
            "instancePath": "",
            "schemaPath": "#/required",
            "keyword": "required",
            "params": {
                "missingProperty": "customerId"
            },
            "message": "must have required property 'customerId'"
        }
    ]
}

Back to Top

Add a Debit Card with /ibis

Request method and URL

POST /ibis/debit-card/add

Description

This endpoint initializes a debit card for an existing connectFi customer. To check the KYC/KYB status of a customer before requesting an ibis debit card, you may use the /customer/status/:customerId endpoint and refer to the kycStatus attribute, or you may use the /akepa/status/:customerId endpoint and verify that the outcome for the KYC/KYB verification application is "Approved". Note that when using /akepa/status/:customerId, every entityApplications object must have an "approved" status in order for the overall verification application outcome to resolve to "Approved". It is the client's responsibility to check the KYC/KYB status before requesting card or account products if necessary.

The /ibis/debit-card/add endpoint supports idempotency and will not accept requests with duplicate reference IDs. Multiple requests using the same reference ID will result in an error indicating that the specified reference ID already exists in the connectFi system. The external reference ID included in the request body is how connectFi controls for duplicate card requests. It is important to note that card requests submitted with unique reference IDs will not be considered duplicates, even if there are other properties with identical values. For example, the following requests are not considered duplicates.

{ //Two separate debit cards will be added to this customer, since two requests were made with unique reference IDs (even though the remaining properties are identical)
    "customerId" : "cstap_4kuirHlq31JkYwNJtzUJn2", //same customer ID in connectFi
    "reference" : "EXT_REFERENCE_ID1", //Different reference IDs
    "cardProgramId": "d_gpr_test", //same card program
    "profile" : { //same profile data
        "occupation" : "Student",
        "nameOnCard" : "JOHN TESTMAN"
    }
}

{ //Two separate debit cards will be added to this customer, since two requests were made with unique reference IDs (even though the remaining properties are identical)
    "customerId" : "cstap_4kuirHlq31JkYwNJtzUJn2", //same customer ID in connectFi
    "reference" : "EXT_REFERENCE_ID2", //Different reference IDs
    "cardProgramId": "d_gpr_test", //same card program
    "profile" : { //same profile data
        "occupation" : "Student",
        "nameOnCard" : "JOHN TESTMAN"
    }
}
Required Properties Description Schema Example Values
customerId Customer ID in connectFi string "cstap_52fZPjmd0jqFaR3FpZRhec"
reference An external alphanumeric reference ID (1-32 characters) for the card in your system string "extCrd118"
cardProgramId The card program ID (the /ibis methods allowed may be limited by the chosen card program) string "d_gpr_test"
profile An object containing card holder details object See profile Object below
Additional Properties Description Schema Example Values
businessInfo An object containing business details (required for business customers only) Object See businessInfo Object below
cFiPrimaryCardId The card ID in connectFi of the primary card. (If included, the returned card will be a secondary card account. If excluded, the returned card will be a primary card account.) string "icrd_1TstWQoBWENbktDzHv5wmI"

profile Object

Required Properties Description Schema Example Values
nameOnCard The name that will be displayed on the card string "JOHN TESTMAN"
occupation The occupation of the card holder string "Student"
Additional Properties Description Schema Example Values
cardHolderId An ID for the cardholder (required for business card holders only, nullable for individual customers). Must match customerId if included for individual customers. string "extHldr123"
cardHolderType The type of card holder (required for business card holders only, nullable for individual customers). The value "representative" indicates that this card holder is categorized as a business representative of the business customer. The value "individual" indicates that this card holder is either an individual customer or an employee of a business customer, but is not categorized as a business representative. string "individual" or "representative"

businessInfo Object

Required Properties Description Schema Example Values
companyNameOnCard The name of the company with which the business card is associated string "ABC123 Inc."

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body examples

Individual Customer

{
    "customerId" : "cstap_52fZPjmd0jqFaR3FpZRhec", //customer ID in connectFi
    "reference" : "extCrd119", //external reference in your system
    "cardProgramId": "d_gpr_test", //card program ID
    "profile" : {
        "occupation" : "Student",
        "nameOnCard" : "JOHN TESTMAN"
    }
}

OR

{
    "customerId" : "cstap_52fZPjmd0jqFaR3FpZRhec", //customer ID in connectFi
    "reference" : "extCrd119", //external reference in your system
    "cardProgramId": "d_gpr_test", //card program ID
    "profile" : {
        "occupation" : "Student",
        "nameOnCard" : "JOHN TESTMAN",
        "cardHolderType": "individual", //will be ignored if the value of cardHolderType is "representative" for an individual customer
        "cardHolderId": "cstap_52fZPjmd0jqFaR3FpZRhec" //same individual customer ID in connectFi
    }
}

Business Customer (business representative card holder)

{
    "customerId" : "cstab_6DwNo4XuvUYb33vFyAklGE", //customer ID in connectFi
    "reference" : "extBCrd138",  //external reference in your system
    "cardProgramId": "d_gpr_test", //card program ID
    "businessInfo" : {
        "companyNameOnCard" : "ABC123 Inc."
    },
    "profile" : {
        "cardHolderId" : "cstab_1Vu13vFOsYLXR2TsvmaB15", //business representative ID in connectFi
        "cardHolderType": "representative",
        "occupation" : "Business Owner",
        "nameOnCard" : "JOHN TESTMAN"
    }
}

Business Customer (employee card holder)

{
    "customerId" : "cstab_6DwNo4XuvUYb33vFyAklGE", //customer ID in connectFi
    "reference" : "extBCrd138",  //external reference in your system
    "cardProgramId": "d_gpr_test", //card program ID
    "businessInfo" : {
        "companyNameOnCard" : "ABC123 Inc."
    },
    "profile" : {
        "cardHolderId" : "cstap_lv8Et5vminK2msONiUFT6", //employee ID in connectFi
        "cardHolderType": "individual",
        "occupation" : "ABC123 Technician",
        "nameOnCard" : "JOHN TESTMAN"
    }
}

Possible responses

200 (HTTP response status code) -- Debit card was created

{
    "code": "0", //Success
    "data": {
        "cFiCardId": "icrd_1oSrT1U8G73S5Jdt27YvYk", //card ID in connectFi
        "cFiStatus": "Complete", //current status of card in connectFi
        "customerId": "cstap_52fZPjmd0jqFaR3FpZRhec", //customer ID in connectFi
        "cFiAggregatorId": "evolve",
        "reference": "extCrd119", //external reference in your system
        "memberNumber": "cstcp_52e2LP956OeKH3dnaDBVlS", //cFiCommonCustomerId in connectFi
        "cardProgramId": "d_gpr_test", //card program ID
        "programType": "debit",
        "boReferenceId": "123456789012", //reference ID in the back office
        "boCustomerId": "333000000001234567", //customer ID in the back office
        "vAccountNumber": "1234567890123456",
        "abaRoutingNumber": "122244184",
        "dtsCreatedAt": "2023-03-15T18:19:36.135Z",
        "newCardNumber": {
            "number": "1234567890123456", //16 digit card PAN
            "expiryDate": "032026" //card expiration date
        },
        "batchReferenceId": "838161",
        "nameOnCard": "JOHN TESTMAN",
        "transId": "F2156023329",
        "batchRecordId": "1518398",
        "fee": 0,
        "balance": 0, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 0 //ledger balance
    },
    "requestId": "f0e640f0c35d11edaa15c5641dffda7c"
}

400 (HTTP response status code) -- Reference already exists

In this example, a debit card with the same reference ID already exists. /ibis endpoints support idempotency, therefore reference IDs cannot be reused.

{
    "requestId": "089834906e9111eebc4256da8a8696e4",
    "code": "referenceExists",
    "context": {
        "reference": "extBCrd190",
        "entityId": "icrd_3r2Jh1t0G4IXFvz5Q559cQ"
    },
    "message": "Reference already exists."
}

400 (HTTP response status code) -- Card program not found

In this example, the cardProgramId used was invalid.

{
    "requestId": "71286f606e9211eebc4256da8a8696e4",
    "code": "ibisProgramNotSupported",
    "context": {
        "programId": "d_gpr_test1"
    },
    "message": "The requested card or account program is not supported for this customer."
}

Back to Top

Apply for Credit with /ibis

Request method and URL

POST /ibis/credit-card/application

Description

This endpoint initializes a credit card application for the indicated customer. To check the KYC/KYB status of a customer before requesting an ibis debit card, you may use the /customer/status/:customerId endpoint and refer to the kycStatus attribute, or you may use the /akepa/status/:customerId endpoint and verify that the outcome for the KYC/KYB verification application is "Approved". Note that when using /akepa/status/:customerId, every entityApplications object must have an "approved" status in order for the overall verification application outcome to resolve to "Approved". It is the client's responsibility to check the KYC/KYB status before requesting card or account products if necessary.

Note: It is possible to have multiple credit applications for the same customer. For example, the following requests may result in two separate credit applications.

{ //same customer data
    "customerId" : "cstap_1Vu13vFOsYLXR2Tsvm68jW",
    "employer" : "ABC123 Inc.",
    "totalAnnualIncome" : 50000,
    "totalAnnualIncomeCurrency" : "USD"
}

{ //same customer data
    "customerId" : "cstap_1Vu13vFOsYLXR2Tsvm68jW",
    "employer" : "ABC123 Inc.",
    "totalAnnualIncome" : 50000,
    "totalAnnualIncomeCurrency" : "USD"
}
Required Properties Description Schema Example Values
customerId Customer ID in connectFi string "cstap_1Vu13vFOsYLXR2Tsvm68jW"
employer The card holder's employer string "ABC123 Inc."
totalAnnualIncome The card holder's total annual income number, >=0 50000
totalAnnualIncomeCurrency A three character ISO alphabetic code to identify the currency String, regex pattern: "^[A-Z]{3}$" "USD"

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example

{
    "customerId" : "cstap_1Vu13vFOsYLXR2Tsvm68jW", //customer ID in connectFi
    "employer" : "ABC123 Inc.", //card holder's employer
    "totalAnnualIncome" : 50000, //card holder's total annual income
    "totalAnnualIncomeCurrency" : "USD" //currency code (represented by 3 characters)
}

Possible responses

200 (HTTP response status code) -- Application was initialized

{
    "code": "0", //Success
    "data": {
        "applicationId": "gsa_1odQnDkGpFw6h3CPABjMW0", //application ID in connectFi
        "customerId": "cstap_1Vu13vFOsYLXR2Tsvm68jW", //customer ID in connectFi
        "creditFreeze": false, //true if the customer is under a credit freeze
        "creditLimit": 2700, //credit limit is present if the "decision" property has an "Approve" value
        "creditLimitCurrency": "USD", //currency code (represented by 3 characters)
        "decision": "Approve", //current application decision status
        "adverseAction": []
    },
    "requestId": "2db13360e8f611ed90c856da8a864fc4"
}

400 (HTTP response status code) -- Customer requires KYC/KYB

In this example, a credit application request was made before the customer has passed the KYC/KYB process with an "APPROVED" status.

{
    "requestId": "e2dc0ac0733011ee94f256da8a860d80",
    "code": "kycNotInitialized",
    "context": {
        "customerId": "cstap_6CE6xwrQbTXb8RB2zp2qB2"
    },
    "message": "KYC/KYB identification not found for this customer."
}

Back to Top

Get Credit Card Application Status with /ibis

Request method and URL

GET /ibis/credit-card/application/:applicationId

Description

This endpoint retrieves the current details of an existing credit card application for the indicated customer. The applicationId is passed as a path parameter.

Request headers

{
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example None

Possible responses

200 (HTTP response status code) -- Application status was retrieved

{
    "code": "0", //Success
    "data": {
        "applicationId": "gsa_1odQnDkGpFw6h3CPABjMW0", //application ID in connectFi
        "customerId": "cstap_1Vu13vFOsYLXR2Tsvm68jW", //customer ID in connectFi
        "creditFreeze": false, //true if the customer is under a credit freeze
        "creditLimit": 2700, //credit limit is present if the "decision" property has an "Approve" value
        "creditLimitCurrency": "USD", //currency code (represented by 3 characters)
        "decision": "Approve", //current application decision status
        "adverseAction": []
    },
    "requestId": "9c9acbf0e8f711edab7956da8a863158"
}

400 (HTTP response status code) -- Application not found

In this example, the applicationId requested does not exist.

{
    "requestId": "7980f1206e9511eebc4256da8a8696e4",
    "code": "ibisApplicationNotFound",
    "context": {
        "applicationId": "gsa_hsTrKNlU8sapLGjUimPrG1"
    },
    "message": "Credit application not found."
}

Back to Top

Add a Credit Card with /ibis

Request method and URL

POST /ibis/credit-card/add

Description

This endpoint will add a new credit card to the specified customer if the customer has an approved credit application on file.

The /ibis/credit-card/add endpoint supports idempotency and will not accept requests with duplicate reference IDs. Multiple requests using the same reference ID will result in an error indicating that the specified reference ID already exists in the connectFi system. The external reference ID included in the request body is how connectFi controls for duplicate card requests. It is important to note that card requests submitted with unique reference IDs will not be considered duplicates, even if there are other properties with identical values. For example, the following requests are not considered duplicates.

{ //Two separate credit cards may be added to this customer if the customer's credit limit allows, since two requests were made with unique reference IDs (even though the remaining properties are identical)
    "customerId" : "cstap_1Vu13vFOsYLXR2Tsvm68jW",
    "reference" : "EXT_REFERENCE_ID1", //Different reference IDs
    "cardProgramId": "Evolve_Test", 
    "applicationId": "gsa_1odQnDkGpFw6h3CPABjMW0",
    "profile" : {
        "occupation" : "Student",
        "nameOnCard" : "JOHN TESTMAN"
    },
    "creditLimit": 500,
    "creditLimitCurrency": "USD"
}

{ //Two separate credit cards may be added to this customer if the customer's credit limit allows, since two requests were made with unique reference IDs (even though the remaining properties are identical)
    "customerId" : "cstap_1Vu13vFOsYLXR2Tsvm68jW",
    "reference" : "EXT_REFERENCE_ID2", //Different reference IDs
    "cardProgramId": "Evolve_Test", 
    "applicationId": "gsa_1odQnDkGpFw6h3CPABjMW0",
    "profile" : {
        "occupation" : "Student",
        "nameOnCard" : "JOHN TESTMAN"
    },
    "creditLimit": 500,
    "creditLimitCurrency": "USD"
}
Required Properties Description Schema Example Values
customerId Customer ID in connectFi string "cstap_1Vu13vFOsYLXR2Tsvm68jW"
reference An external alphanumeric reference ID (1-32 characters) for the card in your system string "extCrd120"
profile An object containing card holder details object See profile Object
cardProgramId The card program ID (the /ibis methods allowed may be limited by the chosen card program) string "Evolve_Test"
applicationId The application ID in connectFi string "gsa_1odQnDkGpFw6h3CPABjMW0"
creditLimit The requested card holder credit limit for this card. The minimum and maximum values are configured based on the card program ID. number, >=0 600
creditLimitCurrency A three character ISO alphabetic code to identify the currency string, regex pattern: "^[A-Z]{3}$" "USD"
Optional Properties Description Schema Example Values
businessInfo An object containing business details if this is a business card Object See businessInfo Object

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example

Individual Customer

{
    "customerId" : "cstap_1Vu13vFOsYLXR2Tsvm68jW", //customer ID in connectFi
    "reference" : "324333260", //external reference in your system
    "cardProgramId": "Evolve_Test", //card program ID
    "applicationId": "gsa_1odQnDkGpFw6h3CPABjMW0", //application ID in connectFi
    "profile" : {
        "occupation" : "Student",
        "nameOnCard" : "JOHN TESTMAN"
    },
    "creditLimit": 600, //requested credit limit
    "creditLimitCurrency": "USD" //currency code (represented by 3 characters)
}

Possible responses

200 (HTTP response status code) -- Credit card was added

{
    "code": "0", //Success
    "data": {
        "cFiCardId": "icrd_5lFBjJG6pPlapyodSxZ97a", //card ID in connectFi
        "cFiStatus": "Complete", //current status of card in connectFi - "Initiated", "Complete", or "Error"
        "customerId": "cstap_1Vu13vFOsYLXR2Tsvm68jW", //customer ID in connectFi
        "cFiAggregatorId": "evolve",
        "reference": "324333260", //external reference in your system
        "memberNumber": "cstcp_bAceHsbtuPoKTuP3I6zZS", //cFiCommonCustomerId in connectFi
        "cardProgramId": "Evolve_Test", //card program ID
        "boReferenceId": "123456789012", //reference ID in the back office
        "boCustomerId": "333000000001234567", //customer ID in the back office
        "vAccountNumber": "1234567890123456",
        "abaRoutingNumber": "121182810",
        "dtsCreatedAt": "2023-05-02T15:12:00.185Z",
        "newCardNumber": {
            "number": "1234567890123456", //16 digit card PAN
            "expiryDate": "052026" //card expiration date
        },
        "batchReferenceId": "942860",
        "nameOnCard": "JOHN TESTMAN", //card holder name as shown on card
        "transId": "F10287390",
        "batchRecordId": "955680",
        "fee": 0,
        "balance": 0, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 0 //ledger balance
    },
    "requestId": "afaf73e0e8fb11edab7956da8a863158"
}

400 (HTTP response status code) -- Application is not approved

In this example, a request was made to add a credit card to a customer whose application has not yet been approved.

{
    "requestId": "e2b550a06e9511eebc4256da8a8696e4",
    "code": "ibisApplicationIsNotApproved",
    "context": {
        "applicationId": "gsa_74gOOiTLXLB0xGxAM3r6ac" //application ID in connectFi
    },
    "message": "Application is not APPROVED."
}

400 (HTTP response status code) -- Reference ID exists

In this example, a request was made using a reference ID that already exists.

{
    "requestId": "089834906e9111eebc4256da8a8696e4",
    "code": "referenceExists",
    "context": {
        "reference": "extBCrd190",
        "entityId": "cstap_3r2Jh1t0G4IXFvz5Q559cQ"
    },
    "message": "Reference already exists."
}

400 (HTTP response status code) -- Requested credit limit is over the approved credit limit for this customer

In this example, a request was made with a desired credit limit of 3600, but the customer's credit application was only approved for a limit of up to 2700.

{
    "requestId": "1ee1d3506e9611eebc4256da8a8696e4",
    "code": "ibisApplicationCreditLimit",
    "context": {
        "applicationId": "gsa_3CewkFVb2fHgIUUHJkKm8",
        "creditLimit": 2700
    },
    "message": "Credit limit in application is less than the requested credit limit."
}

400 (HTTP response status code) -- Allocated credit limit must be less than or equal to ___

In this example, the customer is requesting a card with a credit limit of 2600. Even though the requested credit limit of 2600 is less than the 2700 approved credit limit for this customer, it is over the allocated credit limit of 2000 for a single card.

{
    "requestId": "4bc8baa06e9611eebc4256da8a8696e4",
    "code": "extIbis",
    "subCode": "12",
    "context": {
        "transId": "F12584198",
        "fee": 0
    },
    "message": "New Card Purchase Decline (Allocated credit limit must be less than or equal to [2000.0]; )"
}

400 (HTTP response status code) -- Allocated credit limit must be greater than or equal to ___

In this example, a request was made for a card with a 200 credit limit, which is below the minimum 500 credit limit threshold.

{
    "requestId": "7a5ae0f06e9611eebc4256da8a8696e4",
    "code": "extIbis",
    "subCode": "12",
    "context": {
        "transId": "F12584199",
        "fee": 0
    },
    "message": "New Card Purchase Decline (Allocated credit limit must be greater than or equal to [500.0]; )"
}

Back to Top

Activate a Card

Request method and URL

POST /ibis/card/activate

Description

Use this endpoint to activate a card created with /ibis. A successful request will activate the card and return the relevant details for the card.

Required Properties Description Schema Example Values
cFiCardId The card ID in connectFi string "icrd_1oSrT1U8G73S5Jdt27YvYk"
Optional Properties Description Schema Example Values
attributes An object containing an optional cardExpDate property, nullable object { //See attributes Object below }

attributes Object

Optional Properties Description Schema Example Values
cardExpDate The card expiration date in MMYY format, nullable string, regex pattern "^\d{4}$" "1226"

Status Values Allowed

An /ibis/card/activate request can successfully be made for cards with the following status values: "A" (Pre-Active), "S" (OFF), "I". (Inactive)

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example

{
    "cFiCardId" : "icrd_6UkNHDUvtNpY39qAyWAruU"  //card ID in connectFi
}

Possible responses

200 (HTTP response status code) -- Card was activated

{
    "code": "0", //Success
    "data": {
        "cFiCardId": "icrd_6UkNHDUvtNpY39qAyWAruU",  //card ID in connectFi
        "cFiStatus": "Complete", //current status of card in connectFi
        "customerId": "cstap_52fZPjmd0jqFaR3FpZRhec", //customer ID in connectFi
        "cFiAggregatorId": "evolve",
        "reference": "extCrd118", //external reference in your system
        "memberNumber": "cstcp_52e2LP956OeKH3dnaDBVlS",  //cFiCommonCustomerId in connectFi
        "cardProgramId": "d_gpr_test", //card program ID
        "programType": "debit",
        "boReferenceId": "123456789012", //reference ID in the back office
        "boCustomerId": "333000000001234567", //customer ID in the back office
        "vAccountNumber": "1234567890123456",
        "abaRoutingNumber": "122244184",
        "dtsCreatedAt": "2023-03-15T18:47:50.599Z",
        "expiryDate": "032026", //card expiration date
        "cardReferenceId": "110195062153442",
        "maaSubUnSubRespDesc": "Approved",
        "transId": "F2156023986",
        "fee": 0,
        "balance": 0, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit
        "ledgerBalance": 0 //ledger balance
    },
    "requestId": "195b94f0c36c11edaa15c5641dffda7c"
}

400 (HTTP response status code) -- Card is already active

A request was made to activate a card that has already been activated.

{
    "requestId": "eabf40606e9c11eebc4256da8a8696e4",
    "code": "extIbis",
    "subCode": "97",
    "context": {
        "transId": "F2165959893",
        "fee": 0
    },
    "message": "Activate Debit Card Decline (Card is already active)"
}

400 (HTTP response status code) -- The given card is closed

In this example, the given card is closed (status code "F" - Closed Card).

{
    "requestId": "37b936f06e9d11eebc4256da8a8696e4",
    "code": "extIbis",
    "subCode": "SD",
    "context": {
        "transId": "F2165959898",
        "fee": 0
    },
    "message": "Activate Debit Card Decline (Closed Card)"
}

Back to Top

Set a Card PIN with /ibis

Request method and URL

POST /ibis/card/set-pin

Description

This endpoint will set a specified valid PIN for the given card. The PIN must be set using /ibis/card/set-pin before an /ibis/card/check-pin request can succeed. You may use this endpoint to set an initial card PIN, as well as to update an existing card PIN.

Required Properties Description Schema Example Values
cFiCardId The card ID in connectFi string "icrd_1PnLbkm5fJpMELm4Z8l2AM"
pin A four digit PIN string, regex pattern: "^\d{4}$" "1234"

Status Values Allowed

An /ibis/card/set-pin request can successfully be made for pre-active (status "A") and active/ON (status "B") cards.

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example

{
    "cFiCardId" : "icrd_1PnLbkm5fJpMELm4Z8l2AM", //card ID in connectFi
    "pin" : "1234"
}

Possible responses

200 (HTTP response status code) -- Success, the PIN was set

{
    "code": "0", //Success
    "data": {
        "cFiCardId": "icrd_1PnLbkm5fJpMELm4Z8l2AM", //card ID in connectFi
        "cFiStatus": "Complete", //current status of card in connectFi - "Initiated", "Complete", or "Error"
        "customerId": "cstap_52fZPjmd0jqFaR3FpZRhec", //customer ID in connectFi
        "cFiAggregatorId": "evolve",
        "reference": "extCrd127", //external reference in your system
        "memberNumber": "cstcp_52e2LP956OeKH3dnaDBVlS", //cFiCommonCustomerId in connectFi
        "cardProgramId": "d_gpr_test", //card program ID
        "programType": "debit",
        "boReferenceId": "123456789012", //reference ID in the back office
        "boCustomerId": "333000000001234567", //customer ID in the back office
        "vAccountNumber": "1234567890123456",
        "abaRoutingNumber": "121182810",
        "dtsCreatedAt": "2023-03-17T18:12:10.275Z",
        "cardProgramName": "GPR Card Program",
        "transId": "F2156126323",
        "fee": 0,
        "balance": 0, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 0 //ledger balance
    },
    "requestId": "8650fb50c4f111ed996dc5641dffde20"
}

400 (HTTP response status code) -- Must match pattern

A PIN must be a 4 digit numeric string.

{
    "requestId": "43bcea10c4f111ed996dc5641dffde20",
    "code": "requestValidateError",
    "context": [
        {
            "instancePath": "/pin",
            "schemaPath": "#/properties/pin/pattern",
            "keyword": "pattern",
            "params": {
                "pattern": "^\\d{4}$"
            },
            "message": "must match pattern \"^\\d{4}$\""
        }
    ]
}

400 (HTTP response status code) -- The given card is blocked

In this example, the given card has been blocked (status code "S" - blocked because lost or suspected fraud).

{
    "requestId": "212683f0c4f411ed996dc5641dffde20",
    "code": "extIbis",
    "subCode": "59",
    "context": {
        "transId": "F2156126360",
        "fee": 0
    },
    "message": "Set Card PIN Decline (Suspected Fraud Hit, Card is Already Blocked)"
}

400 (HTTP response status code) -- The given card is inactive

In this example, the given card is inactive (status code "I" - inactive).

{
    "requestId": "77c3b6a0c4f511ed996dc5641dffde20",
    "code": "extIbis",
    "subCode": "SA",
    "context": {
        "transId": "F2156126375",
        "fee": 0
    },
    "message": "Set Card PIN Decline (Inactive Card)"
}

400 (HTTP response status code) -- The given card is closed

In this example, the given card is closed (status code "F" - Closed Card).

{
    "requestId": "388cbda0c4f611ed996dc5641dffde20",
    "code": "extIbis",
    "subCode": "SD",
    "context": {
        "transId": "F2156126393",
        "fee": 0
    },
    "message": "Set Card PIN Decline (Closed Card)"
}

Back to Top

Check a Card PIN with /ibis

Request method and URL

POST /ibis/card/check-pin

Description

This endpoint accepts requests to check to see if a specified PIN matches the given card PIN. The request is successful only if the PIN is a match. The PIN must be set using an /ibis/card/set-pin request before attempting to check the PIN. In addition, the request will fail if the card has not yet been activated, even if the correct PIN is given. Make sure to activate the card with an /ibis/card/activate request before checking for a PIN match.

Required Properties Description Schema Example Values
cFiCardId The card ID in connectFi string "icrd_1PnLbkm5fJpMELm4Z8l2AM"
pin A four digit PIN to check for a match against the PIN stored for the given card string, regex pattern: "^\d{4}$" "1234"

Status Values Allowed

An /ibis/card/check-pin request can successfully be made for cards with the following status values: "B" (ON).

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example

{
    "cFiCardId" : "icrd_1PnLbkm5fJpMELm4Z8l2AM", //card ID in connectFi
    "pin" : "1234"
}

Possible responses

200 (HTTP response status code) -- Success, the given PIN matches the stored PIN for the card

{
    "code": "0", //Success
    "data": {
        "cFiCardId": "icrd_1PnLbkm5fJpMELm4Z8l2AM", //card ID in connectFi
        "cFiStatus": "Complete", //current status of card in connectFi - "Initiated", "Complete", or "Error"
        "customerId": "cstap_52fZPjmd0jqFaR3FpZRhec", //customer ID in connectFi
        "cFiAggregatorId": "evolve",
        "reference": "extCrd127", //external reference in your system
        "memberNumber": "cstcp_52e2LP956OeKH3dnaDBVlS", //cFiCommonCustomerId in connectFi
        "cardProgramId": "d_gpr_test", //card program ID
        "programType": "debit",
        "boReferenceId": "123456789012", //reference ID in the back office
        "boCustomerId": "333000000001234567", //customer ID in the back office
        "vAccountNumber": "1234567890123456",
        "abaRoutingNumber": "121182810",
        "dtsCreatedAt": "2023-03-17T18:12:10.275Z",
        "transId": "F2156126330",
        "fee": 0,
        "balance": 0, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 0 //ledger balance
    },
    "requestId": "520a4d50c4f211ed996dc5641dffde20"
}

400 (HTTP response status code) -- The given card is pre-active

In this example, the given card has not yet been activated (status code "A" - pre-active).

{
    "requestId": "36c48f80c4f011ed996dc5641dffde20",
    "code": "extIbis",
    "subCode": "PA",
    "context": {
        "transId": "F2156126313",
        "fee": 0
    },
    "message": "Card Number(99*************4286) is pre-active"
}

400 (HTTP response status code) -- The given card is blocked

In this example, the given card has been blocked (status code "S" - blocked because lost or suspected fraud).

{
    "requestId": "bc4c56d0c4f311ed996dc5641dffde20",
    "code": "extIbis",
    "subCode": "59",
    "context": {
        "transId": "F2156126354",
        "fee": 0
    },
    "message": "Card Number(99*************4286) is blocked due to suspected fraud"
}

400 (HTTP response status code) -- The given card is inactive

In this example, the given card is inactive (status code "I" - inactive).

{
    "requestId": "54752b70c4f511ed996dc5641dffde20",
    "code": "extIbis",
    "subCode": "SA",
    "context": {
        "transId": "F2156126374",
        "fee": 0
    },
    "message": "Card Number(99*************4286) is inactive"
}

400 (HTTP response status code) -- The given card is closed

In this example, the given card is closed (status code "F" - Closed Card).

{
    "requestId": "8f126620c4f611ed996dc5641dffde20",
    "code": "extIbis",
    "subCode": "SD",
    "context": {
        "transId": "F2156126396",
        "fee": 0
    },
    "message": "Card Number(99*************4286) is closed"
}

400 (HTTP response status code) -- Invalid PIN supplied

In this example, the specified PIN is not a match for the given card.

{
    "requestId": "25fa8190c4f111ed996dc5641dffde20",
    "code": "extIbis",
    "subCode": "55",
    "context": {
        "transId": "F2156126322",
        "fee": 0
    },
    "message": "Invalid PIN supplied for Card No(99*************4286)"
}

400 (HTTP response status code) -- Must match pattern

A PIN must be a 4 digit numeric string.

{
    "requestId": "43bcea10c4f111ed996dc5641dffde20",
    "code": "requestValidateError",
    "context": [
        {
            "instancePath": "/pin",
            "schemaPath": "#/properties/pin/pattern",
            "keyword": "pattern",
            "params": {
                "pattern": "^\\d{4}$"
            },
            "message": "must match pattern \"^\\d{4}$\""
        }
    ]
}

Back to Top

Get the Status of a Card

Request method and URL

POST /ibis/card/status

Description

Use this endpoint to check the status of a card created with /ibis. A successful request will return the available details for the requested card. Either the cFiCardId or the reference ID can be used to request the card status, but not both in the same request.

Required Properties Description Schema Example Values
cFiCardId The card ID in connectFi string "icrd_1oSrT1U8G73S5Jdt27YvYk"

OR

Required Properties Description Schema Example Values
reference An external alphanumeric reference ID (1-32 characters) for the card in your system string "extCrd119"

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body examples

Using cFiCardId:

{
    "cFiCardId" : "icrd_1oSrT1U8G73S5Jdt27YvYk" //card ID in connectFi
}

Using reference:

{
    "reference" : "extCrd119" //external reference in your system
}

Possible responses

200 (HTTP response status code) -- Card details are returned

{
    "code": "0", //Success
    "data": {
        "cFiCardId": "icrd_1oSrT1U8G73S5Jdt27YvYk", //card ID in connectFi
        "cFiStatus": "Complete", //current status of card in connectFi - "Initiated", "Complete", or "Error"
        "customerId": "cstap_52fZPjmd0jqFaR3FpZRhec", //customer ID in connectFi
        "cFiAggregatorId": "evolve",
        "reference": "extCrd119", //external reference in your system
        "memberNumber": "cstcp_52e2LP956OeKH3dnaDBVlS", //cFiCommonCustomerId in connectFi
        "cardProgramId": "d_gpr_test", //card program ID
        "programType": "debit",
        "boReferenceId": "123456789012", //reference ID in the back office
        "boCustomerId": "333000000001234567", //customer ID in the back office
        "vAccountNumber": "1234567890123456",
        "abaRoutingNumber": "121182810",
        "dtsCreatedAt": "2023-03-15T19:04:15.498Z",
        "isBadPinTriesExceeded": "N",
        "status": {
            "code": "A", //Newly issued card, not yet activated
            "description": "Card was issued but has not yet been activated"
        },
        "transitionFlag": "N",
        "isOfflinePinTryLimitExceeded": "N",
        "fee": 0,
        "balance": 0, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 0 //ledger balance
    },
    "requestId": "4c8018d0c36511edaa15c5641dffda7c"
}

400 (HTTP response status code) -- Must match exactly one schema in oneOf, must NOT have additional properties

In this example, both the cFiCardId property and the reference ID property were used in the same request. Use only one type of ID in a single request.

{
    "requestId": "abab8cc0c43911ed9e40c5641e001f9c",
    "code": "requestValidateError",
    "context": [
        {
            "instancePath": "",
            "schemaPath": "#/oneOf/0/additionalProperties",
            "keyword": "additionalProperties",
            "params": {
                "additionalProperty": "reference"
            },
            "message": "must NOT have additional properties"
        },
        {
            "instancePath": "",
            "schemaPath": "#/oneOf/1/additionalProperties",
            "keyword": "additionalProperties",
            "params": {
                "additionalProperty": "cFiCardId"
            },
            "message": "must NOT have additional properties"
        },
        {
            "instancePath": "",
            "schemaPath": "#/oneOf",
            "keyword": "oneOf",
            "params": {
                "passingSchemas": null
            },
            "message": "must match exactly one schema in oneOf"
        }
    ]
}

Back to Top

Set the Status of a Card

Request method and URL

POST /ibis/card/set-status

Description

Use this endpoint to set the status of a card created with /ibis. A successful request will update the card status and return the relevant details for the requested card.

Required Properties Description Schema Example Values
cFiCardId The card ID in connectFi string "icrd_1oSrT1U8G73S5Jdt27YvYk"
statusCode The desired status code, see Ibis Card Status Codes below string "I", "B", "S", or "F"
Optional Properties Description Schema Example Values
description An optional description of the reason for the status update (1-60 characters) string "Lost the card"

Ibis Card Status Codes

The following table gives a brief description of each status code and specifies which /ibis/card/ endpoints are allowed for the given status codes.

Status Code Description activate allowed? check-pin allowed? set-pin allowed? status allowed? set-status allowed?
"A" Card was issued but has not yet been activated (This is an initial card status only. You may not set a card to this status value through this endpoint.) Yes NO Yes Yes Yes
"B" ON, Open - All Transactions Allowed NO Yes Yes Yes Yes
"I" Inactive Yes NO NO Yes Yes
"S" OFF, FRAUD or LOST Yes NO NO Yes Yes
"F" Closed NO NO NO Yes NO

Allowed Status Changes

The following table explains which status code changes may occur using the /ibis/card/set-status endpoint.

Initial Status Code Allowed Status Update Values
"A" "B", "F", "I", "S"
"B" "F", "I", "S"
"F" none
"I" "F", "S"
"S" "B", "F"

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example

{
    "cFiCardId" : "icrd_1oSrT1U8G73S5Jdt27YvYk", //card ID in connectFi
    "statusCode" : "B" //"I" = Inactive, "B" = ON, "S" = OFF, or "F" = Closed
}

Possible responses

200 (HTTP response status code) -- Debit card status was updated

{
    "code": "0", //Success
    "data": {
        "cFiCardId": "icrd_1oSrT1U8G73S5Jdt27YvYk",  //card ID in connectFi
        "cFiStatus": "Complete", //current status of card in connectFi - "Initiated", "Complete", or "Error"
        "customerId": "cstap_52fZPjmd0jqFaR3FpZRhec", //customer ID in connectFi
        "cFiAggregatorId": "evolve",
        "reference": "extCrd119", //external reference in your system
        "memberNumber": "cstcp_52e2LP956OeKH3dnaDBVlS",  //cFiCommonCustomerId in connectFi
        "cardProgramId": "d_gpr_test", //card program ID
        "programType": "debit",
        "boReferenceId": "123456789012", //reference ID in the back office
        "boCustomerId": "333000000001234567", //customer ID in the back office
        "vAccountNumber": "1234567890123456",
        "abaRoutingNumber": "121182810",
        "dtsCreatedAt": "2023-03-15T19:04:15.498Z",
        "status": {
            "code": "B", //ON
            "description": "Open - All Transactions Allowed"
        },
        "cardProgramName": "GPR Card Program",
        "transId": "F2156023550",
        "fee": 0,
        "balance": 0, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 0 //ledger balance
    },
    "requestId": "e7794b80c36611edaa15c5641dffda7c"
}

400 (HTTP response status code) -- Must be equal to one of the allowed values

In this example, a request was made to set the card status to "A". Even though cards do have a status of "A" when first created in order to indicate that the card needs to be activated, this is not a status that can be set with the /ibis/card/set-status endpoint. Any other invalid statusCode will receive a similar result.

{
    "requestId": "5afd3a70c36d11edaa15c5641dffda7c",
    "code": "requestValidateError",
    "context": [
        {
            "instancePath": "/statusCode",
            "schemaPath": "#/properties/statusCode/enum",
            "keyword": "enum",
            "params": {
                "allowedValues": [
                    "I", //Inactive
                    "B", //ON
                    "S", //OFF
                    "F" //CLOSED
                ]
            },
            "message": "must be equal to one of the allowed values"
        }
    ]
}

400 (HTTP response status code) -- The given card is closed

In this example, the given card is closed (status code "F" - Closed Card).

{
    "requestId": "046caa70c4f711ed996dc5641dffde20",
    "code": "extIbis",
    "subCode": "SD",
    "context": {
        "transId": "F2156126400",
        "fee": 0
    },
    "message": "Card Number(99*************4286) is closed"
}

400 (HTTP response status code) -- Changing card status from existing status to status (I) is not allowed

In this example, an attempt was made to change a card with status "S" (blocked because lost or fraud) to "I" (inactive) was made. This status change is not allowed.

{
    "requestId": "0535dbf0c4f911ed996dc5641dffde20",
    "code": "extIbis",
    "subCode": "57",
    "context": {
        "transId": "F2156126426",
        "fee": 0
    },
    "message": "Changing card status from existing status to status (I) is not allowed for card (99*************2802)"
}

Back to Top

Get a Card Holder Profile

Request method and URL

POST /ibis/card/cardholder-profile

Description

Use this endpoint to retrieve the card holder profile for the specified card.

Required Properties Description Schema Example Values
cFiCardId The card ID in connectFi string "icrd_71iRvTzeQckz3fNxQ2DVqM"

OR

Required Properties Description Schema Example Values
reference An external alphanumeric reference ID (1-32 characters) for the card in your system string "extCrd119"

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body examples

Using cFiCardId:

{
    "cFiCardId" : "icrd_71iRvTzeQckz3fNxQ2DVqM", //card ID in connectFi
}

Using reference:

{
    "reference" : "extCrd121" //external reference in your system
}

Possible responses

200 (HTTP response status code) -- Card holder profile was returned

{
    "code": "0", //Success
    "data": {
        "cFiCardId": "icrd_71iRvTzeQckz3fNxQ2DVqM", //card ID in connectFi
        "cFiStatus": "Complete", //current status of card in connectFi - "Initiated", "Complete", or "Error"
        "customerId": "cstap_1Vu13vFOsYLXR2Tsvm68jW", //customer ID in connectFi
        "cFiAggregatorId": "evolve",
        "reference": "324333263", //external reference in your system
        "memberNumber": "cstcp_bAceHsbtuPoKTuP3I6zZS", //cFiCommonCustomerId in connectFi
        "cardProgramId": "Evolve_Test", //card program ID'
        "programType": "credit",
        "boReferenceId": "123456789012", //reference ID in the back office
        "boCustomerId": "333000000001234567", //customer ID in the back office
        "vAccountNumber": "1234567890123456",
        "abaRoutingNumber": "121182810",
        "dtsCreatedAt": "2023-05-02T15:42:10.301Z",
        "abaRoutingNumber": "123456789",
        "stakeholderId": "StakHolder",
        "status": {
            "code": "A",
            "description": "Card was issued but has not yet been activated"
        },
        "transitionFlag": "N",
        "statusCode": "A",
        "firstName": "JOHN",
        "lastName": "TESTMAN",
        "address1": "1234 SWEETBRIAR LN",
        "address2": "Apt 1",
        "dob": "1970-01-01",
        "city": "TYLER",
        "stateCode": "TX",
        "postalCode": "12345",
        "country": "USA",
        "expDate": "2026-05-31",
        "cardType": "E",
        "cellNumber": "1234567890",
        "email": "brucey@gmail.com",
        "occupation": "Student",
        "cipCleared": "N",
        "pseudoDdaNumbers": [
            {
                "pseudoDdaNumber": "1211210001590305"
            }
        ],
        "cardDeliveryMode": "P",
        "cardNumber": "123456******1234",
        "fee": 0,
        "balance": 0, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 0 //ledger balance
    },
    "requestId": "13e06be0e90011edab7956da8a863158"
}

400 (HTTP response status code) -- The given card is closed

In this example, the given card is closed (status code "F" - Closed Card).

{
    "requestId": "3de6b750c4f711ed996dc5641dffde20",
    "code": "extIbis",
    "subCode": "SD",
    "context": {
        "fee": 0,
        "lastDepositAmount": 0
    },
    "message": "Get Cardholder Profile Decline (Closed Card)"
}

Back to Top

Reissue a Card

Request method and URL

POST /ibis/card/reissue

Description

Use this endpoint to reissue a specified card. A card can be reissued with the existing card number (in cases such as when the expiration date is updated), or the card can be reissued using a new card number (in cases such as if the card has been lost or stolen).

Required Properties Description Schema Example Values
cFiCardId The card ID in connectFi string "icrd_71iRvTzeQckz3fNxQ2DVqM"
reference An external alphanumeric reference ID (1-32 characters) for the card in your system string "extCrd119"
profile An object containing card holder details object See profile Object
reissueType The type of reissue, allowed reissue types are dependent on card program permissions (see Reissue Codes below) string "1", "2", or "3"
reasonCode The reason for the reissue, allowed reason codes are dependent on card program permissions (see Reissue Codes below) string "1", "2", "3", "4", "5", or "6"
cardShippingMethodId The shipping method for the new card, "1" is default (see Reissue Codes below) string "1", "2", or "3"
activateNewCard If "Y", the new card will be activated upon reissue, "N" is default string "Y" or "N"

Reissue Codes

reasonCode Value reissueType Value cardShippingMethodId Value
"1" - Damaged "1" - same card number with same profile "1" - Normal shipment (default)
"2" - Expired "2" - same card number with updated expiration "2" - Urgent shipment
"3" - Lost/Stolen "3" - new card number with existing profile "3" - VIP shipment
"4" - Fraud/Compromised
"5" - Return
"6" - New Enrollment

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body examples

Using cFiCardId:

{
    "cFiCardId" : "icrd_71iRvTzeQckz3fNxQ2DVqM", //card ID in connectFi
}
{
    "cFiCardId" : "icrd_4cFaZs9DMGC38tT7z3XPok", //card ID in connectFi
    "reference": "extReI126", //external reference in your system, ignored unless card is reissued with a new card number
    "profile": {
        "address": "1234 SWEETBRIAR LN",
        "address2": "Apt 1",
        "city": "TYLER",
        "stateCode": "TX",
        "postalCode": "12345",
        "cellNumber": "1234567890",
        "email": "newemail1@test.email",
        "nameOnCard": "JOHN TESTMAN"
    },
    "reissueType": "3", //type of reissue (see Reissue Codes)
    "reasonCode": "3", //reason for reissue (see Reissue Codes)
    "cardShippingMethodId": "1", //shipping method (see Reissue Codes)
    "activateNewCard": "N" //if "Y", card is activated upon reissue
}

Possible responses

200 (HTTP response status code) -- Card was reissued

{
    "code": "0", //Success
    "data": {
        "cFiCardId": "icrd_5KvDGUYMyUWX5JB8XcuZvy", //card ID in connectFi, new only if card was reissued with a new number
        "cFiStatus": "Complete", //current status of card in connectFi - "Initiated", "Complete", or "Error"
        "customerId": "cstap_1Vu13vFOsYLXR2Tsvm68jW", //customer ID in connectFi
        "cFiAggregatorId": "evolve",
        "reference": "extReI126", //external reference in your system
        "memberNumber": "cstcp_bAceHsbtuPoKTuP3I6zZS", //cFiCommonCustomerId in connectFi
        "cardProgramId": "Evolve_Test", //card program ID
        "programType": "credit",
        "boReferenceId": "123456789012", //reference ID in the back office
        "boCustomerId": "333000000001234567", //customer ID in the back office
        "vAccountNumber": "1234567890123456",
        "abaRoutingNumber": "121182810",
        "dtsCreatedAt": "2023-06-07T12:49:27.649Z",
        "newCardReferenceId": "123456789012", //present if card was reissued with a new number
        "transId": "F10332010",
        "fee": 0,
        "balance": 0, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 0 //ledger balance
    },
    "requestId": "bc5bc010053111ee841656da8a864888"
}

400 (HTTP response status code) -- Reference already exists

In this example, a request was made to reissue the card with a new card number, but the given reference ID already exists.

{
    "requestId": "089834906e9111eebc4256da8a8696e4",
    "code": "referenceExists",
    "context": {
        "reference": "extBCrd190",
        "entityId": "icrd_3r2Jh1t0G4IXFvz5Q559cQ"
    },
    "message": "Reference already exists."
}

400 (HTTP response status code) -- Reason Code is Invalid for Given Permissions

In this example, a request was made to reissue the card with a reason code that is not supported by the cardProgramId.

{
    "requestId": "e0a1e950053f11ee841656da8a864888",
    "code": "extIbis",
    "subCode": "57",
    "context": {
        "transId": "F10332124",
        "fee": 0
    },
    "message": "Reissue Damaged Card Decline (Reissue Damaged Card Service is Not Allowed)"
}

400 (HTTP response status code) -- Card is Closed

In this example, a request was made to reissue the card that has been closed.

{
    "requestId": "19f07960054011ee841656da8a864888",
    "code": "extIbis",
    "subCode": "SD",
    "context": {
        "transId": "F10332128",
        "fee": 0
    },
    "message": "Update Profile (OFAC/AVS) Decline (Closed Card)"
}

Back to Top

List Customer Cards

Request method and URL

POST /ibis/card/list

Description

Use this endpoint to list all cards belonging to the specified customer that were issued through /ibis endpoints.

Required Properties Description Schema Example Values
customerId Customer ID in connectFi string "cstap_1Vu13vFOsYLXR2Tsvm68jW"

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body examples

Using cFiCardId:

{
    "customerId": "cstap_1Vu13vFOsYLXR2Tsvm68jW" //customer ID in connectFi
}

Possible responses

200 (HTTP response status code) -- Card list was returned

{
    "code": "0", //Success
    "data": [
        {
            "cFiCardId": "icrd_5lFBjJG6pPlapyodSxZ97a", //card ID in connectFi
            "cFiStatus": "Complete", //current status of card in connectFi
            "customerId": "cstap_1Vu13vFOsYLXR2Tsvm68jW", //customer ID in connectFi
            "cFiAggregatorId": "evolve",
            "reference": "324333260", //external reference in your system
            "memberNumber": "cstcp_bAceHsbtuPoKTuP3I6zZS", //cFiCommonCustomerId in connectFi
            "cardProgramId": "Evolve_Test", //card program ID
            "programType": "credit",
            "boReferenceId": "123456789012", //reference ID in the back office
            "boCustomerId": "333000000001234567", //customer ID in the back office
            "vAccountNumber": "1234567890123456",
            "abaRoutingNumber": "121182810",
            "dtsCreatedAt": "2023-05-02T15:12:00.185Z"
        },
        {
            "cFiCardId": "icrd_4cFaZs9DMGC38tT7z3XPok", //card ID in connectFi
            "cFiStatus": "Complete", //current status of card in connectFi
            "customerId": "cstap_1Vu13vFOsYLXR2Tsvm68jW", //customer ID in connectFi
            "cFiAggregatorId": "evolve",
            "reference": "extReI125", //external reference in your system
            "memberNumber": "cstcp_bAceHsbtuPoKTuP3I6zZS", //cFiCommonCustomerId in connectFi
            "cardProgramId": "Evolve_Test", //card program ID
            "programType": "credit",
            "boReferenceId": "123456789012", //reference ID in the back office
            "boCustomerId": "333000000001234567", //customer ID in the back office
            "vAccountNumber": "1234567890123456",
            "abaRoutingNumber": "121182810",
            "dtsCreatedAt": "2023-06-07T12:33:43.428Z"
        },
        {
            "cFiCardId": "icrd_7trq6iTobscnAAlb0unuvC", //card ID in connectFi
            "cFiStatus": "Error", //current status of card in connectFi
            "error": {
                "code": "12",
                "message": "New Card Purchase Decline (Allocated credit limit must be less than or equal to [2000.0]; )"
            },
            "customerId": "cstap_1Vu13vFOsYLXR2Tsvm68jW", //customer ID in connectFi
            "cFiAggregatorId": "evolve",
            "reference": "324333261", //external reference in your system
            "memberNumber": "cstcp_bAceHsbtuPoKTuP3I6zZS", //cFiCommonCustomerId in connectFi
            "cardProgramId": "Evolve_Test", //card program ID
            "programType": "credit",
            "dtsCreatedAt": "2023-05-02T15:35:25.822Z"
        },
    ],
    "requestId": "db2dd8f0053311ee841656da8a864888"
}

200 (HTTP response status code) -- No Cards Found for the Specified Customer

In this example, the specified customer does not have any cards issued through /ibis endpoints.

{
    "code": "0", //Success
    "data": [], //no cards found
    "requestId": "b4fa74f0054111ee841656da8a864888"
}

Back to Top

Card to Card Transactions with /ibis

Request method and URL

POST /ibis/financial/card-to-card

Description

This endpoint will transfer funds from one card to another card.

Note that funds cannot be pulled from a debit card unless the card status code is "B" (ON) and funds are available. You can, however, transfer funds to a pre-active card (issued but not yet activated). Also, when pulling funds from a credit card, the requested transfer will be declined if it causes the credit card to go over the available credit limit.

The /ibis/financial/card-to-card endpoint supports idempotency and will not accept requests with duplicate reference IDs. The external reference ID included in the request body is how connectFi controls for duplicate transaction requests. It is important to note that transaction requests submitted with unique reference IDs will not be considered duplicates, even if there are other properties with identical values. For example, the following requests are not considered duplicates.

{
    "reference": "EXT_REFERENCE_ID1", //Different reference IDs
    "cardFromId": "icrd_5lFBjJG6pPlapyodSxZ97a",
    "cardToId": "icrd_71iRvTzeQckz3fNxQ2DVqM",
    "description": "Both of these transactions will post.",
    "amount": 50,
    "currency": "USD"
}

{
    "reference": "EXT_REFERENCE_ID2", //Different reference IDs
    "cardFromId": "icrd_5lFBjJG6pPlapyodSxZ97a",
    "cardToId": "icrd_71iRvTzeQckz3fNxQ2DVqM",
    "description": "Both of these transactions will post.",
    "amount": 50,
    "currency": "USD"
}
Required Properties Description Schema Example Values
reference An external alphanumeric reference ID (1-32 characters) for the transaction in your system string "ExtDFunds123"
cardFromId The card ID in connectFi of the card to pull funds from string "icrd_3ZBErpQcsauarnR0Qj97Lu"
cardToId The card ID in connectFi of the card to push funds to string "icrd_7sF5HbXzSEb45QLFyc7GMQ"
amount The amount to be transferred number, >=0 11
currency A three character ISO alphabetic code to identify the currency String, regex pattern: "^[A-Z]{3}$" "USD"
Optional Properties Description Schema Example Values
description An optional description of the transaction string "Transfer to other card"

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example

{
    "reference": "ExtC2CFunds123", //external reference in your system
    "cardFromId": "icrd_3ZBErpQcsauarnR0Qj97Lu", //card ID in connectFi of the card to pull funds from
    "cardToId": "icrd_7sF5HbXzSEb45QLFyc7GMQ", //card ID in connectFi of the card to push funds to
    "description": "Transfer to other card", //description of transaction
    "amount": 11, //amount to be transferred
    "currency": "USD" //currency code (represented by 3 characters)
}

Possible responses

200 (HTTP response status code) -- Specified funds amount was transferred

{
    "code": "0", //Success
    "data": {
        "reference": "ExtC2CFunds123", //external reference in your system
        "cFiFundsId": "ifnd_H9WdNOizlRynTIxoH6l1O", //funds transfer ID in connectFi
        "cFiAggregatorId": "evolve",
        "type": "cardToCard", //type of transaction
        "cardFromId": "icrd_3ZBErpQcsauarnR0Qj97Lu", //card ID in connectFi of the card to pull funds from
        "cardToId": "icrd_7sF5HbXzSEb45QLFyc7GMQ", //card ID in connectFi of the card to push funds to
        "cFiStatus": "Complete", //current status of transaction in connectFi - "Initiated", "Complete", or "Error"
        "boTransId": "F2156032006", //transaction ID in the back office
        "arn": "0000000000000006LAzr",
        "fee": 0,
        "balance": 33, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 33, //ledger balance
        "dtsCreatedAt": "2023-03-16T18:55:15.973Z",
        "fromCardBalance": "33.00",
        "toCardBalance": "11.00"
    },
    "requestId": "16de35a0c42c11ed9e40c5641e001f9c"
}

400 (HTTP response status code) -- Shortfall Currency Exchange Decline (From Card) (Pre-Active Card)

Cannot use an inactive card to pull funds from. The cardFromId should reference a card with a status of "B" (ON).

{
    "requestId": "bb6bf3e0c42d11ed9e40c5641e001f9c",
    "code": "extIbis",
    "subCode": "PA",
    "context": {
        "transId": "F2156032937",
        "arn": "0000000000000006LAzt",
        "fee": 0
    },
    "message": "Shortfall Currency Exchange  Decline (From Card) (Pre-Active Card)"
}

400 (HTTP response status code) -- Funds Transfer Decline (From Card)

In the following example, the requested transfer would have caused the "from" card to exceed the available credit limit. In this case, the "from" card, or source of the funds, was a credit card.

{
    "requestId": "27c68a10e90311edab7956da8a863158",
    "code": "extIbis",
    "subCode": "51",
    "context": {
        "fromCardBalance": "-2.00",
        "transId": "F10287474",
        "arn": "0000000000000006LAAa",
        "fee": 0
    },
    "message": "Funds Transfer Decline (From Card) (Insufficient Funds [498.0])"
}

400 (HTTP response status code) -- Reference already exists

In this request, the reference ID has already been used. Reference IDs cannot be reused.

{
    "requestId": "1ce64ce0733511ee94f256da8a860d80",
    "code": "referenceExists",
    "context": {
        "reference": "ExtC2CFunds145",
        "entityId": "ifnd_6CcKJdrj3mwx8c40ZUJNwU"
    },
    "message": "Reference already exists."
}

Back to Top

Push Funds to Card with /ibis

Request method and URL

POST /ibis/financial/funds-credit

Description

This endpoint will credit (add) funds to the specified card.

The /ibis/financial/funds-credit endpoint supports idempotency and will not accept requests with duplicate reference IDs. The external reference ID included in the request body is how connectFi controls for duplicate transaction requests. It is important to note that transaction requests submitted with unique reference IDs will not be considered duplicates, even if there are other properties with identical values. For example, the following requests are not considered duplicates.

{
    "reference": "EXT_REFERENCE_ID1", //Different reference IDs
    "cFiCardId": "icrd_4Iex5dfzlnJWTYal2K5YQI",
    "description": "Both of these transactions will post.",
    "amount": 24,
    "currency": "USD"
}

{
    "reference": "EXT_REFERENCE_ID2", //Different reference IDs
    "cFiCardId": "icrd_4Iex5dfzlnJWTYal2K5YQI",
    "description": "Both of these transactions will post.",
    "amount": 24,
    "currency": "USD"
}
Required Properties Description Schema Example Values
cFiCardId The card ID in connectFi string "icrd_1oSrT1U8G73S5Jdt27YvYk"
reference An external alphanumeric reference ID (1-32 characters) for the transaction in your system string "ExtCFunds123"
amount The amount to be credited (added to) the available card balance number, >=0 21
currency A three character ISO alphabetic code to identify the currency String, regex pattern: "^[A-Z]{3}$" "USD"
Optional Properties Description Schema Example Values
description An optional description of the transaction string "Topping up debit card"

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example

{
    "reference": "ExtCFunds123", //external reference in your system
    "cFiCardId": "icrd_3ZBErpQcsauarnR0Qj97Lu", //card ID in connectFi
    "description": "Topping up debit card", //description of the transaction
    "amount": 21, //amount to be credited (added to) card
    "currency": "USD" //currency code (represented by 3 characters)
}

Possible responses

200 (HTTP response status code) -- Card was credited with specified funds amount

{
    "code": "0", //Success
    "data": {
        "reference": "ExtCFunds123", //external reference in your system
        "cFiFundsId": "ifnd_5YVmYv3PAdUafhyEBi1kQA", //funds transfer ID in connectFi
        "cFiAggregatorId": "evolve",
        "type": "credit", //type of transaction, "credit" = push to card, "debit" = pull from card
        "cFiCardId": "icrd_3ZBErpQcsauarnR0Qj97Lu", //card ID in connectFi
        "cFiStatus": "Complete", //current status of transaction in connectFi - "Initiated", "Complete", or "Error"
        "boTransId": "F2156028290", //transaction ID in the back office
        "arn": "0000000000000006LAzl",
        "fee": 0,
        "balance": 21, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 21, //ledger balance
        "dtsCreatedAt": "2023-03-16T17:48:32.425Z",
        "outstandingSettlementBalance": 0
    },
    "requestId": "c48e5db0c42211ed9e40c5641e001f9c"
}

400 (HTTP response status code) -- Currency CND is not support

In this request, a currently other than USD was used. Currently, only "USD" currency is supported.

{
    "requestId": "0a5a6ba0c42711ed9e40c5641e001f9c",
    "code": "ibisFundsCurrency",
    "message": "Currency CND is not support"
}

400 (HTTP response status code) -- Amount must be > 0

In this request, an amount less than or equal to 0 was requested. The amount property has an exclusive minimum of 0.

{
    "requestId": "47714e50c42711ed9e40c5641e001f9c",
    "code": "requestValidateError",
    "context": [
        {
            "instancePath": "/amount",
            "schemaPath": "common#/definitions/amount/exclusiveMinimum",
            "keyword": "exclusiveMinimum",
            "params": {
                "comparison": ">",
                "limit": 0
            },
            "message": "must be > 0"
        },
        {
            "instancePath": "",
            "schemaPath": "#/$merge",
            "keyword": "$merge",
            "params": {},
            "message": "must pass \"$merge\" keyword validation"
        }
    ]
}

400 (HTTP response status code) -- Reference already exists

In this request, the reference ID has already been used. Reference IDs cannot be reused.

{
    "requestId": "5cbde0c0733611ee94f256da8a860d80",
    "code": "referenceExists",
    "context": {
        "reference": "ExtCFunds143",
        "entityId": "ifnd_1JtrIpQ3S1D6bsksiwmddO"
    },
    "message": "Reference already exists."
}

Back to Top

Pull Funds from Card with /ibis

Request method and URL

POST /ibis/financial/funds-debit

Description

This endpoint will debit (pull) funds from the specified card.

Note that funds cannot be pulled from a debit card unless the card status code is "B" (ON) and funds are available. Also, when pulling funds from a credit card, the requested transfer will be declined if it causes the credit card to go over the available credit limit.

The /ibis/financial/funds-debit endpoint supports idempotency and will not accept requests with duplicate reference IDs. The external reference ID included in the request body is how connectFi controls for duplicate transaction requests. It is important to note that transaction requests submitted with unique reference IDs will not be considered duplicates, even if there are other properties with identical values. For example, the following requests are not considered duplicates.

{
    "reference": "EXT_REFERENCE_ID1", //Different reference IDs
    "cFiCardId": "icrd_4Iex5dfzlnJWTYal2K5YQI",
    "description": "Both of these transactions will post.",
    "amount": 24,
    "currency": "USD"
}

{
    "reference": "EXT_REFERENCE_ID2", //Different reference IDs
    "cFiCardId": "icrd_4Iex5dfzlnJWTYal2K5YQI",
    "description": "Both of these transactions will post.",
    "amount": 24,
    "currency": "USD"
}
Required Properties Description Schema Example Values
cFiCardId The card ID in connectFi string "icrd_1oSrT1U8G73S5Jdt27YvYk"
reference An external alphanumeric reference ID (1-32 characters) for the transaction in your system string "ExtDFunds123"
amount The amount to be debited (pulled from) the available card balance (for debit cards) or available credit limit (for credit cards) number, >=0 15
currency A three character ISO alphabetic code to identify the currency String, regex pattern: "^[A-Z]{3}$" "USD"
Optional Properties Description Schema Example Values
description An optional description of the transaction string "Paying bill"

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example

{
    "reference": "ExtDFunds123", //external reference in your system
    "cFiCardId": "icrd_3ZBErpQcsauarnR0Qj97Lu", //card ID in connectFi
    "description": "Paying bill", //description of the transaction
    "amount": 15, //amount to be credited (added to) card
    "currency": "USD" //currency code (represented by 3 characters)
}

Possible responses

200 (HTTP response status code) -- Specified funds amount was pulled from the card

{
    "code": "0", //Success
    "data": {
        "reference": "ExtDFunds123", //external reference in your system
        "cFiFundsId": "ifnd_4CGWObikeWrC1m99oZdCjG", //funds transfer ID in connectFi
        "cFiAggregatorId": "evolve",
        "type": "debit", //type of transaction, "credit" = push to card, "debit" = pull from card
        "cFiCardId": "icrd_3ZBErpQcsauarnR0Qj97Lu", //card ID in connectFi
        "cFiStatus": "Complete", //current status of transaction in connectFi - "Initiated", "Complete", or "Error"
        "boTransId": "F2156031298", //transaction ID in the back office
        "arn": "0000000000000006LAzo",
        "fee": 0,
        "balance": 20, //balance available on card (previous balance was 35)
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 20, //ledger balance (previous ledger balance was 35)
        "dtsCreatedAt": "2023-03-16T18:44:33.504Z",
        "cardPrgName": "GPR Card Program"
    },
    "requestId": "97edfba0c42a11ed9e40c5641e001f9c"
}

400 (HTTP response status code) -- Cash Withdrawal Decline (Pre-Active Card)

In this request, a request was made to pull funds from a debit card that is not yet active.

{
    "requestId": "95194d40c42911ed9e40c5641e001f9c",
    "code": "extIbis",
    "subCode": "PA",
    "context": {
        "status": {
            "code": "A",
            "description": "Card was issued but has not yet been activated"
        },
        "cardPrgName": "GPR Card Program",
        "transId": "F2156030835",
        "arn": "0000000000000006LAzn",
        "fee": 0
    },
    "message": "Cash Withdrawal Decline (Pre-Active Card)"
}

400 (HTTP response status code) -- Insufficient Funds

In this request, the a request was made to debit a credit card for an amount that would cause the credit card to exceed its available credit limit.

{
    "requestId": "9b299cd0e90411edab7956da8a863158",
    "code": "extIbis",
    "subCode": "51",
    "context": {
        "status": {
            "code": "B",
            "description": "Open - All Transactions Allowed"
        },
        "cardPrgName": "Evolve_Test_Updated",
        "transId": "F10287476",
        "arn": "0000000000000006LAAb",
        "fee": 0,
        "balance": -2, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "ledgerBalance": -2 //ledger balance
    },
    "message": "Manual Sig Based Cash Withdrawal Intl (with currency conversion) Decline (Insufficient Funds [498.0])"
}

400 (HTTP response status code) -- Reference already exists

In this request, the reference ID has already been used. Reference IDs cannot be reused.

{
    "requestId": "8990a3d0733611ee94f256da8a860d80",
    "code": "referenceExists",
    "context": {
        "reference": "ExtDFunds143",
        "entityId": "ifnd_3jGWcWt8UGrPKF41xaZEle"
    },
    "message": "Reference already exists."
}

Back to Top

Reverse a Transaction with /ibis

Request method and URL

POST /ibis/financial/reversal

Description

This endpoint will reverse an existing eligible transaction. Currently, reversals are not supported for /ibis/financial/funds-credit or /ibis/financial/funds-debit transactions. Reversals are available for /ibis/financial/card-to-card transactions in which both cards belong to the same cardProgramId.

Required Properties Description Schema Example Values
cFiFundsId The funds transfer ID in connectFi string "ifnd_4CGWObikeWrC1m99oZdCjG"
Optional Properties Description Schema Example Values
amount The amount of the reversal, nullable number 11
description An optional description of the reversal, nullable string "Transaction reversal"

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example

{
    "cFiFundsId": "ifnd_5UIXacW0Wk3u1dtsn8zUaM"
}

Possible responses

200 (HTTP response status code) -- Transaction was reversed

{
    "code": "0", //Success
    "data": {
        "reference": "ExtC2CFunds125", //external reference in your system
        "cFiFundsId": "ifnd_5UIXacW0Wk3u1dtsn8zUaM",
        "cFiAggregatorId": "evolve",
        "type": "cardToCard", //type of transaction
        "cardFromId": "icrd_7sF5HbXzSEb45QLFyc7GMQ", //card ID in connectFi of the card to pull funds from
        "cardToId": "icrd_3ZBErpQcsauarnR0Qj97Lu", //card ID in connectFi of the card to push funds to
        "cFiStatus": "Complete", //current status of transaction in connectFi - "Initiated", "Complete", or "Error"
        "boTransId": "F2156034072", //transaction ID in the back office
        "arn": "0000000000000006LAzu",
        "fee": 0,
        "balance": 32, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
        "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
        "ledgerBalance": 0, //ledger balance
        "dtsCreatedAt": "2023-03-16T19:21:32.145Z",
        "reversal": {
            "cFiStatus": "Complete", //current status of reversal in connectFi - "Initiated", "Complete", or "Error"
            "dtsReversalInitiated": "2023-03-16T19:21:59.289Z",
            "arn": "0000000000000006LAzv",
            "responseDesc": "Shortfall Currency Exchange - Reversal",
            "boTransId": "F2156034109" //transaction ID in the back office
        }
    },
    "requestId": "d285e250c42f11ed9e40c5641e001f9c"
}

400 (HTTP response status code) -- Can only reverse card to card transactions

In this example, an attempt was made to reverse a debit (pull from card) transaction without having access to the destination account or card from the original transaction. Currently, reversals are not supported for /ibis/financial/funds-credit or /ibis/financial/funds-debit transactions. Reversals are available for /ibis/financial/card-to-card transactions.

{
    "requestId": "d0d1e970733611ee94f256da8a860d80",
    "code": "ibisCannotReverseError",
    "context": {
        "fundsContext": {
            "entityId": "ifnd_4AMYgtpc9kgAk5Ku21q3JG",
            "entityStatus": "Complete",
            "reference": "ExtDFunds144",
            "aggregatorId": "evolve",
            "cFiReference": "0000000000000006LAIR",
            "externalId": "F12586624"
        }
    },
    "message": "Can only reverse card to card transactions."
}

Back to Top

Retrieve a Transaction with /ibis

Request method and URL

POST /ibis/financial/retrieve

Description

This endpoint will retrieve the details of an existing transaction. You may use one of the following IDs to retrieve a transaction: cFiFundsId, reference, or arn. If you include more than one of these ID types in a single request, an error will be thrown.

Required Properties Description Schema Example Values
cFiFundsId The funds transfer ID in connectFi string "ifnd_4CGWObikeWrC1m99oZdCjG"

OR

Required Properties Description Schema Example Values
reference An external alphanumeric reference ID (1-32 characters) for the transaction in your system string "ExtDFunds123"

OR

Required Properties Description Schema Example Values
arn An arn ID that was returned with the initial transaction response string "0000000000000006LAzw"

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body examples

Using cFiFundsId:

{
    "cFiFundsId": "ifnd_18Zh3Ubna3ZNIMgz0EZlAw" //funds transfer ID in connectFi
}

Using reference:

{
    "reference": "ExtCFunds126" //external reference in your system
}

Using arn:

{
    "arn": "0000000000000006LAzw"
}

Possible responses

200 (HTTP response status code) -- Transaction details were retrieved

{
    "code": "0", //Success
    "data": [
        {
            "reference": "ExtCFunds126", //external reference in your system
            "cFiFundsId": "ifnd_18Zh3Ubna3ZNIMgz0EZlAw", //funds transfer ID in connectFi
            "cFiAggregatorId": "evolve",
            "type": "credit", //type of transaction, "credit" = push to card, "debit" = pull from card
            "cFiCardId": "icrd_3ZBErpQcsauarnR0Qj97Lu", //card ID in connectFi
            "cFiStatus": "Complete", //current status of transaction in connectFi - "Initiated", "Complete", or "Error"
            "boTransId": "F2156034276", //transaction ID in the back office
            "arn": "0000000000000006LAzw",
            "fee": 0,
            "balance": 56, //For debit cards, "balance" = available funds on card. For credit cards "balance" = available funds - credit limit. Current credit card "balance" may be positive (overpaid), negative (money owed), or 0 (paid in full). A credit card with a "balance" of -2 and a credit limit of 500 has available funds of 498.
            "lastDepositAmount": 0, //most recent deposit (debit cards) or card payment (credit cards)
            "ledgerBalance": 56, //ledger balance
            "dtsCreatedAt": "2023-03-16T19:24:18.701Z"
        }
    ],
    "requestId": "9a838be0c43011ed9e40c5641e001f9c"
}

400 (HTTP response status code) -- Must match exactly one schema in oneOf, must NOT have additional properties

In this example, more than one type of ID was used to attempt a transaction retrieval in a single transaction.

{
    "requestId": "15f378c0c43211ed9e40c5641e001f9c",
    "code": "requestValidateError",
    "context": [
        {
            "instancePath": "",
            "schemaPath": "#/oneOf/0/additionalProperties",
            "keyword": "additionalProperties",
            "params": {
                "additionalProperty": "arn"
            },
            "message": "must NOT have additional properties"
        },
        {
            "instancePath": "",
            "schemaPath": "#/oneOf/1/required",
            "keyword": "required",
            "params": {
                "missingProperty": "reference"
            },
            "message": "must have required property 'reference'"
        },
        {
            "instancePath": "",
            "schemaPath": "#/oneOf/2/additionalProperties",
            "keyword": "additionalProperties",
            "params": {
                "additionalProperty": "cFiFundsId"
            },
            "message": "must NOT have additional properties"
        },
        {
            "instancePath": "",
            "schemaPath": "#/oneOf",
            "keyword": "oneOf",
            "params": {
                "passingSchemas": null
            },
            "message": "must match exactly one schema in oneOf"
        }
    ]
}

400 (HTTP response status code) -- Funds transfer not found

{
    "requestId": "30b11050733711ee94f256da8a860d80",
    "code": "ibisFundsTransferNotFound",
    "context": {
        "fundsId": "cFiFundsId=ifnd_4AMYgtpc9kgAk5Ku21q3JGe "
    },
    "message": "Funds transfer not found."
}

Back to Top

Transaction History Inquiry with /ibis

Request method and URL

POST /ibis/inquiry/transaction-history

Description

This endpoint will retrieve the transaction history of a card issued through /ibis.

Required Properties Description Schema Example Values
cFiCardId The card ID in connectFi string "icrd_1oSrT1U8G73S5Jdt27YvYk"
Optional Properties Description Schema Example Values
dateFrom The beginning of the requested transaction period in "YYYY-MM-DD" format string, regex pattern "^\d{4}-\d{2}-\d{2}$" "2023-03-01"
dateTo The end of the requested transaction period in "YYYY-MM-DD" format string, regex pattern "^\d{4}-\d{2}-\d{2}$" "2023-03-16"
numberOfRecords Represents the number of desired transactions to return, nullable integer >= 1 15
skipRecords A number of transactions to skip, nullable integer >=0 5

Request headers

{
    "Content-Type": "application/json",
    "x-connectfi-token": "a long random string" //Authorization token received from /auth/get-token request
}

Request body example

{
    "cFiCardId": "icrd_71iRvTzeQckz3fNxQ2DVqM", //card ID in connectFi
    "dateFrom" : "2023-03-01",
    "dateTo" : "2023-05-02"
}

Possible responses

200 (HTTP response status code) -- The specified transaction history was returned

{
    "code": "0", //Success
    "data": {
        "transactions": [
            {
                "transId": "F10287483",
                "traceAuditNo": "10287483",
                "originalTraceAuditNo": "10287482",
                "accountNumber": "1234567890123456",
                "transTypeId": "40",
                "businessDate": "05/02/2023",
                "acceptorNameAndLocation": "USA",
                "availableBalance": "520.50",
                "amount": "-50.00",
                "description": "Funds Transfer",
                "messageTypeIdentifier": "0400",
                "billed": "N",
                "arn": "0000000000000006LAAf",
                "mcc": "0",
                "deviceType": "H",
                "transDate": "2023-05-02T09:21:00",
                "remainingBalance": "520.50",
                "panSequenceNo": "00",
                "localDateTime": "2023-05-02 09:21:00",
                "serviceId": "C2C_FUNDS_TRSFR",
                "isRecurring": "N",
                "is3DSecure": "N",
                "isDigitalWalletTrans": "N",
                "isPaymentTrans": "I"
            },
            {
                "transId": "F10287482",
                "traceAuditNo": "10287482",
                "accountNumber": "1234567890123456",
                "transTypeId": "40",
                "businessDate": "05/02/2023",
                "acceptorNameAndLocation": "USA",
                "availableBalance": "570.50",
                "amount": "50.00",
                "description": "Funds Transfer",
                "messageTypeIdentifier": "0200",
                "billed": "N",
                "arn": "0000000000000006LAAf",
                "mcc": "0",
                "deviceType": "H",
                "transDate": "2023-05-02T09:20:45",
                "remainingBalance": "570.50",
                "panSequenceNo": "00",
                "authorizationCode": "287481",
                "localDateTime": "2023-05-02 09:20:44",
                "serviceId": "C2C_FUNDS_TRSFR",
                "isRecurring": "N",
                "is3DSecure": "N",
                "isDigitalWalletTrans": "N",
                "isPaymentTrans": "I"
            },
            {
                "transId": "F10287478",
                "traceAuditNo": "10287478",
                "accountNumber": "1234567890123456",
                "transTypeId": "21",
                "businessDate": "05/02/2023",
                "acceptorNameAndLocation": "USA",
                "availableBalance": "520.50",
                "amount": "24.00",
                "description": "test trn 11 from Network PaygearsCorporation",
                "messageTypeIdentifier": "0200",
                "billed": "N",
                "arn": "0000000000000006LAAd",
                "mcc": "0",
                "deviceType": "H",
                "transDate": "2023-05-02T09:19:31",
                "remainingBalance": "520.50",
                "panSequenceNo": "00",
                "authorizationCode": "287478",
                "localDateTime": "2023-05-02 09:19:31",
                "serviceId": "SW_DEPOSIT",
                "isRecurring": "N",
                "is3DSecure": "N",
                "isDigitalWalletTrans": "N",
                "isPaymentTrans": "I"
            },
            {
                "transId": "F10287477",
                "traceAuditNo": "10287477",
                "accountNumber": "1234567890123456",
                "transTypeId": "01",
                "businessDate": "05/02/2023",
                "acceptorNameAndLocation": "USA",
                "availableBalance": "496.50",
                "amount": "-1.50",
                "description": "Paying bill",
                "messageTypeIdentifier": "0200",
                "billed": "N",
                "arn": "0000000000000006LAAc",
                "mcc": "0",
                "deviceType": "H",
                "transDate": "2023-05-02T09:17:31",
                "remainingBalance": "496.50",
                "panSequenceNo": "00",
                "authorizationCode": "287477",
                "localDateTime": "2023-05-02 09:17:30",
                "serviceId": "MNL_CSH_SIG_INT_M",
                "isRecurring": "N",
                "is3DSecure": "N",
                "isDigitalWalletTrans": "N",
                "isPaymentTrans": "N"
            },
            // rest of the transactions
        ]
    },
    "requestId": "836cd750e90511edab7956da8a863158"
}

400 (HTTP response status code) -- Get Transaction History Decline (Get Transaction History Service is Not Allowed)

Transaction history retrieval is not allowed for the specified card.

{
    "requestId": "d4578db0c43211ed9e40c5641e001f9c",
    "code": "extIbis",
    "subCode": "57",
    "context": {
        "transId": "F2156035711",
        "fee": 0
    },
    "message": "Get Transaction History Decline (Get Transaction History Service is Not Allowed)"
}

400 (HTTP response status code) -- Get Transaction History Decline (FromDate is greater than ToDate in request)

The specified from date cannot be after the to date.

{
    "requestId": "1eb41d10c43311ed9e40c5641e001f9c",
    "code": "extIbis",
    "subCode": "12",
    "context": {
        "transId": "F2156035856",
        "fee": 0
    },
    "message": "Get Transaction History Decline (FromDate is greater than ToDate in request)"
}

Back to Top