Skip to main content
This guide walks through the complete Notify — Classic flow: signing a request, staging a disbursement notification, and handling the webhook events Ingo posts as the recipient engages. Unlike a direct API integration where the synchronous response carries the final outcome, Notify is primarily an async product — you stage a notification and then listen for webhooks to know what’s happening.
You’ll need your username, secret, and participant_id to follow this guide. These are issued by your Ingo integration manager during onboarding.

Environments

EnvironmentBase URL
Sandboxhttps://payapi-sandbox.ingo.money
Productionhttps://payapi.ingo.money

All Notify — Classic requests use the same HMAC-SHA512 signing as every other Ingo API. Build the X-Date, Content-sha512, Content-Length, and Content-Type headers, then assemble the Authorization header before sending.See Authentication for the full construction guide.
Use RAW (binary) output from your HMAC library before Base64 encoding — not hex. Base64-encoding hex output produces an incorrect signature and a 401 Unauthorized response.
A single POST /gateway/v3/notify call submits the recipient’s details, the disbursement amount, and the identity challenge your program uses to verify the recipient. Ingo immediately notifies the recipient via email and SMS.
POST /gateway/v3/notify HTTP/1.1
Host: payapi-sandbox.ingo.money
Authorization: hmac username="test", algorithm="hmac-sha512", headers="request-line x-date content-type content-sha512 content-length", signature="hAMqhSX6eogO1QpES9Dg9..."
X-Date: Fri, 17 Jan 2020 19:59:29 GMT
Content-sha512: HpXfYk7qDatRNVlGHQOv3ELyAVd+JCdUcpHB5PMnu08=
Content-Length: 512
Content-Type: application/json

{
  "participant_id": 12345,
  "amount": "250.00",
  "workflow_id": 1,
  "participant_unique_id1": "a4f1b2c3-d456-789e-f012-34567890abcd",
  "recipient": {
    "customer_id": "cust-001",
    "first_name": "Alex",
    "last_name": "Rivera",
    "email": "alex.rivera@example.com",
    "mobile": "5555550100",
    "address1": "100 Innovation Way",
    "city": "Anytown",
    "state": "GA",
    "zip": "00000"
  },
  "authentication_records": [
    {
      "field_label": "Last 4 SSN",
      "field_order": 1,
      "validation_type": 1,
      "match_failure_type": 1,
      "value_format": "XXXX",
      "client_provided_value": "1234"
    }
  ],
  "notification_records": [
    {
      "field_label": "Account",
      "client_provided_value": "Checking Account ending 5678"
    }
  ]
}
A successful staging response returns a notification_id you can use to reference this transaction:
{
  "status": 100,
  "client_message": "Success",
  "data": {
    "notification_id": 9876543,
    "tracer_id": "trc-20260422-001"
  }
}
The status: 100 response confirms the notification was staged — not that the recipient has been paid. The disbursement lifecycle continues asynchronously via webhooks.
After staging, Ingo posts webhook events to your configured endpoint as the recipient moves through the engagement flow. Your system needs to handle these events to track transaction status accurately.Key events to handle in order:
EventMeaning
transaction.recipient.notification.sentRecipient has been notified via email/SMS
transaction.recipient.authentication.completeRecipient passed identity verification
transaction.recipient.payment.tokenization.completeRecipient selected a payment method; account tokenized
transaction.recipient.payment.status.approvedDisbursement approved and submitted for processing
transaction.recipient.payment.status.fundedFunds delivered to recipient
See Webhooks for the full event reference and payload schemas.
Do not treat the synchronous status: 100 response as payment confirmation. Always rely on webhook events for authoritative transaction status.
If you need to stop a staged notification before the recipient has claimed their disbursement, send a cancel request with the notification_id returned at staging.
POST /gateway/v3/notifycancel HTTP/1.1
Host: payapi-sandbox.ingo.money
Authorization: hmac username="test", ...
Content-Type: application/json

{
  "participant_id": 12345,
  "notification_id": 9876543
}
Once a recipient has claimed and selected a payment method, cancellation is no longer available. See Notify — Cancel for the full field reference.

What’s next

Authentication

Full HMAC-SHA512 construction guide, header reference, and common signing errors.

Notify — Stage

Complete field reference for the stage endpoint.

Webhooks

All webhook event types, payload schemas, and signature verification.

Notify — Managed Parties

Add multi-party orchestration and approval gating to your disbursement flow.