Current docs describe the v3 API and PayKit
^3 surface. If you are upgrading from v2, start with the v2 to v3 migration guide. Older entries below are retained for historical context.3.4.0 - 2026-08-03
Added- Invoice generation via API: Create and publish invoices, save drafts, list and retrieve invoices, archive invoices, and delete unpublished drafts through the v3 API and
ApiClient. Published invoices create a linkedSALEorder and email the recipient a PDF with a hosted payment link. See the Invoices guide.
- Recoverable Pay to Address partial payments: Orders in
PARTIAL_PAYMENTcan now accept additional deposits through Pay to Address until the required amount is received and the order can be fulfilled. This recovery behavior is available only for Pay to Address; other payment methods still require a separate resolution flow.
3.3.0 - 2026-07-29
Added- Robinhood Chain: Added payment and settlement support for Robinhood Chain (
4663). - Across provider: Added Across as a cross-chain routing provider.
- Uniswap V2 and V4: Expanded Uniswap routing beyond V3 to include V2 and V4 liquidity.
- EUR card payments: Card Payments can now fund eligible orders in EUR as well as USD.
- Multi-wallet portfolio requests:
ApiClient.portfolio()andPOST /wallet/portfolionow acceptwallets, an array of 1–10 wallets. Responses contain aportfolioarray of successful scans and anerrorsarray for wallets that could not be scanned.
- ChangeNow provider: ChangeNow is no longer used for routing.
3.2.0 - 2026-07-07
Added- PayButton direct payment routing:
PayButtonandPayButton.Customnow acceptpaymentMethod, so integrations can open the modal directly toPaymentMethod.WALLET,PaymentMethod.DEPOSIT_ADDRESS, orPaymentMethod.CARDinstead of first showing method selection.
- On-ramp API errors: On-ramp API responses now return user-friendly
error.messagevalues for common Link, identity, payment-method, session, and checkout failures.
3.1.0 - 2026-06-27
Changed- PayKit Modal: Improvements to Card Payment flow
3.0.0 - 2026-06-25
Changed- API base URL: Current API requests use
https://api.coinvoyage.io/v3; the generated OpenAPI reference is served from/v3/openapi.json. - Order API naming: SDK helpers now use
Ordernaming:createDepositOrder(),createSaleOrder(),createRefundOrder(),getOrder(),listOrders(),orderQuotes(),createPayment(), andgetOrderPaymentMethods(). - PayButton lifecycle callbacks: Payment lifecycle callbacks are now split into
onAwaitingPayment,onConfirmingPayment,onExecutingPayment,onPaymentCompleted, andonPaymentBounced. - Off-ramp API naming: Verification and fiat payout APIs use
createOffRampVerification(),getOffRampVerificationStatus(),listOffRampIntents(), andcreateOffRampIntent(). - Webhook payloads: Webhook deliveries now use the v3 envelope
{ event, delivered_at, order }with uppercaseORDER_*event identifiers.
- Legacy PayOrder client helper names:
createDepositPayOrder(),createSalePayOrder(),createRefundPayOrder(),getPayOrder(),listPayOrders(),payOrderQuote(),payOrderPaymentDetails(),getPayOrderPaymentMethods(), andswapData()are no longer the current PayKit API surface.
2.5.0 - 2026-05-27
Added- KYC helpers:
ApiClient.createKYCLink()creates an identity-verification link for an organization, andApiClient.getKYCStatus()retrieves the current KYC and terms-of-service status.
- Signed organization methods:
ApiClient.listPayOrders(),ApiClient.listWithdrawals(), andApiClient.createWithdrawal()now requireapiSecretas an argument. Server integrations that call these methods must pass the API secret from server-side code.
2.4.6 - 2026-05-27
Added- PayKit Headless (Preview): Added
@coin-voyage/paykit-headlessfor server and agent runtimes that need to satisfy CoinVoyage x402PAYMENT-REQUIREDchallenges. Sui x402 signing is supported through this package. - Order status WebSocket hook: Added
useOrderStatusWS()for React integrations that need live backend PayOrder events outside the default PayButton UI. - Backend API access: Added
useBackendApi()for advanced PayKit integrations that need direct access to the configured API client. - ApiClient helpers: Added
currencySearch(),portfolio(),listPayOrders(),listBankAccounts(),getBankAccount(),addBankAccount(),listWithdrawals(), andcreateWithdrawal(). - Organization-wide WebSocket subscriptions:
ApiClient.subscribeOrderStatus()can now subscribe to all organization PayOrder events when called with a server-generated authorization signature forGET /ws.
- Quote filters:
PayOrderQuoteParamsnow acceptschain_idsinstead of a singlechain_id. - Swap requests: Swap requests now support
payment_railand nestedcryptoinput options, includingsource_currency,sender_address, andslippage_bps. - Route quote field: Route quote responses use
quote_id. - Payment details: Payment details now use the shared
PaymentDataBaseshape for rail-specific payment instruction data.
- PayButton order creation errors: Backend order-creation failures are now surfaced to consumers.
- PayButton lifecycle callbacks: Payment lifecycle callbacks continue working across multiple orders for the same button.
resetOnSuccessbehavior: Successful payments reset payment state when configured.- EVM transaction errors: User-facing EVM transaction errors are clearer.
- Desktop WalletConnect: Desktop WalletConnect routes through the QR flow correctly.
2.4.1 — 2026-04-08
AddedPARTIAL_PAYMENTstatus: A new terminal state for PayOrders that receive an insufficient amount. Use this status to detect and handle partial-payment outcomes in your order fulfillment logic.PayOrderPartialPaymentEvent: A new event type so you can explicitly handle partial-payment outcomes in your event flows.
2.4.0 — 2026-04-04
Added- Stripe on-ramp integration: Full Stripe fiat-to-crypto on-ramp support, including geo-blocking for restricted regions.
PaymentStepsmodel: Tracks granular payment progress across stages such as on-ramp, swap, and delivery.- Payment methods endpoint:
GET /pay-orders/{payorder_id}/payment-methodsreturns available payment methods for a given PayOrder. - Organization settings in PayOrder responses:
Organization.settingsis now a JSON field and is returned inGET /pay-ordersandGET /pay-orders/{payorder_id}responses. hosted_urlfield: Added toGET /pay-ordersandGET /pay-orders/{payorder_id}responses so you can link customers directly to the hosted pay page.
- Webhook payload coverage:
payorder_errorandpayorder_refundedevents now include the fullpayment_dataobject. - PayKit payment handling: The widget now consumes
payment_data.steps, supports organization settings, and exposes location-aware payment method options. - SDK request and response models: Added
metadatasupport toClaimFeesRequestandSwapQuoteRequest, updated order event types andClaimFeeResponse, and expandedApiClientto acceptOpts. - EVM prefunding flow: Improved prefunding across CCTP, Direct, Relay, and Uniswap providers with better gas estimation, prefund calculation, and error handling.
- Webhook subscription filtering: Webhook deliveries now correctly respect each subscriber’s registered event types.
- Payment state persistence: Improved handling of
payment_dataso the correct exchange state is always persisted throughout the payment flow. - Refund PayOrder client flow: Fixed
createRefundPayOrderhandling inApiClient. - WalletConnect desktop routing: Desktop WalletConnect flows now route through the QR flow correctly.
- Deprecated
RequestData/requestfield: Removed fromPayOrderResponse. - Legacy transaction hash aliases: Removed
SourceTransactionHashandDestinationTransactionHashalias fields.
2.0.0 — 2026-01-28
Added- List Pay Orders endpoint:
GET /pay-ordersretrieves all pay orders for your organization with pagination and status filtering. - Quote breakdown transparency: Quotes now expose detailed fee breakdowns including
base,fees,gas, andtotal. - Multi-provider execution tracking:
payment.executiontracks execution status across multiple providers. ApiClientconstructor options: AddedsessionIdandversionoptions.- Dedicated PayOrder helpers:
createDepositPayOrder()andcreateSalePayOrder()provide clearer intent for each payment flow.
- API base URL: Updated to
https://api.coinvoyage.io/v2/. - Response structure: Flat fields moved into nested
paymentandfulfillmentobjects. - BigInt handling:
raw_amountfields now return strings instead of numbers to prevent precision loss. - Authorization signature:
generateAuthorizationSignature()now uses HMAC-SHA256 and requiresmethodandpath. - Sale and refund authorization:
createSalePayOrder()andcreateRefundPayOrder()now acceptapiSecretdirectly instead of a pre-generated signature. - Webhook event naming: Webhook subscriptions use uppercase
ORDER_*identifiers; delivered payloads use lowercasepayorder_*values in thetypefield.
- Process endpoint:
/pay-orders/{payorder_id}/processhas been removed. Payment processing now happens automatically when funds are detected.
- Top-level response fields:
source_currency,source_amount,destination_currency,destination_amount,deposit_address,receiving_address,refund_address, andexpires_atare deprecated at the top level. Use the corresponding nested fields inpaymentandfulfillmentinstead.
0.1.25 — 2025-11-04
Added- Phantom wallet (EVM): Users can now connect an EVM wallet through the Phantom browser extension.
0.1.24 — 2025-10-29
Added- German localization: Display the PayKit modal in German by specifying the
de-DElanguage in your widget configuration.
ApiClientresponses: AllApiClientmethods now returnAPIResponse<T>for a consistent response shape.
0.1.23 — 2025-10-21
ChangedWalletProviderprops: Updated property names and nesting structure. Review yourWalletProviderconfiguration if you pass custom props.
0.1.22 — 2025-10-17
Added- Stable Testnet support: Added support for the Stable Testnet network so you can test integrations without using mainnet funds.