For the complete documentation index, see llms.txt. This page is also available as Markdown.

Creating an on-ramp

Move fiat into crypto with KiiChain Pay. Quote a rail, open the on-ramp, have the user pay off-platform, and track the activity to completion.

An on-ramp converts fiat into crypto. You quote a rail, open the on-ramp, and the user pays fiat off-platform — through a provider checkout URL or by depositing to a set of instructions (a PIX key, a CLABE, a wallet address). There is no on-chain transaction for you to sign: once the fiat lands, the provider settles the crypto and the activity moves to fulfilled.

At a glance

Property
Value

Direction

Fiat → Crypto

Create endpoint

POST /market/v1/products-providers/{id}/onramp (market module)

User acts

Off-chain — pays fiat via a URL or deposit instructions

On-chain signing

None

You need

A KYC-verified account, an on-ramp products_provider_id, a destination_id (wallet that receives the crypto), and a write-enabled API key

Tracks via

display_status on the activity

Prerequisites

  • A KiiChain Pay account that has completed KYC.

  • An API key; write calls must be signed (see Sign write requests).

  • Your account_id and a wallet destination that will receive the crypto — see Discovering rails & IDs. The examples assume KII_API_KEY, KII_ACCOUNT_ID, and KII_DESTINATION_ID are set.

Some providers require their own KYC in certain countries. If so, the create call will tell you — see Provider KYC / KYB.

Step 1 — Get a quote

Find an on-ramp rail (a products-provider whose type is "onramp") and quote it for the fiat amount the user wants to spend. For an on-ramp the amount is fiat in decimal units.

The response is a signed quote envelope. You pass it back unchanged in the next step.

Step 2 — Create the on-ramp

Send the quote, your account_id, and the destination_id (the wallet that receives the crypto) to the on-ramp endpoint. This is a write request, so it must be signed.

The response gives you the new activity's ticket_id and one of two payment payloads:

A checkout URL (url_payload) — send the user to a hosted provider flow (e.g. a card checkout):

Deposit instructions (deposit_payload) — show the user where to send the fiat:

deposit_key is the rail-agnostic destination (a PIX key, a CLABE, a bank reference); deposit_code is an optional copy-and-paste / QR value (for example, a PIX BR Code). Render whichever fields are present.

Step 3 — The user pays

The user completes payment off-platform — on the checkout URL, or by sending fiat to the deposit instructions. Nothing to sign on your side. KiiChain Pay detects the incoming payment and advances the activity through provider processing.

Step 4 — Track to completion

Poll the activity by its ticket_id and watch display_status.

display_status moves pendingprocessingfulfilled once the provider settles the crypto to the destination wallet. Terminal values are fulfilled, failed, canceled, refunded, and expired. If you need to re-show the payment instructions while the activity is still open, call GET /tickets/v1/{ticketId}/pending_user_actions — for an on-ramp it returns the url_payload again.

Full example

An end-to-end on-ramp with deposit instructions, using the signing helper from Generating API keys (kiiFetch handles the Authorization, x-timestamp and x-signature headers).

Last updated