Tokenize a debit or credit card account for future push-to-card disbursements.
curl --request POST \
--url https://payapi-sandbox.ingo.money/gateway/verify--card \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"participant_id": 12345,
"account_type": "CA",
"amount": 1010.5,
"recipient_first_name": "Alex",
"recipient_last_name": "Rivera",
"account": "4111111111111111",
"expiration_date": "2612",
"cvv": "123",
"recipient_address1": "100 Innovation Way",
"recipient_address2": "Apt 2",
"recipient_city": "Anytown",
"recipient_state": "GA",
"recipient_zip": "00000",
"recipient_phone": "1231231234",
"participant_unique_id1": "1f2739ed-3531-4af2-ae36-e6faf7936462",
"participant_unique_id2": "90759390-01c7-47e7-8a90-6faa89b18ff6",
"timestamp": 1576097158,
"version": 11
}
'{
"status": 100,
"client_message": "Success",
"data": {
"customer_account_token": "ca875cce-58c0-46a0-8f14-676190cc7df6",
"last_4": "1111",
"request_timestamp": 1576097360,
"issuers": [
{
"payee_id": "526263",
"payee_name": "Bank of America - Platinum MasterCard and Visa",
"payee_address": "PO Box 15019",
"payee_city": "Wilmington",
"payee_state": "DE",
"payee_zip": "19850-5019",
"credit_info": {
"min": "0.05",
"max": "1500.00",
"card_type": "Debit",
"estimated_posting_time": "Payment will post within 5 minutes.",
"estimated_posting_date": "04/21/2026"
},
"issuing_network": "Visa",
"credit_enabled": 1,
"debit_enabled": 0
}
],
"participant_unique_id1": "1f2739ed-3531-4af2-ae36-e6faf7936462",
"participant_unique_id2": "90759390-01c7-47e7-8a90-6faa89b18ff6",
"expiration_date": "2612",
"count": 1
},
"time": "2.4505"
}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.
All requests must be authenticated using an HMAC-signed Authorization header. Ingo Money requires HMAC-SHA512 for all new integrations. SHA-512 provides a significantly larger internal state and output length than SHA-256, making it substantially more resistant to length-extension attacks and brute-force preimage attempts — properties that matter for financial API traffic where each request authorizes a real money movement.
Legacy integrations using HMAC-SHA256 remain supported but are encouraged to upgrade. SHA-256 continues to meet the current minimum security bar; however, upgrading to SHA-512 eliminates an entire class of potential vulnerabilities before they become exploitable, and aligns with NIST guidance recommending SHA-2 family algorithms with 256-bit security strength or greater for long-term use. Contact your Ingo integration manager to coordinate an algorithm upgrade.
MD5 and SHA-1 are not accepted under any circumstances. Requests signed with either algorithm will be rejected.
Authorization header format:
Authorization: hmac username="YOUR_HMAC_USERNAME", algorithm="hmac-sha512", headers="request-line x-date content-type content-length content-sha512", signature="BASE64_SIGNATURE"
Credentials provisioned by your Ingo integration manager:
HMAC username — identifies your integration in the Authorization
header username field. Distinct from your participant identifier.
HMAC secret — provisioned by your Ingo integration manager. The private key used to compute the signature. Never transmit this value — store it in a secrets manager or environment variable, never in source code.
Participant identifier — a separate value used to identify your account within the API request payload. The name and placement differs by product family. Both the HMAC username and participant identifier are provisioned at onboarding — do not substitute one for the other.
API key — required for select product families as an additional per-request credential. See product-specific documentation for applicability.
See the Ingo API Authentication Guide for the complete string-to-sign construction, body hashing requirements, and timestamp validation rules.
Exactly one of the following groupings must be provided: (1) customer_account_token, (2) third_party_token, or (3) raw card fields — account, recipient_first_name, recipient_last_name, recipient_address1, recipient_city, recipient_state, recipient_zip.
Unique participant identifier assigned by Ingo.
12345
Always CA for card-based (debit or credit) transactions.
CA 1"CA"
Participant assigned ID to be associated with customer_account_token creation. Should correlate to participant assigned values affiliated with future process requests for tracking purposes (e.g. CustomerID or AccountID). Must not contain NPI data.
1 - 255"1f2739ed-3531-4af2-ae36-e6faf7936462"
Unix timestamp of the request.
1576097158
API version of the request. Current version is 11.
11
Alternative to raw card data when the account was previously tokenized. If provided, third_party_token and all raw card fields (account, expiration_date, recipient_first_name, recipient_last_name, recipient_address1, recipient_address2, recipient_city, recipient_state, recipient_zip) must be omitted.
1 - 255"ca875cce-58c0-46a0-8f14-676190cc7df6"
Contains data about an optional third-party account token. If provided, customer_account_token and raw card fields (account, expiration_date, cvv) must be omitted. Only permitted if the client is configured for third-party token use.
Hide child attributes
Ingo-provided identifier for the third-party tokenization service provider.
3"1"
Third-party account token. To be de-tokenized; its associated account data is then used to create an Ingo account token.
1 - 100"tok_3rdparty_abc123xyz"
Dollar amount of disbursement. Max value determined by participant velocity limits.
x >= 0.011010.5
Recipient first name. Required unless customer_account_token is provided. Must be omitted if customer_account_token is provided.
1 - 255"Johnny"
Recipient last name. Required unless customer_account_token is provided. Must be omitted if customer_account_token is provided.
1 - 255"Rockets"
Optional recipient business name.
150"Rockets LLC"
Card account number. Required unless customer_account_token or third_party_token is provided. Must be omitted if either token is provided.
1 - 255"4111111111111111"
Card expiration date in YYMM format. Conditionally required based on client configuration (expiration_date_enabled). Not required if customer_account_token or third_party_token is provided.
4^[0-9]{2}(0[1-9]|1[0-2])$"2612"
CVV value (3–4 digits depending on card type). Conditionally required based on client configuration (cvv_enabled). Never required if customer_account_token or third_party_token is provided.
^[0-9]{3,4}$"123"
Recipient billing address line 1. Required unless customer_account_token is provided.
1 - 255"123 Main St"
Recipient billing address line 2.
255"Apt 2"
Recipient billing city. Required unless customer_account_token is provided.
1 - 255"Atlanta"
Recipient billing state (standard US postal abbreviation). Required unless customer_account_token is provided.
2^(?:A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$"GA"
Recipient billing zip code. 5-digit zip or zip+4 in xxxxx-xxxx format. Required unless customer_account_token is provided.
10^[0-9]{5}(?:-[0-9]{4})?$"30313"
10-digit recipient phone number.
10"1231231234"
Optional second participant assigned ID to be associated with customer_account_token creation. Should be carried forward to future process requests for tracking purposes. Must not contain NPI data.
255"90759390-01c7-47e7-8a90-6faa89b18ff6"
Client assigned store ID. Required for Retail client participants.
255"STORE-001"
Client assigned terminal ID. Required for Retail client participants.
255"TERM-042"
Client assigned clerk ID. Required for Retail client participants.
255"CLK-007"
Verification successful — token returned
Numeric code describing the status of the API request. 100 = Success.
100
Text description associated with the status code.
"Success"
Hide child attributes
GUID — unique value generated based upon account and recipient data. Use this token in all subsequent Process requests for this account.
"ca875cce-58c0-46a0-8f14-676190cc7df6"
The last 4 digits of the card.
"1111"
Unix timestamp of the request.
1576097360
Information about the issuer of the card.
Hide child attributes
The Ingo assigned ID for the payee.
"526263"
Name of the payee (issuer).
"Bank of America - Platinum MasterCard and Visa"
Payee address.
"PO Box 15019"
Payee city.
"Wilmington"
Payee state.
"DE"
Payee zip code.
"19850-5019"
Information regarding limits for push (credit to card) transactions. Returned if participant is enabled for push and card is enabled for push processing.
Hide child attributes
Minimum amount issuer will accept for a push transaction.
"0.05"
Maximum amount issuer will accept for a push transaction.
"1500.00"
The type of card (e.g. Debit, Prepaid).
"Debit"
Estimated posting time narrative.
"Payment will post within 5 minutes."
Estimated posting date in date format.
"04/21/2026"
Information regarding limits for pull (debit from card) transactions. Returned if participant is enabled for pull and card is enabled for pull processing.
Hide child attributes
Minimum amount issuer will accept for a pull transaction.
"0.05"
Maximum amount issuer will accept for a pull transaction.
"1500.00"
The type of card (e.g. Debit, Prepaid).
"Debit"
Information regarding the issuing network of the card.
"Visa"
Whether the card is enabled for push (credit) transactions. 1 = Enabled, 0 = Not enabled.
0, 1 1
Whether the card is enabled for pull (debit) transactions. 1 = Enabled, 0 = Not enabled.
0, 1 0
Reference data from network card validation. Present when network validation was performed for this account.
Hide child attributes
Card validation service provider. 1 = Visa, 3 = MasterCard.
3"1"
Name match validation results.
Hide child attributes
Whether name match was performed. 1 = Performed, 2 = Not performed, 3 = Not supported by provider, 4 = Client not configured.
3Overall name match result. 1 = Match, 2 = Partial Match, 3 = No Match.
3First name match result. 1 = Match, 2 = Partial Match, 3 = No Match.
3Last name match result. 1 = Match, 2 = Partial Match, 3 = No Match.
3Middle name match result. 1 = Match, 2 = Partial Match, 3 = No Match.
3Echo of participant assigned ID for the verify request.
"1f2739ed-3531-4af2-ae36-e6faf7936462"
Echo of optional second participant assigned ID for the verify request.
"90759390-01c7-47e7-8a90-6faa89b18ff6"
Expiration date of the card associated with the customer_account_token in YYMM format. Retain this to provide expiration alerts to the cardholder.
"2612"
Always returns 1.
1
Time in seconds to complete the request.
"2.4505"
curl --request POST \
--url https://payapi-sandbox.ingo.money/gateway/verify--card \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"participant_id": 12345,
"account_type": "CA",
"amount": 1010.5,
"recipient_first_name": "Alex",
"recipient_last_name": "Rivera",
"account": "4111111111111111",
"expiration_date": "2612",
"cvv": "123",
"recipient_address1": "100 Innovation Way",
"recipient_address2": "Apt 2",
"recipient_city": "Anytown",
"recipient_state": "GA",
"recipient_zip": "00000",
"recipient_phone": "1231231234",
"participant_unique_id1": "1f2739ed-3531-4af2-ae36-e6faf7936462",
"participant_unique_id2": "90759390-01c7-47e7-8a90-6faa89b18ff6",
"timestamp": 1576097158,
"version": 11
}
'{
"status": 100,
"client_message": "Success",
"data": {
"customer_account_token": "ca875cce-58c0-46a0-8f14-676190cc7df6",
"last_4": "1111",
"request_timestamp": 1576097360,
"issuers": [
{
"payee_id": "526263",
"payee_name": "Bank of America - Platinum MasterCard and Visa",
"payee_address": "PO Box 15019",
"payee_city": "Wilmington",
"payee_state": "DE",
"payee_zip": "19850-5019",
"credit_info": {
"min": "0.05",
"max": "1500.00",
"card_type": "Debit",
"estimated_posting_time": "Payment will post within 5 minutes.",
"estimated_posting_date": "04/21/2026"
},
"issuing_network": "Visa",
"credit_enabled": 1,
"debit_enabled": 0
}
],
"participant_unique_id1": "1f2739ed-3531-4af2-ae36-e6faf7936462",
"participant_unique_id2": "90759390-01c7-47e7-8a90-6faa89b18ff6",
"expiration_date": "2612",
"count": 1
},
"time": "2.4505"
}