Developer preview

Clear APIs.
Predictable events.

Build a payment flow your team can reason about—from initial request to final settlement state.

create-payment.js
const payment = await naxivo.payments.create({
  amount: 245000,
  currency: "NGN",
  reference: "order_1842",
  customer: {
    email: "customer@example.com"
  }
});

return payment.checkout_url;

Quickstart

From credentials to confirmed payment.

This page is an interface and documentation preview. Endpoint contracts are finalized with the production backend before launch.

01

Authenticate safely

Keep secret credentials on your server and use separate test and live environments.

Authorization: Bearer nxv_test_••••
02

Create the intent

Send amount, currency, customer and your own unique reference.

POST /v1/payments
03

Confirm the outcome

Verify the signed webhook, then update your order from the server-side event.

payment.succeeded

COLLECTIONS

Create a payment

Create a payment request on your server, then send the customer to the returned checkout URL.

POST/payments
Request
curl https://api.naxivopay.com/v1/payments \
  -H "Authorization: Bearer nxv_test_••••" \
  -H "Idempotency-Key: order_1842" \
  -d '{
    "amount": 245000,
    "currency": "NGN",
    "reference": "order_1842"
  }'

PAYOUTS

Create a transfer

Initiate a transfer with an idempotency key and your own reconciliation reference.

POST/transfers
201Transfer accepted
422Request needs action
409Duplicate reference

VIRTUAL ACCOUNTS

Create a collection account

Issue a dedicated account reference for a customer, store or invoice.

POST/virtual-accounts

WEBHOOKS

Treat events as the source of truth.

Verify signatures against the raw request body, return a 2xx response quickly and process the event idempotently.

1Receive event
2Verify signature
3Process once
4Acknowledge

ERRORS

Errors that tell you what to do next.

Every error response follows one structure with a machine-readable code, human-readable message and request identifier.

{ "code": "validation_error", "message": "Amount must be greater than zero", "request_id": "req_7f2a..." }
System statusOperational state will be connected before launch
Contact integration support →

Build with NaxivoPay

Design the integration before writing around assumptions.

Request sandbox access and confirm the production contract with the NaxivoPay team.

Request API access