> ## 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.

# Quick Start

> Stage your first Notify — Classic disbursement and handle the recipient engagement webhooks.

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.

<Info>
  You'll need your **username**, **secret**, and **participant\_id** to follow this guide. These are issued by your Ingo integration manager during onboarding.
</Info>

***

## Environments

| Environment | Base URL                            |
| ----------- | ----------------------------------- |
| Sandbox     | `https://payapi-sandbox.ingo.money` |
| Production  | `https://payapi.ingo.money`         |

***

<AccordionGroup>
  <Accordion title="Step 1 — Sign your request">
    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](/docs/notify-classic/authentication) for the full construction guide.

    <Warning>
      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.
    </Warning>
  </Accordion>

  <Accordion title="Step 2 — Stage a disbursement notification">
    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.

    ```http theme={null}
    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:

    ```json theme={null}
    {
      "status": 100,
      "client_message": "Success",
      "data": {
        "notification_id": 9876543,
        "tracer_id": "trc-20260422-001"
      }
    }
    ```

    <Note>
      The `status: 100` response confirms the notification was **staged** — not that the recipient has been paid. The disbursement lifecycle continues asynchronously via webhooks.
    </Note>
  </Accordion>

  <Accordion title="Step 3 — Handle webhook events">
    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:

    | Event                                                 | Meaning                                                |
    | ----------------------------------------------------- | ------------------------------------------------------ |
    | `transaction.recipient.notification.sent`             | Recipient has been notified via email/SMS              |
    | `transaction.recipient.authentication.complete`       | Recipient passed identity verification                 |
    | `transaction.recipient.payment.tokenization.complete` | Recipient selected a payment method; account tokenized |
    | `transaction.recipient.payment.status.approved`       | Disbursement approved and submitted for processing     |
    | `transaction.recipient.payment.status.funded`         | Funds delivered to recipient                           |

    See [Webhooks](/docs/notify-classic/webhooks/overview) for the full event reference and payload schemas.

    <Warning>
      Do not treat the synchronous `status: 100` response as payment confirmation. Always rely on webhook events for authoritative transaction status.
    </Warning>
  </Accordion>

  <Accordion title="Step 4 — Cancel if needed">
    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.

    ```http theme={null}
    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](/docs/notify-classic/notify/cancel) for the full field reference.
  </Accordion>
</AccordionGroup>

***

## What's next

<CardGroup cols={2}>
  <Card title="Authentication" icon="lock" href="/docs/notify-classic/authentication">
    Full HMAC-SHA512 construction guide, header reference, and common signing errors.
  </Card>

  <Card title="Notify — Stage" icon="paper-plane" href="/docs/notify-classic/notify/stage">
    Complete field reference for the stage endpoint.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/docs/notify-classic/webhooks/overview">
    All webhook event types, payload schemas, and signature verification.
  </Card>

  <Card title="Notify — Managed Parties" icon="users" href="/docs/notify-managed/overview">
    Add multi-party orchestration and approval gating to your disbursement flow.
  </Card>
</CardGroup>
