• Login
  • Create a Free Developer Account
logo
Home Support Desk My

Developer Reference Docs

API Overview

  • Auth API
    • Account
    • Applications
    • Audiences
    • OTPermissions
    • Permissions
    • Portal
    • Roles
    • Users
  • Underwriting API
    • Portal
    • Prospect Adobe
    • Prospect Document
    • Prospect Dropbox Files
    • Prospect Entities
    • Prospect Extras
    • Prospect Generate PDF
    • Prospect Integration
    • Prospect Logs
    • Prospect Messages
    • Prospect Ofac Search
    • Prospect Plaid Email
    • Prospect Resellers
    • Prospects
    • Prospect Scores
    • Prospect Scores Average Bank Balance
    • Prospect Scores Business Types
    • Prospect Scores Equifax Owner Credit
    • Prospect Scores Tax Id
    • Prospects Scores Average Bank Balances Plaid Transaction
    • Prospect Status
  • Process API
    • Holding Transactions
    • Invoices
    • Merchants
    • Reconciliation
    • Rtp
    • Rtp Transactions
    • Settlements
    • Settlements Reports
    • Settlements Reports Groups
    • Tokens
    • Transactions
  • Main API
    • Reports
    • ReportsV2
  • API Onboarding Tutorial
  • Verify API
    • iCG Verify Legacy
    • iCG Verify

iCG Verify API - Verify API

Introduction

iCG Verify APIs allow you to perform the activities related to holding transactions operations.

The iCG Verify API - Verify APIs' end points and their functionalities are given below:

API End Point
API Functionality
POST /IcgVerify/Process
ICG Verify Process is the process where we validate a pair of information containing both routingNumber that must be of 9-digits and accountNumber that must be of 14 digits for the same bank that is being validated. After the account has been created, you will need to verify the information by making a POST /IcgVerify/Process request.
POST /IcgVerify/ProcessExt
This is the extended version of the ICG Verify feature. It only can be used if the merchant provided has the permission FEATURE_ICG_VERIFY_EXTENDED assigned to the related user authenticated. As this extended verification process is for the commercial users i.e., merchants so this will need more verification parameters than the usual user. This feature exploits all the Verification Provider options to validate an account based on many other parameters besides the Bank Route Number and Account Number.

iCG Authentication Service

iCG APIs are secured by OAuth 2.0 ROPC grant type. The external application must obtain user authorization before it executes an endpoint call incase this API chooses to use OAuth 2.0 ROPC Grant. This authorization includes the following steps:

  • You must first exchange the user's credentials for an access token.
  • The access token is an object containing information for authorizing client requests and refreshing the token itself.

The end-to-end authorization request is represented in the below diagram.

sequenceDiagram
    participant Merchant
    participant ICG (token URL)
    autonumber
    Merchant ->>ICG (token URL): Client ID, username, password
    ICG (token URL)->>Merchant: id_token, access token, refresh token

The above step is to generate access token using the iCG provided Client id and with Merchant's user credentials.

Key Request Parameters

Once you receive the Client ID, and the user credentials, the next step is call the OAuth 2.0 ROPC endpoint to generate the access token.

Element Value
Method POST
Authorization Type OAuth 2.0 ROPC
Auth URI https://auth.icheckdev.com/
Client ID *****(iCG application audience ID)
Username {username}
Password {password}
grant_type password

Sample cURL Request

curl -X POST \

--url 'https://auth.icheckdev.com/Login' \

--header 'Accept: application/json' \

--data 'grant_type=password' \

--data 'username={USERNAME}' \

--data 'password={PASSWORD}' \

--data 'client_id={iCG APPLICATION AUDIENCE ID}' \

 On receiving the requests, iCG Authorization system validates all the parameters in the request and, if the request pass through the validation process, then it will generate your access token and return it in the response.

Sample Response Body

{
"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1laWQiOiJjNjFhY2JhYy02NjA4LTQ3Y2YtYWIxOS0wZWQ2YmY3NTI5MTciLCJ1bmlxdWVfbmFtZSI6IlN1c2VlbGEiLCJlbmNyeXB0ZWRfZW1haWwiOiJGcGJnZ1RqbTNkbXl2cFlWVlVZNnJzcHBDKzcweFIwWGoyeTR1Mm8rc1ZRPSIsInR5cGUiOiIiLCJpc3MiOiJodHRwczovL2F1dGguaWNoZWNrZGV2LmNvbS8iLCJhdWQiOiJmMWZhN2ZmZi05MmU0LTQxMzMtOGQxMC0zNjg2OGM0OTg3YWQiLCJleHAiOjE3MDQ5MDY1MjAsIm5iZiI6MTcwNDgyMDEyMH0.Q03E-HrXto9CBzHcC43qn2wZG5VpUV4hzIfcCuRGWu4"
"token_type":"bearer"
"expires_in":86399
}

The response parameters and their descriptions are:

Parameter Description
access_token The access token to be used to call the functional APIs
token_type Bearer
expires_in The number of seconds until the access token expires

iCG Verify Process

This is the endpoint allows you to verify the pair of information containing both routing number and the account number once the account is created. 

Key Request Parameters

Element Value
Method POST
Authorization Type OAuth 2.0 ROPC
URI /ICGVerify/Process

Headers

Element Value
siteID The siteID is the ID which is displayed in the developer's My account page in the iCG developer portal.

Request body

Parameter Name Description Mandatory/Optional Data Type Example
Routing number A routing number is a nine-digit code that indicates at which financial institution the merchant has the  account. When combined with the merchant's account number, it allows financial institutions, processors, and other entities to locate the merchant's individual account. Mandatory Numeric (9 digit) 083000056
Account number
The account number is the unique number allocated to the merchant by the financial institutions
Mandatory Numeric (14 digits) 123467899891
First name The first name of the merchant Mandatory String  John
Last name The last name of the merchant Mandatory String Peter
Gateway Live A Gateway is the payment gateway which allows a merchant to accept/decline payment from customers via online process. This endpoint verifies whether the Gateway is active or not. Mandatory Boolean  True

Sample cURL request

curl --location 'https://verify.icheckdev.com/ICGVerify/Process' \
--header 'siteID: EEJT' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1laWQiOiJlYjg1M2IzMi01MjYzLTQ3ZDMtODJjOS0yM2NkY2FjNWI4YmQiLCJ1bmlxdWVfbmFtZSI6InN1c2VlbGFzIiwiZW5jcnlwdGVkX2VtYWlsIjoiL0NmWU1tYmpncmF3VzM0a0RBVkZSMzZvY3V4MHRpZjNvU2FTc01QSk14QT0iLCJ0eXBlIjoiIiwiaXNzIjoiaHR0cHM6Ly9hdXRoLmljaGVja2Rldi5jb20vIiwiYXVkIjoiN2E4ODM4YjBlMDJlNGI2MWIwZjhiMjlhZTI5YzRmOTMiLCJleHAiOjE3MDkzMDk2NzksIm5iZiI6MTcwOTIyMzI3OX0.71TT9fveuSqVs5_3rndUBL1Dfb_jrhYnVkBiFMOZIAU' \
--data '{
    "BankAccount": {
        "RoutingNumber": "083000056",
        "AccountNumber": "123467899891"
    },
  "personInfo": {
        "personName": {
        "lastName": "summit",
        "firstName": "sagar"
        }
    },
    "GatewayLive": true
}'

Sample Response

{"code":"I011","decision":"DECLINED","description":"Account number format is suspicious","addendaRecords":[],"error":null}

 
 iCGVerify Process Extension

This is the endpoint allows you to verify the pair of information containing both routing number and the account number. This endpoint also requires more verification parameters than the usual user.

Key Request Parameters

Element Value
Method POST
Authorization Type OAuth 2.0 ROPC
URI  /IcgVerify/ProcessExt

Headers

Element Value
siteID The siteID is the ID which is displayed in the developer's My account page in the iCG developer portal.

Request body

Parameter Name Description Mandatory/Optional Data Type Example
Routing number A routing number is a nine-digit code that indicates at which financial institution the merchant has the  account. When combined with the merchant's account number, it allows financial institutions, processors, and other entities to locate the merchant's individual account. Mandatory Numeric (9 digit) 083000056
Account number
The account number is the unique number allocated to the merchant by the financial institutions
Mandatory Numeric (14 digits) 123467899891
First name The first name of the merchant Mandatory String  John
Last name The last name of the merchant Mandatory String Peter
Gateway Live A Gateway is the payment gateway which allows a merchant to accept/decline payment from customers via online process. This endpoint verifies whether the Gateway is active or not. Mandatory Boolean  True

Sample cURL request

curl --location 'https://verify.icheckdev.com/ICGVerify/ProcessExt' \
--header 'siteID: EEJT' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1laWQiOiJlYjg1M2IzMi01MjYzLTQ3ZDMtODJjOS0yM2NkY2FjNWI4YmQiLCJ1bmlxdWVfbmFtZSI6InN1c2VlbGFzIiwiZW5jcnlwdGVkX2VtYWlsIjoiL0NmWU1tYmpncmF3VzM0a0RBVkZSMzZvY3V4MHRpZjNvU2FTc01QSk14QT0iLCJ0eXBlIjoiIiwiaXNzIjoiaHR0cHM6Ly9hdXRoLmljaGVja2Rldi5jb20vIiwiYXVkIjoiN2E4ODM4YjBlMDJlNGI2MWIwZjhiMjlhZTI5YzRmOTMiLCJleHAiOjE3MDkzNzM3ODAsIm5iZiI6MTcwOTI4NzM4MH0.RP8HR4bjsiUk2JKi3obXKCBzuYuU6M2YYUwNmARq4Lc' \
--data '{
    "BankAccount": {
        "RoutingNumber": "091807908",
        "AccountNumber": "3345"
    },
  "personInfo": {
        "personName": {
        "lastName": "summit",
        "firstName": "sagar"
        }
    },
    "GatewayLive": true
}'

Sample Response

{
    "code": "I001",
    "decision": "ACCEPT",
    "description": "There is no negative information known on the account",
    "addendaRecords": [],
    "error": null
}
  
 

To view our list of APIs, please visit the Verify API page.

NEXT: Main API Overview
company logo iCheckGateway.com Support Desk
  • facebook_social_link_icon_alt_text
  • twitter_social_link_icon_alt_text
  • instagram_social_link_icon_alt_text
  • linkedin_social_link_icon_alt_text
  • youtube_social_link_icon_alt_text
  • Home
  • Sign out