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

# Introduction

> One API for many assets. Hold, convert, and pay out from a balance in each asset that Jenzy enables for you.

The Multi-asset API is the `/v2` surface of Jenzy Hermes. You hold a balance
in each asset that Jenzy enables for your org. You fund a balance with a
collection. You convert between assets. You pay out to a bank account, a
mobile money number, or a wallet address.

<Warning>
  **Production keys move real money.** Each payout and each conversion that
  you create in production is final. Build and test in the
  [sandbox](/v2/sandbox) first.
</Warning>

## Two APIs, one account

Jenzy has two APIs. Your org, your API keys, and your webhook endpoint are the
same on both.

| API             | Base path | What it does                                                               |
| --------------- | --------- | -------------------------------------------------------------------------- |
| MWK API         | `/v1`     | Malawian kwacha only. One balance. One endpoint for each rail.             |
| Multi-asset API | `/v2`     | Many assets. One balance for each asset. One payout endpoint. Conversions. |

The MWK API stays as it is. Jenzy does not remove it. If you pay only Malawi,
you do not need to change. This tab describes `/v2` only.

## What is different on `/v2`

* **`amount` and `asset`.** Each money figure is an exact decimal string in
  major units, beside an `asset` field. An example is
  `{ "amount": "250000.00", "asset": "KES" }`. No field name has a currency in
  it. There is no `currency` field.
* **One payout endpoint.** `POST /v2/payouts` takes a `destination` object.
  The `type` of the destination selects the rail. See [Payouts](/v2/payouts).
* **Conversions.** Get a quote, then execute it. See
  [Conversions](/v2/conversions).
* **Collections for each asset.** A bank pay-in and an on-chain deposit are
  both a collection. See [Collections](/v2/collections).
* **`Idempotency-Key` is necessary** on `POST /v2/payouts` and
  `POST /v2/conversions`. A create request with no key gets `400`.
* **Webhooks.** The same endpoint gets the events of both APIs. A `/v2`
  delivery carries `api_version: "v2"`. See [Webhooks](/webhooks).

## Base URL

Production:

```text theme={null}
https://api.jenzy.com/v2
```

Sandbox:

```text theme={null}
https://api.sandbox.jenzy.com/v2
```

All requests use HTTPS. All bodies are JSON. All endpoints need your
[API key](/authentication). The key is the same `jz_live_…` key that you use
on `/v1`.

## Money values

**Hermes sends each amount as an exact decimal string.** A fiat asset has two
decimal places. An example is `"250000.00"`. A stablecoin has a maximum of six
decimal places, and Hermes removes the zeros at the end. Examples are `"12.5"`
and `"0.000001"`.

`GET /v2/assets` gives the `decimals` of each asset. Read each money field
with a decimal library. Do not use `parseFloat`.

**You can send an amount to Hermes in two forms.** Use a JSON integer of whole
units, for example `250000`. Or use an exact decimal string with a maximum of
the decimals of the asset, for example `"250000.50"`.

Hermes refuses a fractional JSON number. Send `"12.5"`. Do not send `12.5`.

## Where to start

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/v2/quickstart">
    Assets, balances, where to send money, a payout, and a conversion.
  </Card>

  <Card title="Balances" icon="scale-balanced" href="/v2/balances">
    One row for each asset. Available, held, and shortfall.
  </Card>

  <Card title="Payouts" icon="paper-plane" href="/v2/payouts">
    One endpoint, three destination types, and the FX payout.
  </Card>

  <Card title="Conversions" icon="arrow-right-arrow-left" href="/v2/conversions">
    Quote, then execute. What you receive is the promise.
  </Card>

  <Card title="Collections" icon="wallet" href="/v2/collections">
    How money comes in, and where to send it.
  </Card>

  <Card title="Errors" icon="triangle-exclamation" href="/v2/errors">
    The codes that are new on this API.
  </Card>

  <Card title="Sandbox" icon="flask" href="/v2/sandbox">
    What the sandbox can show you, and what it cannot.
  </Card>

  <Card title="Webhooks" icon="bolt" href="/webhooks">
    The shared event list, with the two conversion events.
  </Card>
</CardGroup>
