Skip to main content
POST
/
gateway
/
process--billpay
Push funds to a bill payment account
curl --request POST \
  --url https://payapi-sandbox.ingo.money/gateway/process--billpay \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "participant_id": 12345,
  "timestamp": 1587052232,
  "version": 11,
  "amount": 1010.5,
  "participant_unique_id1": "f8f68709-8e5d-4c19-8ca0-2eaffef4ec57",
  "customer_account_token": "a74eacf4-32e8-4081-b69c-565a89dd6cf1",
  "account_type": "BP",
  "source_of_funds": 4,
  "participant_unique_id2": "257b5bae-d52f-42e2-8f2c-0700d8d7a7a5",
  "store_id": "STORE-001",
  "clerk_id": "CLK-007",
  "terminal_id": "TERM-042"
}
'
{
  "status": 100,
  "client_message": "Success",
  "data": {
    "estimated_posting_time": "Payment will post 04/22/2026",
    "estimated_posting_date": "04/22/2026",
    "transaction_id": 2361538,
    "request_timestamp": 1587052280,
    "customer_account_token": "a74eacf4-32e8-4081-b69c-565a89dd6cf1",
    "participant_unique_id1": "f8f68709-8e5d-4c19-8ca0-2eaffef4ec57",
    "participant_unique_id2": "257b5bae-d52f-42e2-8f2c-0700d8d7a7a5"
  }
}

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.

Body

application/json
participant_id
integer
required

Unique participant identifier assigned by Ingo.

Example:

12345

timestamp
integer<int64>
required

Unix timestamp of the request.

Example:

1587052232

version
integer
required

API version of the request. Current version is 11.

Example:

11

amount
number<float>
required

Amount of the transaction.

Required range: x >= 0.01
Example:

1010.5

participant_unique_id1
string
required

Participant assigned transaction ID for the process request. Value must be unique and may not contain NPI data. Used for idempotency — a duplicate value returns an idempotent response without initiating a new push request. Appears on daily reconciliation reports.

Required string length: 1 - 255
Example:

"f8f68709-8e5d-4c19-8ca0-2eaffef4ec57"

customer_account_token
string
required

Token representing the account number and customer data as provided in the response from a previous Verify API call.

Required string length: 1 - 255
Example:

"a74eacf4-32e8-4081-b69c-565a89dd6cf1"

account_type
enum<string>
required

Always BP for bill payment disbursements.

Available options:
BP
Minimum string length: 1
Example:

"BP"

source_of_funds
enum<integer>
required

Funding source indicator: 1 = Cash, 2 = Check, 3 = Combo of Cash & Check, 4 = Corp Disbursement.

Available options:
1,
2,
3,
4
Example:

4

participant_unique_id2
string | null

Optional second participant assigned transaction ID. Does not appear on daily reconciliation reports.

Maximum string length: 255
Example:

"257b5bae-d52f-42e2-8f2c-0700d8d7a7a5"

store_id
string | null

Client assigned store ID. Required for Retail client participants.

Maximum string length: 255
Example:

"STORE-001"

clerk_id
string | null

Client assigned clerk ID. Required for Retail client participants.

Maximum string length: 255
Example:

"CLK-007"

terminal_id
string | null

Client assigned terminal ID. Required for Retail client participants.

Maximum string length: 255
Example:

"TERM-042"

recipient_phone
integer

10-digit recipient phone number. Digits only.

Example:

5555550100

ledger
object

Ledger information. Required for clients with ledger program configuration.

Response

Payment accepted successfully

status
integer

Numeric code describing the status of the API request. 100 = Success.

Example:

100

client_message
string

Text description associated with the status code.

Example:

"Success"

data
object