> ## Documentation Index
> Fetch the complete documentation index at: https://docs.endl.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Endl Partner API

> REST APIs for onboarding customers, moving money, and receiving events

Endl is a payouts platform. You verify a customer, price a transfer, fund it,
submit it, and receive an event when it settles. Six REST APIs cover that
surface, all authenticated with a single partner key.

## What you can build with Endl

* **Onboard and verify customers**\
  KYC for individuals and KYB for businesses, with document upload and hosted
  verification links.
* **Move money across borders**\
  Price a transfer, lock the rate in, fund it, and track it through to
  settlement.
* **Open and manage accounts**\
  Open accounts, read balances, and pull activity. Start with the
  [Accounts guide](https://docs.endl.io/guides/accounts.md).
* **Custody wallets across networks**\
  Create wallets and provision them on additional networks.
* **React to events in real time**\
  Signed webhook deliveries, or a replayable feed you poll on your own schedule.

## Get started

> **[Authentication](https://docs.endl.io/api-reference/authentication.md)**
>
> One header and one key. Start here.

> **[API reference](https://docs.endl.io/api-reference/introduction.md)**
>
> All 95 endpoints, each with a request playground.

> **[Webhooks guide](https://docs.endl.io/guides/webhooks.md)**
>
> The delivery contract — signing, verification, and what never fires.

> **[Accounts guide](https://docs.endl.io/guides/accounts.md)**
>
> What an account is, `FIAT` vs `ONRAMP`, and the whole lifecycle.

> **[Quotes guide](https://docs.endl.io/guides/quotes.md)**
>
> The three shapes, the limits that reject a price, and the ten minutes.

> **[Wallets guide](https://docs.endl.io/guides/wallets.md)**
>
> Custodial addresses — one EVM wallet for all five EVM networks — and what the balance really returns.

> **[FAQ](https://docs.endl.io/faq.md)**
>
> The questions partners ask most often, answered.

> **[POBO](https://docs.endl.io/api-reference/pobo/introduction.md)**
>
> Pay out on behalf of a named originator.

> **[Errors](https://docs.endl.io/api-reference/errors.md)**
>
> The shared envelope, and what each status code means.

## Base URL

All endpoints are served from one host and versioned in the path.

| Environment | Base URL |
| - | - |
| Sandbox | `https://api-sandbox.endl.io` |
| Production | Issued at onboarding |

## Authentication

Every request carries one header, `API-KEY`. There is no login step, no token
exchange and no secret. Keys are scoped to your partner account and carry
individual permissions — a key without the permission an endpoint requires fails
with `403`, raised at the edge before the request reaches the service.

```bash theme={null}
curl https://api-sandbox.endl.io/api/v0/currencies \
  -H "Api-Version: 2026-09.1" \
  -H "API-KEY: $ENDL_API_KEY"
```

```json Response theme={null}
{ "code": 200, "message": "Success", "status": "SUCCESS", "data": {}, "errors": [] }
```

Permissions and failure modes are covered on
[Authentication](https://docs.endl.io/api-reference/authentication.md).

## Key platform components

> **[Onboarding](https://docs.endl.io/api-reference/onboarding/introduction.md)**
>
> Verify your end customers before they move money — KYC for individuals, KYB
> for businesses. 8 endpoints under `/api/v0/customer`.

> **[Partner API](https://docs.endl.io/api-reference/introduction.md)**
>
> Wallets, quotes, recipients, accounts, transactions and reference data.
> 35 endpoints under `/api/v0`.

> **[Webhooks](https://docs.endl.io/webhooks/overview.md)**
>
> Subscriptions, delivery inspection and the PULL event feed. 10 endpoints
> under `/api/v0/webhooks`.

> **[POBO](https://docs.endl.io/api-reference/pobo/introduction.md)**
>
> Pay out on behalf of a named originator, through Paywho rails. 13 endpoints
> under `/api/v0/pobo`.

> **[Cards](https://docs.endl.io/api-reference/cards/introduction.md)**
>
> Issue virtual and single-use cards, fund the card balance, and follow every
> transaction by webhook. 24 endpoints under `/api/v0`.

> **[Gift Cards](https://docs.endl.io/giftcards/overview.md)**
>
> Order gift cards and retrieve redemption codes. Signed with HMAC-SHA256.
> 5 endpoints.

**Success bodies on `/api/v0` are unwrapped** — the body is the object itself,
with no `{ data, code, message, status }` envelope. That holds for the Partner,
Onboarding and POBO surfaces alike.

The **Webhooks** API is the exception: its service responses do use the shared
envelope. And errors raised at the **edge** — a rejected key, a tripped rate
limit — use the envelope on every surface. See
[Errors and the response envelope](https://docs.endl.io/api-reference/errors.md).

## A typical payout

Four calls take a verified customer from a new recipient to settled money.

1. **Prepare the recipient.** Ask [which fields the corridor
   requires](https://docs.endl.io/api-reference/reference/get-recipient-fields.md), collect
   exactly those, then [add the recipient](https://docs.endl.io/api-reference/recipients/add-recipient.md).
   Requirements vary by currency and rail, and are not guessable.
2. **Price it.** [Generate a quote](https://docs.endl.io/api-reference/quotes/generate-quote.md). The rate
   and fees hold for **ten minutes**, and the quote backs exactly one transaction.
3. **Check it.** [Create a pre-transaction](https://docs.endl.io/api-reference/transactions/create-pre-transaction.md)
   to check the quote, recipient, wallet and KYC together. It moves no money; Endl
   debits the source when you submit. See the [Transactions guide](https://docs.endl.io/guides/transactions.md).
4. **Submit and track.** [Submit](https://docs.endl.io/api-reference/transactions/submit-transaction.md),
   then either poll [Get transaction](https://docs.endl.io/api-reference/transactions/get-transaction.md)
   or subscribe to `payout.completed` and let a
   [webhook](https://docs.endl.io/webhooks/overview.md) tell you.

## Conventions

| Convention | Detail |
| - | - |
| Money | Decimal strings, never floats — `"1500.00"`. Parse with a decimal type; binary floats lose cents at scale. |
| Timestamps | ISO 8601 strings in UTC, e.g. `2026-10-22T09:15:32.481Z`. |
| Identity | Derived from the API key. You only ever see your own resources; another partner's resource returns `404`, never `403`. |
| Versioning | Every request sends `Api-Version: 2026-09.1`. The served version is echoed on the response. Omitting it is a `400`. See [Versioning](https://docs.endl.io/api-reference/versioning.md). |
| Correlation | Every response carries `X-Request-ID` — except a `401`, which carries none. Quote it to support. |
| Permissions | Endpoints are gated by `quotes`, `recipients`, `accounts`, `webhooks`, `events`, `customers`, `pobo` and `cards`. A key missing one fails with `403`, raised at the edge. |
| Responses | `/api/v0` success bodies are unwrapped. Webhooks service responses use the shared envelope; edge errors use it everywhere. See [Errors](https://docs.endl.io/api-reference/errors.md). |

## Webhook signatures

Endl signs every PUSH delivery with HMAC-SHA512 over the raw request body. Verify
the signature against the exact bytes received, before parsing, and compare
digests in constant time. Worked Python and Node examples are on
[Verifying signatures](https://docs.endl.io/webhooks/signature-verification.md).

PULL feed responses are unsigned — you are reading from Endl over an
authenticated connection, so there is nothing to verify.

## Getting help

Start with the [FAQ](https://docs.endl.io/faq.md) — it covers authentication failures, response shapes,
pagination, retries and webhook verification. Webhook problems are usually
answered by [List deliveries](https://docs.endl.io/webhooks/list-deliveries.md), which records every
attempt along with the response your endpoint returned.

If that does not resolve it, contact your Endl representative with the failing
request, the response body, the timestamp, and the **`X-Request-ID`** from the
response — that id joins straight to our logs.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.