Purpose: Submit a request to pull funds from a customer's account.
The Process method is used to instruct the IPG platform to disburse funding to a customer's account. The partner and their customer should be committed to the payment prior to making the Process call to the system. A successful response provides verification that the payment item has been accepted. Once accepted, a payment cannot be reversed.
Clients should ASSUME FAILURE for any Debit Process (payment) requests in which a response has not been received from Ingo Payments.
Additional information on re-try attemtps and handling timeout scenarios can be reviewed under the >>.>Idempotency section.
Clients should log Ingo Transaction ID, Ingo will request this when interacting with Payment Services Team along with Participant_unique_id1.
¶ Sandbox URL & Example Request Payloads
https://payapi-sandbox.ingo.money/gateway/v12/debit/process
Participants may declare the Content Types below in the request header to ‘Accept’ back as their response format (default is JSON):
HTTP: POST
Content Type: application/json
Card (Debit)ACH (Debit)Purpose: Submit a request to pull funds from a customer's Debit Card.
PARAMETER |
REQ'T |
TYPE |
DESCRIPTION |
request |
RQD |
OBJ |
Information about the API request - general information associated with the call to the API method. |
transaction |
RQD |
OBJ |
Process request - general transaction information. |
request (object)transaction (object)
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
participant_id |
REQUIRED |
STRING |
5 |
Unique participant identifier assigned by Ingo. |
timestamp |
REQUIRED |
STRING |
32 |
Unix timestamp of the request. |
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
account_type |
REQUIRED |
STRING |
2 |
Value will always be ‘CA’. |
transaction_amount |
REQUIRED |
OBJECT |
|
Amount of the transaction |
participant_unique_ids |
REQUIRED |
OBJECT |
|
Participant assigned IDs for the request. |
customer_account_token |
REQUIRED |
STRING |
50 |
Value representing the account number and customer data as provided in response from a previous Verify API call |
source_of_funds |
REQUIRED |
STRING |
2 |
Funding source indicator: 1 – Cash, 2 – Check, 3 – Combo of Cash & Check, 4 – Corp Disb |
recipient_phone |
OPTIONAL |
STRING |
10 |
Phone number associated with the recipient. |
retail |
CONDITIONAL |
OBJECT |
|
Retail Store Information |
risk_assessment_token |
CONDITIONAL |
STRING |
36 |
Associated risk assessment token (returned by RiskScore response). |
sender |
CONDITIONAL |
OBJECT |
|
Data about the transaction sender. Required for clients using certain transaction types. |
transaction_amount (object)participant_unique_ids (object)retail (object)sender (object)
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
currency_code |
REQUIRED |
STRING |
3 |
3 character ISO-4217 (alpha) currency code. |
amount |
REQUIRED |
STRING |
12 |
Amount, in currency indicated by currency_code. |
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
participant_unique_id1 |
REQUIRED |
STRING |
100 |
Participant assigned transaction ID for the process request. Value must be unique and may not contain NPI data. This value is used to determine whether a request has been previously received and processed successfully; if a request is duplicated, Ingo Payments will send an idempotent response and will NOT initiate a new push request. Value will appear on daily reconciliation reports. |
participant_unique_id2 |
OPTIONAL |
STRING |
100 |
Optional second participant assigned transaction ID for the request. This ID does not carry forward to daily reconciliation reports. |
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
store_id |
REQUIRED |
STRING |
254 |
Participant assigned store ID. This field is required if participant is a Retail client. |
terminal_id |
REQUIRED |
STRING |
254 |
Participant assigned terminal ID. This field is required if participant is a Retail client |
clerk_id |
REQUIRED |
STRING |
254 |
Participant assigned clerk ID. This field is required if participant is a Retail client |
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
name_personal |
REQUIRED |
OBJECT |
|
URL encoded track 1 data from and including the beginning sentinel to and including the ending sentinel. Required for some transaction types. |
contact_address |
REQUIRED |
OBJECT |
255 |
Address of sender. |
contact_telcom |
REQUIRED |
OBJECT |
255 |
Party telecom contact points. |
sender_account |
REQUIRED |
STRING |
100 |
Sender account identifier. |
name_personal (object)
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
first_name |
REQUIRED |
STRING |
150 |
Sender first name. |
last_name |
REQUIRED |
STRING |
150 |
Sender last name. |
contact_address (object)
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
address1 |
REQUIRED |
STRING |
150 |
Street address (line1) |
address2 |
OPTIONAL |
STRING |
150 |
Optional - street address (line 2). |
city |
REQUIRED |
STRING |
150 |
City name. |
state |
REQUIRED |
STRING |
2 |
State (standard postal abbreviation). |
zip |
REQUIRED |
STRING |
5 |
Zip code (5-digit zip or 10-digit zip-plus-4 in xxxxx-xxxx format). |
contact_telcom (object)
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
email |
REQUIRED |
STRING |
150 |
Email address. |
phone_home |
OPTIONAL |
STRING |
10 |
Home phone number. |
phone_mobile |
OPTIONAL |
STRING |
10 |
Mobile phone number. |
Purpose: Submit a request to pull funds from a customer's bank account.
PARAMETER |
REQ'T |
TYPE |
DESCRIPTION |
request |
RQD |
OBJ |
Information about the API request - general information associated with the call to the API method. |
transaction |
RQD |
OBJ |
Process request - general transaction information. |
request (object)transaction (object)
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
participant_id |
REQUIRED |
STRING |
5 |
Unique participant identifier assigned by Ingo. |
timestamp |
REQUIRED |
STRING |
32 |
Unix timestamp of the request. |
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
account_type |
REQUIRED |
STRING |
2 |
Value will always be ‘AC’ for ACH or ‘SD’ for same-day ACH. |
transaction_amount |
REQUIRED |
OBJECT |
|
Amount of the transaction |
participant_unique_ids |
REQUIRED |
OBJECT |
|
Participant assigned IDs for the request. |
customer_account_token |
REQUIRED |
STRING |
50 |
Value representing the account number and customer data as provided in response from a previous Verify API call |
source_of_funds |
REQUIRED |
STRING |
2 |
Funding source indicator: 1 – Cash, 2 – Check, 3 – Combo of Cash & Check, 4 – Corp Disb |
recipient_phone |
OPTIONAL |
STRING |
10 |
Phone number associated with the recipient. |
retail |
CONDITIONAL |
OBJECT |
|
Retail Store Information |
risk_assessment_token |
CONDITIONAL |
STRING |
36 |
Associated risk assessment token (returned by RiskScore response). |
sender |
CONDITIONAL |
OBJECT |
|
Data about the transaction sender. Required for clients using certain transaction types. |
transaction_amount (object)participant_unique_ids (object)retail (object)sender (object)
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
currency_code |
REQUIRED |
STRING |
3 |
3 character ISO-4217 (alpha) currency code. |
amount |
REQUIRED |
STRING |
12 |
Amount, in currency indicated by currency_code. |
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
participant_unique_id1 |
REQUIRED |
STRING |
100 |
Participant assigned transaction ID for the process request. Value must be unique and may not contain NPI data. This value is used to determine whether a request has been previously received and processed successfully; if a request is duplicated, Ingo Payments will send an idempotent response and will NOT initiate a new push request. Value will appear on daily reconciliation reports. |
participant_unique_id2 |
OPTIONAL |
STRING |
100 |
Optional second participant assigned transaction ID for the request. This ID does not carry forward to daily reconciliation reports. |
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
store_id |
REQUIRED |
STRING |
254 |
Participant assigned store ID. This field is required if participant is a Retail client. |
terminal_id |
REQUIRED |
STRING |
254 |
Participant assigned terminal ID. This field is required if participant is a Retail client |
clerk_id |
REQUIRED |
STRING |
254 |
Participant assigned clerk ID. This field is required if participant is a Retail client |
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
name_personal |
REQUIRED |
OBJECT |
|
URL encoded track 1 data from and including the beginning sentinel to and including the ending sentinel. Required for some transaction types. |
contact_address |
REQUIRED |
OBJECT |
255 |
Address of sender. |
contact_telcom |
REQUIRED |
OBJECT |
255 |
Party telecom contact points. |
sender_account |
REQUIRED |
STRING |
100 |
Sender account identifier. |
name_personal (object)
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
first_name |
REQUIRED |
STRING |
150 |
Sender first name. |
last_name |
REQUIRED |
STRING |
150 |
Sender last name. |
contact_address (object)
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
address1 |
REQUIRED |
STRING |
150 |
Street address (line1) |
address2 |
OPTIONAL |
STRING |
150 |
Optional - street address (line 2). |
city |
REQUIRED |
STRING |
150 |
City name. |
state |
REQUIRED |
STRING |
2 |
State (standard postal abbreviation). |
zip |
REQUIRED |
STRING |
5 |
Zip code (5-digit zip or 10-digit zip-plus-4 in xxxxx-xxxx format). |
contact_telcom (object)
PARAMETER |
REQ'T |
TYPE |
MAX_LEN |
DESCRIPTION |
email |
REQUIRED |
STRING |
150 |
Email address. |
phone_home |
OPTIONAL |
STRING |
10 |
Home phone number. |
phone_mobile |
OPTIONAL |
STRING |
10 |
Mobile phone number. |
Example Card (Debit) PayloadExample ACH Payload{
"request": {
"participant_id": "12345",
"timestamp": "1547143063"
},
"transaction": {
"account_type": "CA",
"transaction_amount": {
"currency_code": "USD",
"amount": "101.96"
},
"participant_unique_ids": {
"participant_unique_id1": "eba1fff2-b74b-401f-957e-cc8a16c49408",
"participant_unique_id2": "cd5f2b0c-69be-458d-a3a5-5f96cf5171df"
},
"customer_account_token": "81a67729-6e41-47db-8076-01a5bd79e958",
"source_of_funds": "4",
"risk_assessment_token": "36f6b449-fa29-4f9e-919f-ad1e6433f1d5"
}
}
{
"request": {
"participant_id": "12345",
"timestamp": "1547143063"
},
"transaction": {
"account_type": "AC",
"transaction_amount": {
"currency_code": "USD",
"amount": "101.96"
},
"participant_unique_ids": {
"participant_unique_id1": "eba1fff2-b74b-401f-957e-cc8a16c49408",
"participant_unique_id2": "cd5f2b0c-69be-458d-a3a5-5f96cf5171df"
},
"customer_account_token": "4153e416-d81d-4420-a494-9feceed4eef3",
"source_of_funds": "4"
}
}
PARAMETER |
REQ'T |
TYPE |
DESCRIPTION |
request |
REQUIRED |
OBJ |
Information about the API request - general information associated with the call to the API method. |
response |
REQUIRED |
OBJ |
Information about the API response - general information associated with the outcome of the call to the API method. |
transaction |
REQUIRED |
OBJ |
Process response - general transaction information. |
request (object)response (object)transaction (object)
PARAMETER |
REQ'T |
TYPE |
DESCRIPTION |
participant_id |
REQUIRED |
STRING |
Unique participant identifier assigned by Ingo. |
timestamp |
REQUIRED |
STRING |
Unix timestamp of the request. |
PARAMETER |
REQ'T |
TYPE |
DESCRIPTION |
status |
REQUIRED |
STRING |
Numeric code describing status of API request (e.g. 100 = Success). |
message |
REQUIRED |
STRING |
Text description associated with status code. |
duration |
REQUIRED |
STRING |
Time in seconds to complete the request. |
PARAMETER |
REQ'T |
TYPE |
DESCRIPTION |
participant_unique_ids |
REQUIRED |
OBJECT |
Participant assigned IDs for the request. |
customer_account_token |
REQUIRED |
STRING |
Echo of value from request. Provided on success. |
transaction_id |
REQUIRED |
STRING |
Always provided on success and in certain failure conditions. Unique transaction identifier generated with each successful request. |
estimated_posting_time |
REQUIRED |
STRING |
Provided on success. Estimated posting time of the payment: “Your payment will post within 5 minutes.” or “Your payment will post todays date.” or “Your payment will post next business day’s date.” |
estimated_posting_date |
REQUIRED |
STRING |
Provided on success. Estimated posting time of the payment in date format |
participant_unique_ids (object)
PARAMETER |
REQ'T |
TYPE |
DESCRIPTION |
participant_unique_id1 |
REQUIRED |
STRING |
Always provided on success and in certain failure conditions. Echo of value provided on request. |
participant_unique_id2 |
OPTIONAL |
STRING |
Provided on success and in certain failure conditions if sent on original request. Echo of value provided on request. |
Sample Response Payload {
"request": {
"participant_id": "12345",
"timestamp": "1547143063"
},
"response": {
"status": "100",
"message": "Success",
"duration": "1.1809"
},
"transaction": {
"estimated_posting_date": "XX/XX/20XX",
"estimated_posting_time": "Payment will post XX/XX/20XX",
"transaction_id": "1237774",
"customer_account_token": "4153e416-d81d-4420-a494-9feceed4eef3",
"participant_unique_ids": {
"participant_unique_id1": "eba1fff2-b74b-401f-957e-cc8a16c49408",
"participant_unique_id2": "cd5f2b0c-69be-458d-a3a5-5f96cf5171df"
}
}
}