# Core Concepts

## Zynta's core API concepts:&#x20;

* [Recipients](/api-reference/recipients.md) — The individuals or businesses receiving funds through Zynta. Each recipient goes through KYC/KYB verification and receives an auto-generated custodial wallet. Recipients must be in `APPROVED` status before they can be used in quotes or transfers.
  * There are two types:
    1. **Individual** — verified via government-issued ID (NIN, BVN, passport, etc.)
    2. **Business** — verified via business registration, director information, and corporate documents<br>
* [Quotes](/api-reference/quotes.md) — These represents a locked exchange rate for a specific source asset, destination currency, amount, and direction. Quotes include the rate, all fees, and the destination amount the recipient will receive.
  * Quotes have a time-limited validity window. Once you accept a quote by creating a transfer, the rate is guaranteed. Expired quotes must be re-requested. <br>
* [Transfers](/api-reference/transfers.md) — An executed payment moving funds from source to destination. Zynta supports two transfer directions:

  1. **Off-Ramp** (crypto to fiat) — user deposits crypto, recipient receives fiat in their bank account
  2. **On-Ramp** (fiat to crypto) — user deposits fiat, crypto is sent to a specified wallet address

  \
  Transfers progress through a lifecycle of states:

  * `QUOTE_LOCKED` → `PENDING_DEPOSIT` → `PROCESSING` → `COMPLETED`.
  * If something goes wrong, the state moves to `FAILED` or `EXPIRED`.<br>
* [Delivery rails](/coverage/country-requirements.md) — The payment method used to deliver fiat to the recipient.
  * Supported rails include:

| Rail            | Description                      | Regions    |
| --------------- | -------------------------------- | ---------- |
| `BANK_TRANSFER` | Local bank transfer (NIBSS, EFT) | Africa     |
| `ACH`           | Automated Clearing House         | US         |
| `WIRE`          | Wire transfer                    | US, Global |
| `SEPA`          | Single Euro Payments Area        | EU         |
| `SEPA_INSTANT`  | SEPA instant credit transfer     | EU         |
| `FPS`           | Faster Payments Service          | UK         |

* Idempotency — All <mark style="color:$success;">POST</mark> requests support idempotency via the `Idempotency-Key` header. If you retry a request with the same key, you receive the original response instead of creating a duplicate. Keys expire after 24 hours.

{% hint style="warning" %}
Always use idempotency keys for transfer creation to prevent duplicate payments.
{% endhint %}

* Environments — Zynta provides two environments:

  1. **Test** — mirrors production behaviour with simulated banking rails. Use it for integration and testing.
  2. **Live/Production** — processes **real money**. Requires completed KYB verification and a live API key.

  *API keys are prefixed to indicate their environment: `sk_test_...` for test, `sk_live_...` for production.*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zynta.com/api-services-getting-started/core-concepts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
