Skip to content
Custom build

When none of the components fit, skip them

If your flow is genuinely different, the same API sits underneath the components, and none of it requires you to render anything of ours.

ETHUniswapCCTPSUI

One payment, four hops, one quote shown to the user.

What you get instead of a widget

The same routing, settlement, and webhook guarantees, with the interface left entirely to you.

Every component is optional

PayKit and SwapKit are conveniences layered on the same public API. Nothing in the platform requires you to render our interface, load our styles, or accept our copy.

Headless from the first call

ApiClient covers orders, quotes, swaps, invoices, refunds, fees, and off-ramp intents. Your server holds the secret key, your front end holds nothing it should not.

Your brand, end to end

Chain and token pickers, quote presentation, confirmation states, receipts, and failure messaging are yours to design. We return data, not markup.

The order lifecycle stays the same

Orders move through the same states and fire the same signed webhooks whatever the surface, so reconciliation never changes.

How a custom build usually goes

Four steps, and an honest answer at step two if the platform is the wrong shape for what you need.

01

Tell us the flow

What the user is paying for, where funds must land, which chains matter to your audience, and whether settlement is crypto, fiat, or both.

02

We map it to the primitives

Most flows reduce to a DEPOSIT, SALE, or SWAP order with a particular settlement configuration. We will tell you plainly if yours does not.

03

You build against the API

Server-side order creation, your own front end, webhook-driven fulfilment. The docs cover every endpoint and every terminal state.

04

We review before you go live

Key handling, webhook signature verification, refund paths, and failure handling, checked against the production checklist in the docs.

What you are integrating against

Server SDK

@coin-voyage/paykit (ApiClient)

Swap SDK

@coin-voyage/swapkit (quote and execute)

API

REST, v3

Authentication

Public API key in the browser, secret key server-side only

Webhooks

ORDER_CREATED through ORDER_COMPLETED, each delivery signed and timestamped (CoinVoyage-Webhook-Signature-V2) and verifiable with verifyWebhookSignature()

WebSocket

Live order events per order or organization-wide, via subscribeOrderStatus() on the server or useOrderStatusWS() in React

KYC / KYB

Hosted verification links and status checks through the API, so onboarding for fiat flows runs inside your own product

Fees

Fee balance, fee entries, and claim endpoints for the custom fee layer, paid out in USDC

Order modes

DEPOSIT, SALE, SWAP

Describe the flow and we will tell you if it fits

Including when it does not. A short description of what you are building is enough to start.