Evaluate the risk of a transaction and obtain a risk assessment token for use in subsequent process calls.
curl --request POST \
--url https://payapi-sandbox.ingo.money/risk/riskscore/v2 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"request": {
"participant_id": "12345",
"timestamp": "1721337427"
},
"transaction": {
"account_type": "AC",
"transaction_amount": {
"currency_code": "USD",
"amount": "15.00"
},
"customer_account_token": "f40810e6-b382-4dd5-8012-9d8518136fdc",
"customer_id": "bb79062e-938c-427e-8494-1d69fa3f2295",
"risk_session_token": "e9751823-fed0-4982-802b-6a4bb1cdc86c",
"phone": "5555550100",
"phone_verified": "false",
"email": "customer@example.com",
"email_verified": "true",
"dob": "01/02/2000"
},
"transaction_ifa": {
"ssn": "6789",
"dob": "01/02/2000",
"device_id": "99ABCDEF-01234567-89ABCDE",
"geo_location": {
"latitude": "33.76272140863938",
"longitude": "-84.39188882939422"
}
}
}
'{
"request": {
"participant_id": "12345",
"timestamp": "1721337427"
},
"response": {
"status": "100",
"message": "Success",
"duration": "0.074021816253662"
},
"transaction": {
"score": "3000",
"risk_assessment_token": "de1a802d-e6d3-4bd7-8ee9-53171952d812",
"fraud_guarantee": {
"guarantee_requested": "1",
"transaction_guaranteed": "1"
}
}
}Documentation Index
Fetch the complete documentation index at: https://developers.ingopayments.com/llms.txt
Use this file to discover all available pages before exploring further.
transaction_ifa{} is required when the client is configured with Identity Fraud Assessment (ifa_enabled flag). transaction_open_banking{} is conditional based on client open banking configuration. Contact your Ingo integration manager to confirm which objects apply to your integration.
General information associated with the API request.
General transaction and risk assessment information.
Hide child attributes
Account type of the transaction being assessed. CA = Card, AC = ACH. Only these two account types are supported by the risk scoring flow.
CA, AC 1"AC"
Hide child attributes
3-character ISO-4217 (alpha) currency code.
3^[A-Z]{3}$"USD"
Transaction amount. Must be greater than 0 with a maximum of 2 decimal places.
1 - 12"15.00"
Token representing the account number and customer data as provided in the response from a previous Verify API call.
1 - 50"f40810e6-b382-4dd5-8012-9d8518136fdc"
Client provided unique identifier for the customer.
64"bb79062e-938c-427e-8494-1d69fa3f2295"
Customer phone number. Accepted formats: (1) 10-character all-digit string treated as US number (e.g. 4151231234), or (2) ISO E.164 format (e.g. +14151231234). Accepted characters: 0-9, +.
16"4045555555"
Indicates whether the customer phone number has been verified.
true, false "false"
Customer primary email address from profile.
150"customer@example.com"
Indicates whether the customer email has been verified.
true, false "true"
Customer date of birth. Accepted formats: MM/dd/yyyy or MM-dd-yyyy.
10^([0-9]{2}\/[0-9]{2}\/[0-9]{4})|(([0-9]{2}\-[0-9]{2}\-[0-9]{4}))$"01/02/2000"
The risk_session_token from the Risk Session Method response. Recommended to include for accurate device fingerprinting correlation.
36"e9751823-fed0-4982-802b-6a4bb1cdc86c"
Additional risk information for Ingo Fraud Alert (IFA). Required when the client is configured with ifa_enabled. When required, ssn must be provided. dob is conditionally required when providing last-4 SSN only.
Hide child attributes
Full SSN (9 digits, no dashes), full SSN with dashes (XXX-XX-XXXX), or last-4 digits only (4 digits). When providing last-4, dob is required.
4 - 11^(([0-9]{4})|([0-9]{9})|([0-9]{3}\-[0-9]{2}\-[0-9]{4}))$"6789"
Date of birth in MM/DD/YYYY or MM-DD-YYYY format. Required when using SSN last-4.
10^([0-9]{2}\/[0-9]{2}\/[0-9]{4})|(([0-9]{2}\-[0-9]{2}\-[0-9]{4}))$"01/02/2000"
The ID of the device, captured by the Sardine device fingerprinting SDK.
1 - 100"99ABCDEF-01234567-89ABCDE"
Geo-location information associated with the transaction.
Hide child attributes
Latitude of the location. Range: -90 to 90 with a precision of up to 18 decimal places.
1 - 22^-?[0-9]{0,2}\.[0-9]{0,18}$"33.76272140863938"
Longitude of the location. Range: -180 to 180 with a precision of up to 18 decimal places.
1 - 23^-?[0-9]{0,3}\.[0-9]{0,18}$"-84.39188882939422"
Open banking data for risk score assessment enrichment. Conditional based on client configuration and open banking partner. Passed through to the Sardine risk scoring vendor for downstream open banking enrichment. Exactly one of open_banking_plaid or open_banking_other should be provided — not both.
Hide child attributes
Account data from Plaid open banking. Provides Sardine with direct access to Plaid account data for enhanced risk signal enrichment. Currently live for clients configured with Plaid.
Hide child attributes
The processor token for the account as provided by Plaid.
36"5964250f-18b3-419c-913c-92f4143ecfd3"
The unique identifier of the account for the customer as provided by Plaid.
36"47507fce-a89c-4fd5-b0c7-5b179da4c6a1"
Account data from an alternative open banking provider (non-Plaid). Supports bank_data, mx_data, stripe_data, and teller_data sub-objects depending on the provider used. Exactly one sub-object should be provided.
Hide child attributes
Generic bank account and transaction data for providers not using Plaid (e.g. Finicity, Yodlee, or other).
Hide child attributes
Open banking data provider name (e.g. Finicity, Yodlee, or other).
"Finicity"
List of bank accounts and related information.
Hide child attributes
ID of bank account as defined by you or the financial data provider.
"acct_001"
Bank account number.
"123456789"
Bank routing number.
"011000015"
Account type — checking, saving, or other.
"checking"
Name of the bank account.
"Wells Fargo high-interest savings account"
Hide child attributes
Currency code in ISO 3-digit format (e.g. USD).
"USD"
Current balance in minor currency unit (e.g. cents).
"150000"
Available balance in minor currency unit (e.g. cents).
"148500"
Unix timestamp indicating when balance was last updated.
"1721337427"
Hide child attributes
Names associated with the account. Note: string not array as many banks don't return names as an array.
"Jane Doe"
Hide child attributes
"Atlanta"
"US"
"30313"
"GA"
"true"
List of transactions.
Hide child attributes
ID of the transaction.
"txn_001"
ID of the bank account.
"acct_001"
Amount in minor currency unit (e.g. cents).
"5000"
Currency code in ISO 3-digit format (e.g. USD).
"USD"
Transaction status — active or pending.
"active"
Description of transaction given by financial institution.
"Direct deposit"
Date when transaction was posted in YYYY-MM-DD format.
"2026-04-22"
Date when transaction took place in YYYY-MM-DD format.
"2026-04-21"
Type of transaction. One of: atm, cash, check, credit, debit, deposit, directDebit, directDeposit, dividend, fee, intrest, payment, pointOfSale, repeatPayment, serviceCharge, transfer, or other.
"directDeposit"
Name of merchant.
"Ingo Money"
List of categories (e.g. overdraft, bankFee).
["directDeposit"]Hide child attributes
"123 Main St"
"Atlanta"
"GA"
"30313"
"US"
"33.76272140863938"
"-84.39188882939422"
JSON responses from MX APIs for open banking enrichment.
Hide child attributes
JSON from MX GET /users/{user_guid}/accounts. All pages of results required.
JSON from MX GET /users/{user_guid}/accounts/{account_guid}/transactions. All pages of results required.
JSON from MX GET /users/{user_guid}/members/{member_guid}/account_owners.
JSON from MX GET /users/{user_guid}/members/{member_guid}/account_numbers.
JSON responses from Stripe Financial Connections APIs for open banking enrichment.
Hide child attributes
JSON from Stripe Financial Connections GET/v1/financial_connections/accounts/:id with balance and ownership refresh. Always send latest balance; ownership only required on first call.
Bank account number. Required on first call only. Ingo links the Stripe account ID to the account number for subsequent calls.
"123456789"
Bank routing number. Required on first call only. Ingo links the Stripe account ID to the routing number for subsequent calls.
"011000015"
JSON list of transactions from Stripe Financial Connections at the account ID level. All pages of results required.
JSON responses from Teller APIs for open banking enrichment.
Hide child attributes
Bank account number. Required on first call only. Ingo links the Teller account ID for subsequent calls.
"123456789"
Bank routing number. Required on first call only.
"011000015"
Teller's Account API response.
Teller's Account Balance API response.
Teller's Transactions API response.
Risk score returned successfully
Hide child attributes
Risk assessment results.
Hide child attributes
Ingo risk score for the transaction. Scores 2–299 indicate high risk / fraud. Scores 300–3000 are continuous risk scores — 3000 is best.
"3000"
Ingo-assigned ID for the risk assessment. Must be included in the subsequent debit Process request via transaction.risk_assessment_token.
"de1a802d-e6d3-4bd7-8ee9-53171952d812"
Indicators associated with transaction fraud guarantee.
Hide child attributes
Indicates whether a guarantee against fraud was requested. 1 = requested, 0 = not requested.
"1"
Indicates whether the transaction was guaranteed against fraud. Only present when guarantee_requested = 1.
"1"
curl --request POST \
--url https://payapi-sandbox.ingo.money/risk/riskscore/v2 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"request": {
"participant_id": "12345",
"timestamp": "1721337427"
},
"transaction": {
"account_type": "AC",
"transaction_amount": {
"currency_code": "USD",
"amount": "15.00"
},
"customer_account_token": "f40810e6-b382-4dd5-8012-9d8518136fdc",
"customer_id": "bb79062e-938c-427e-8494-1d69fa3f2295",
"risk_session_token": "e9751823-fed0-4982-802b-6a4bb1cdc86c",
"phone": "5555550100",
"phone_verified": "false",
"email": "customer@example.com",
"email_verified": "true",
"dob": "01/02/2000"
},
"transaction_ifa": {
"ssn": "6789",
"dob": "01/02/2000",
"device_id": "99ABCDEF-01234567-89ABCDE",
"geo_location": {
"latitude": "33.76272140863938",
"longitude": "-84.39188882939422"
}
}
}
'{
"request": {
"participant_id": "12345",
"timestamp": "1721337427"
},
"response": {
"status": "100",
"message": "Success",
"duration": "0.074021816253662"
},
"transaction": {
"score": "3000",
"risk_assessment_token": "de1a802d-e6d3-4bd7-8ee9-53171952d812",
"fraud_guarantee": {
"guarantee_requested": "1",
"transaction_guaranteed": "1"
}
}
}