# Veyqo > Payment orchestration for your existing provider accounts. ## Integration guides - [Introduction](https://veyqo.org/docs-markdown/introduction.md): Your payment providers, behind one API. Start with a sandbox payment and take the same integration live. - [Quick start](https://veyqo.org/docs-markdown/quickstart.md): Go from a connected sandbox provider to a payment your server can verify. - [Authentication](https://veyqo.org/docs-markdown/authentication.md): Authenticate server requests and keep sandbox and live traffic separate. - [Payments](https://veyqo.org/docs-markdown/payments.md): Initialize a charge, direct the customer to checkout, and confirm what happened. - [Hosted checkout](https://veyqo.org/docs-markdown/checkout.md): Create checkout on your server, then open it from your website. - [Webhooks](https://veyqo.org/docs-markdown/webhooks.md): Verify the sender, reject replays, and handle duplicate deliveries safely. - [Refunds](https://veyqo.org/docs-markdown/refunds.md): Issue a full or partial refund through the provider that processed the payment. - [Claude, Codex & AI agents](https://veyqo.org/docs-markdown/ai-agents.md): Give your assistant the API contract and payment rules before it writes the integration. - [Errors & retries](https://veyqo.org/docs-markdown/errors.md): Understand failures and retry requests without repeating a charge. - [Go live](https://veyqo.org/docs-markdown/go-live.md): Move the tested integration into a separately configured live environment. - [API reference](https://veyqo.org/docs-markdown/api-reference.md): Endpoint definitions published by the Veyqo API, shared with the dashboard console. - [SafeHaven integration](https://veyqo.org/docs-markdown/safehaven.md): Connect a private SafeHaven OAuth app, accept NGN transfers and use banking, bills, identity and USSD services. - [Provider accounts & project routing](https://veyqo.org/docs-markdown/provider-accounts.md): Use separate credentials, shared credentials, or a mixture without mixing project data. - [Idempotency & safe retries](https://veyqo.org/docs-markdown/idempotency.md): Prevent duplicate operations and recover safely from network uncertainty. - [Pagination & rate limits](https://veyqo.org/docs-markdown/pagination.md): Read result pages and react to the real service limits. - [Events & reconciliation](https://veyqo.org/docs-markdown/events.md): Recover missed notifications without confusing event snapshots with current payment state. - [Payment links](https://veyqo.org/docs-markdown/payment-links.md): Create a fixed-price link in the dashboard and track the resulting checkout payments. - [Browser checkout reference](https://veyqo.org/docs-markdown/browser-checkout.md): The separate public session surface used by the hosted page and checkout script. - [Integration changelog](https://veyqo.org/docs-markdown/changelog.md): Contract corrections and recent integration behavior to account for. - [POST Create a payment](https://veyqo.org/docs-markdown/api-payments-create.md): Starts a payment with the provider connected in this environment and returns a checkout URL. The amount is an integer in the smallest currency unit. - [GET List payments](https://veyqo.org/docs-markdown/api-payments-list.md): List payments in this project environment, newest first. Only status, reference, created_after, created_before and pagination filters are implemented. - [GET Retrieve a payment](https://veyqo.org/docs-markdown/api-payments-show.md): Retrieve by Veyqo payment ID or your merchant reference directly in the path. URL-encode references; use the Veyqo ID when a reference contains reserved URL characters. - [POST Verify a payment](https://veyqo.org/docs-markdown/api-payments-verify.md): Asks the provider what actually happened and updates the payment. Use it when a webhook has not arrived — never trust a browser redirect alone. - [POST Refund a payment](https://veyqo.org/docs-markdown/api-refunds-create.md): Full or partial. Omit `amount` to refund everything still refundable. - [GET Retrieve a refund](https://veyqo.org/docs-markdown/api-refunds-show.md): The refund and the payment it belongs to. - [GET List events](https://veyqo.org/docs-markdown/api-events-list.md): Every event Veyqo produced in this environment, newest first. Filter by `type`. - [GET Retrieve an event](https://veyqo.org/docs-markdown/api-events-show.md): The normalized event, identical in shape whichever provider caused it. - [POST Create a checkout session](https://veyqo.org/docs-markdown/api-checkout-sessions-create.md): Returns a checkout `url` where the customer pays without leaving Veyqo: by bank transfer, USSD or mobile money on the page itself, or by card in the gateway's own secure form over it. Created here with your secret key, the amount cannot be changed by the customer; open it with the JS SDK or redirect to `url`. - [GET Retrieve a checkout session](https://veyqo.org/docs-markdown/api-checkout-sessions-show.md): Its status (`open`, `completed`, `expired`) and the payment behind it. A payment still waiting is verified with the provider before this answers. - [GET List connected providers](https://veyqo.org/docs-markdown/api-providers-list.md): Lists provider connection rows for this environment, including status, health and explicitly public provider keys. Disabled or historical rows may be present; secret credentials are never returned. - [GET Bank List](https://veyqo.org/docs-markdown/api-safehaven-bank-list.md): Bank List through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires transfers:read. - [DELETE Delete Beneficiary](https://veyqo.org/docs-markdown/api-safehaven-delete-beneficiary.md): Delete Beneficiary through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires transfers:write. - [GET Get Beneficiaries](https://veyqo.org/docs-markdown/api-safehaven-get-beneficiaries.md): Get Beneficiaries through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires transfers:read. - [GET Get Transfers](https://veyqo.org/docs-markdown/api-safehaven-get-transfers.md): Get Transfers through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires transfers:read. - [POST Name Enquiry](https://veyqo.org/docs-markdown/api-safehaven-name-enquiry.md): Name Enquiry through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires transfers:read. - [POST Transfer Status](https://veyqo.org/docs-markdown/api-safehaven-transfer-status.md): Transfer Status through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires transfers:read. - [POST Transfer](https://veyqo.org/docs-markdown/api-safehaven-transfer.md): Transfer through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires transfers:write. - [POST Purchase a Data Bundle](https://veyqo.org/docs-markdown/api-safehaven-buy-a-data-bundle.md): Purchase a Data Bundle through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires bills:write. - [GET Get Category Products](https://veyqo.org/docs-markdown/api-safehaven-get-category-products.md): Get Category Products through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires bills:read. - [GET Get Service Categories](https://veyqo.org/docs-markdown/api-safehaven-get-service-categories.md): Get Service Categories through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires bills:read. - [GET Get Service](https://veyqo.org/docs-markdown/api-safehaven-get-service.md): Get Service through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires bills:read. - [GET Get Services](https://veyqo.org/docs-markdown/api-safehaven-get-services.md): Get Services through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires bills:read. - [GET Get VAS Transaction](https://veyqo.org/docs-markdown/api-safehaven-get-vas-transaction.md): Get VAS Transaction through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires bills:read. - [GET Get VAS Transactions](https://veyqo.org/docs-markdown/api-safehaven-get-vas-transactions.md): Get VAS Transactions through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires bills:read. - [POST Purchase Airtime](https://veyqo.org/docs-markdown/api-safehaven-pay-airtime.md): Purchase Airtime through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires bills:write. - [POST Pay Utility Bill](https://veyqo.org/docs-markdown/api-safehaven-pay-utility-bill.md): Pay Utility Bill through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires bills:write. - [POST Purchase a Cable TV Subscription](https://veyqo.org/docs-markdown/api-safehaven-purchase-a-cable-tv-subscription.md): Purchase a Cable TV Subscription through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires bills:write. - [POST Verify Power/Cable TV data](https://veyqo.org/docs-markdown/api-safehaven-verify-powercable-tv-data.md): Verify Power/Cable TV data through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires bills:read. - [POST Create Account](https://veyqo.org/docs-markdown/api-safehaven-create-account.md): Create Account through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:write. - [PUT Update Sub Account](https://veyqo.org/docs-markdown/api-safehaven-create-sub-account-copy.md): Update Sub Account through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:write. - [POST Create Sub Account (Corporate)](https://veyqo.org/docs-markdown/api-safehaven-create-sub-account-corporate.md): Create Sub Account (Corporate) through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:write. - [POST Create Sub Account (Individual)](https://veyqo.org/docs-markdown/api-safehaven-create-sub-account-new.md): Create Sub Account (Individual) through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:write. - [POST Create Virtual Account](https://veyqo.org/docs-markdown/api-safehaven-create-virtual-account.md): Create Virtual Account through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:write. - [DELETE Delete Virtual Account](https://veyqo.org/docs-markdown/api-safehaven-delete-virtual-account.md): Delete Virtual Account through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:write. - [GET Get Account Statement](https://veyqo.org/docs-markdown/api-safehaven-get-account-statement.md): Get Account Statement through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:read. - [GET Get Account](https://veyqo.org/docs-markdown/api-safehaven-get-account.md): Get Account through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:read. - [GET Get Accounts](https://veyqo.org/docs-markdown/api-safehaven-get-accounts.md): Get Accounts through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:read. - [GET Get Virtual Account](https://veyqo.org/docs-markdown/api-safehaven-get-virtual-account.md): Get Virtual Account through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:read. - [GET Get Virtual Transaction](https://veyqo.org/docs-markdown/api-safehaven-get-virtual-transaction.md): Get Virtual Transaction through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:read. - [PUT Update Account](https://veyqo.org/docs-markdown/api-safehaven-update-account.md): Update Account through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:write. - [PUT Update Virtual Account](https://veyqo.org/docs-markdown/api-safehaven-update-virtual-account.md): Update Virtual Account through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:write. - [POST Virtual Account Transfer Status](https://veyqo.org/docs-markdown/api-safehaven-virtual-account-transfer-status.md): Virtual Account Transfer Status through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires accounts:read. - [POST Import existing sub-accounts](https://veyqo.org/docs-markdown/api-safehaven-accounts-import.md): Bring sub-accounts created directly with SafeHaven (before you used Veyqo) under this project environment, so their deposits are forwarded as provider_service.updated events and they can be read, debited and used for statements through Veyqo. Each account is re-read from SafeHaven with this connection's credentials. Requires accounts:write. - [POST Create Reference](https://veyqo.org/docs-markdown/api-safehaven-create-reference.md): Create Reference through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires payments:write. - [GET USSD Banks List](https://veyqo.org/docs-markdown/api-safehaven-ussd-banks-list.md): USSD Banks List through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires payments:read. - [GET Verify Checkout Transaction](https://veyqo.org/docs-markdown/api-safehaven-verify-checkout-transaction.md): Verify Checkout Transaction through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires payments:read. - [POST Validate Verification](https://veyqo.org/docs-markdown/api-safehaven-validate-verification.md): Validate Verification through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires identity:write. - [POST Initiate Verification](https://veyqo.org/docs-markdown/api-safehaven-verify-identity.md): Initiate Verification through this project environment’s SafeHaven account. Uses snake_case fields and NGN minor units. Requires identity:write. - [GET Look up operation by idempotency key](https://veyqo.org/docs-markdown/api-safehaven-operations-lookup.md): Retrieve or reconcile a SafeHaven write in this project environment. Requires events:read and the read scope for the original service. A returned resource can still be pending or failed. - [GET Retrieve provider operation](https://veyqo.org/docs-markdown/api-safehaven-operations-show.md): Retrieve or reconcile a SafeHaven write in this project environment. Requires events:read and the read scope for the original service. A returned resource can still be pending or failed. - [POST Create a browser checkout session](https://veyqo.org/docs-markdown/api-browser-sessions-create.md): Starts a browser-defined checkout with a publishable key. The browser can change the amount, so reconcile against your server order. Success/cancel URL hosts must match the request Origin. Prefer server-created checkout for trusted pricing. - [GET Read browser checkout state](https://veyqo.org/docs-markdown/api-browser-sessions-show.md): Possession of the session ID addresses this customer checkout. These endpoints support the hosted page and SDK; prefer those clients over reimplementing provider-specific actions. - [POST Start a checkout method](https://veyqo.org/docs-markdown/api-browser-sessions-charge.md): Possession of the session ID addresses this customer checkout. These endpoints support the hosted page and SDK; prefer those clients over reimplementing provider-specific actions. - [POST Submit a checkout OTP](https://veyqo.org/docs-markdown/api-browser-sessions-otp.md): Possession of the session ID addresses this customer checkout. These endpoints support the hosted page and SDK; prefer those clients over reimplementing provider-specific actions. - [GET Read a payment link](https://veyqo.org/docs-markdown/api-browser-links-show.md): Possession of the payment link ID addresses this checkout. The fixed amount comes from the dashboard link, never the request body. - [POST Start a payment-link session](https://veyqo.org/docs-markdown/api-browser-links-sessions.md): Possession of the payment link ID addresses this checkout. The fixed amount comes from the dashboard link, never the request body. - [OpenAPI contract](https://veyqo.org/openapi.json) - [JSON contract](https://veyqo.org/api-reference.json) - [Postman collection](https://veyqo.org/postman.json) - [Claude template](https://veyqo.org/ai/CLAUDE.md) - [Codex template](https://veyqo.org/ai/AGENTS.md) - [Full context](https://veyqo.org/llms-full.txt) - [Live API reference](https://api.veyqo.org/docs/reference): Endpoint definitions (JSON).