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

# Getting Started

> Everything you need to start collecting payments and sending transfers with the Payaza API.

## Overview

Payaza provides a single, unified API for businesses to collect payments — via cards, mobile money, and virtual accounts — and send transfers across Africa. This guide walks you through everything you need to set up your account, retrieve your API keys, and make your first API call.

***

## Environment

Payaza operates a **single platform** with one dashboard and one API base URL.

|                        |                                                                  |
| ---------------------- | ---------------------------------------------------------------- |
| **Business Dashboard** | [https://business.payaza.africa](https://business.payaza.africa) |
| **API Base URL**       | `https://api.payaza.africa/live/`                                |

| Authorization Headers | Value                                             |
| --------------------- | ------------------------------------------------- |
| **Authorization**     | `Payaza <Your Public API key encoded in base 64>` |
| **X-TenantID**        | `test` or `live`                                  |
| **X-ProductID**       | The default value is `app`. This doesn't change.  |

<Note>
  The `/live/` segment in the base URL is a fixed path prefix — it does not
  change between test and live.
</Note>

<Info>
  Some APIs require different **authorization headers** before requests can be
  made. Kindly review the API reference to know which ones apply
</Info>

***

## Prerequisites

Before you can make your first API call, make sure you have the following in place:

**1. A Payaza business account**

Sign up or log in at [business.payaza.africa](https://business.payaza.africa). This is needed to have access to your dashboard..

**2. Completed KYB verification**

Your business must pass the Know Your Business (KYB) verification to have production access. This is required before you can make live API requests. **Test** API requests can be made while this is in progress.

**3. Generate Your API Keys**

Generate your API Keys using the Payaza dashboard

***

## Step 1 — Create your account

<Steps>
  <Step title="Go to the Payaza business dashboard">
    Visit [business.payaza.africa](https://business.payaza.africa) and sign up
    for a business account, or log in if you already have one.
  </Step>

  <Step title="Complete your business profile">
    Fill in your business details and submit the required KYB documents. You can
    begin testing in the test environment while this is under review by our
    Onboarding team.
  </Step>
</Steps>

***

## Step 2 — Generate your API keys

<Steps>
  <Step title="Log in to the dashboard">
    Go to [business.payaza.africa](https://business.payaza.africa) and log in.
  </Step>

  <Step title="Navigate to the Developers page">
    Open \**Settings → Developers* which is located on the left side-bar of the
    dashboard.
  </Step>

  <Step title="Generate your API Keys">
    Select the **Generate Keys Button** to generate your API keys, which can
    also be copied.- Kindly switch to **Test Mode** to retrieve your test keys.
  </Step>
</Steps>

<Warning>
  Always make live API calls from your server. If a key is ever compromised,
  rotate it immediately from the dashboard and update your integration.
</Warning>

For a full explanation of how authentication works and how to set the `Authorization` header correctly, see the [Authentication guide](/guides/authentication).

***

## Step 3 — Make your first API call

A sample that shows how authorization headers are sent for Transsfers

```json theme={null}
{
  "Authorization": "Payaza <Your Public API key encoded in base 64>",
  "X-TenantID": "test",
  "Content-Type": "application/json"
}
```

<Note>
  The `Authorization` header uses the format `Payaza <key>` — not `Bearer`. This is different from most APIs. A missing or incorrectly formatted key is the most common cause of `401 Unauthorized` errors.
</Note>

Here is a minimal test request to verify your key is working — it fetches your Payaza account details:

<CodeGroup>
  ```bash cURL theme={null}
  curl --request GET \
    --url https://api.payaza.africa/live/payaza-account/api/v1/mainaccounts \
    --header 'Authorization: Payaza <Your Public API key encoded in base 64>' \
    --header 'X-TenantID: test'
  ```
</CodeGroup>

A successful response returns your account details including your `account_reference` and available balance — confirming your key is valid and the account is active.

***

## Step 4 — Configure your webhooks

Webhooks are how Payaza notifies your server of payment outcomes — including card charges, mobile money collections, virtual account payments, and transfers.

<Steps>
  <Step title="Build a webhook endpoint">
    Create a `POST` endpoint on your server that can receive and parse JSON
    payloads. It must be publicly reachable over HTTPS.
  </Step>

  <Step title="Save your URL in the dashboard">
    Go to **Settings → Developers → Webhooks** in the dashboard and enter your
    webhook URL.
  </Step>

  <Step title="Verify the signature">
    Every webhook payload includes a signature header. Always verify it before
    processing the payload to confirm it came from Payaza.
  </Step>
</Steps>

See the [Webhooks guide](/guides/webhooks) for the full setup instructions, signature verification steps, and event payload examples.

***

## Step 5 — Go live checklist

A simple Go-Live checklsist

|   | Checklist item                                                                                                                         |
| - | -------------------------------------------------------------------------------------------------------------------------------------- |
| ☐ | KYB verification approved                                                                                                              |
| ☐ | Live API key retrieved from the dashboard                                                                                              |
| ☐ | Webhook URL saved and signature verification implemented                                                                               |
| ☐ | Server IP address(es) whitelisted under Settings → Developers (required for the **Initiate A Transfer API**)                           |
| ☐ | Transaction PIN set up (required for the **Initiate A Transfer API**)                                                                  |
| ☐ | PND restriction lifted by emailing [support@payaza.africa](mailto:support@payaza.africa) when a **PIN reset** is made (Transfers only) |
| ☐ | Full payment and failure flows tested in test environment                                                                              |
| ☐ | Unique `transaction_reference` generated per request                                                                                   |

***

## What to build next

Once your account is set up and your first test call is working, explore the guides for each product:

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/guides/authentication">
    How API keys work, the `Authorization` header format, and key rotation best
    practices.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/guides/webhooks">
    Receiving real-time payment notifications, verifying signatures, and handling
    retries.
  </Card>

  <Card title="Transfers" icon="money-bill-transfer" href="/guides/transfers">
    Send payouts from various countries to a beneficiary account. Covers name
    enquiry, PIN setup, IP whitelisting, and error handling.
  </Card>

  <Card title="Virtual Accounts" icon="building-columns" href="/guides/virtual-accounts">
    Create Dynamic (one-time) and Reserved (permanent) NGN virtual accounts for
    collecting bank transfers.
  </Card>

  <Card title="Card Collections" icon="credit-card" href="/guides/card-collection">
    Collect payments via debit and credit cards. Covers 3DS authentication,
    non-3DS flow, callback handling, and refunds.
  </Card>

  <Card title="Momo, XOF and ZAR Collections" icon="mobile" href="/guides/momo-collections">
    Collect payments via Mobile Money across Ghana, Kenya, Uganda, Tanzania,
    Cameroon, Côte d'Ivoire, Benin, and South Africa.
  </Card>
</CardGroup>

***

## Quick answers

**What is the API base URL?**

<li>
  All requests go to `https://api.payaza.africa/live/`. The `/live/` segment is
  a fixed path prefix — it does not change.
</li>

**What format does the `Authorization` header use?**

<li>`Payaza <Your Public API key encoded in base 64>` — note it is `Payaza`, not `Bearer`.</li>

**Is IP whitelisting required?**

<li>
  Only in the live environment for the "Initiate A Transfer\*\* API. Test
  environment requests are not IP-restricted.
</li>

**Where do I find my API key?**

<li>
  In the dashboard at [business.payaza.africa](https://business.payaza.africa)
  under **Settings → Developers → API Keys**.
</li>

**Who do I contact for API access or support?**

<li>
  Email [support@payaza.africa](mailto:support@payaza.africa) to make enquiries
  and report issues.{" "}
</li>
