> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abcmpay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Welcome to your project

ABCMPay gives your business a single API for moving money in Nigeria: dedicated virtual bank accounts, one-time payment links, bank payouts, VTU (airtime, data, cable, electricity, exam pins), and virtual cards — with real-time webhooks for every event.

Every money-moving endpoint uses the same two credentials, so once you're authenticated against one endpoint, you're authenticated against all of them.

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Create your first virtual account and receive a test payment in under 5 minutes.
  </Card>

  <Card title="Authentication" icon="key" href="/authentication">
    How your API key, secret, and (optional) IP allowlist work together.
  </Card>
</CardGroup>

## What you can build

<CardGroup cols={2}>
  <Card title="Virtual Accounts" icon="building-columns" href="/api-reference/virtual-accounts">
    Give each customer a dedicated NUBAN account number. Money sent to it lands in your wallet and fires a webhook.
  </Card>

  <Card title="Collect Payments" icon="link" href="/api-reference/checkout">
    Generate a branded, one-time payment link for a specific amount — no dedicated account required.
  </Card>

  <Card title="Payouts" icon="money-bill-transfer" href="/api-reference/payouts">
    Send money out to any Nigerian bank account via API.
  </Card>

  <Card title="VTU" icon="mobile" href="/api-reference/vtu">
    Sell airtime, data, cable TV subscriptions, electricity tokens, and exam pins.
  </Card>

  <Card title="Virtual Cards" icon="credit-card" href="/api-reference/virtual-cards">
    Issue Visa/Mastercard virtual cards for your customers, fund them, and track spend.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/api-reference/webhooks">
    Get notified the instant a payment lands, signed and replay-protected.
  </Card>
</CardGroup>

## How the API is organized

<Steps>
  <Step title="Authenticate">
    Every request carries your `X-Api-Key` and `X-Api-Secret` headers. See [Authentication](/authentication).
  </Step>

  <Step title="Call an endpoint">
    Pick a feature area above. Most endpoints accept a `reference` — a unique ID *you* choose — so you can always find a transaction again without storing our internal IDs.
  </Step>

  <Step title="Get notified">
    For anything asynchronous (a customer paying into a virtual account, a VTU purchase confirming), we call your [webhook URL](/api-reference/webhooks) instead of making you poll.
  </Step>
</Steps>

<Note>
  Some feature areas (Payouts, VTU, Collect Payments, Virtual Cards) are enabled per-merchant. If you get a `SERVICE_NOT_ENABLED` error, contact support to request access — your API key and secret alone aren't enough to unlock them.
</Note>

## Need help?

<CardGroup cols={2}>
  <Card title="Email support" icon="envelope" href="mailto:support@abcmpay.com">
    [support@abcmpay.com](mailto:support@abcmpay.com)
  </Card>

  <Card title="Errors reference" icon="triangle-exclamation" href="/errors">
    Every error code you might get back, and what to do about it.
  </Card>
</CardGroup>
