Introduction

Join the ranks of businesses using Kredar to accept payments through dedicated virtual accounts. Explore this documentation to start creating accounts, tracking transactions, and building richer payment experiences for your customers.

You can use the Kredar API in test mode, which doesn't affect your live data or interact with the banking networks. The API key you use to authenticate the request determines whether the request is live mode or test mode.

Getting started

Embark on your payment processing journey with ease by following these simple steps to get started with the Kredar API.

Not a developer?

Explore our no-code option to get started with Kredar and do more with your Kredar account.

Base URL

All API requests should be made to the base URL below. Use your deployed URL if you are self-hosting.

https://api.kredar.xyz

Authentication

All endpoints require a valid Authorization: Bearer <API_KEY> header. Keep your API key secret — never expose it in client-side code.

Header Example
Authorization: Bearer <API_KEY>
cURL Request Example
curl -G https://api.kredar.xyz/api/v1/dedicated-accounts \
  -H "Authorization: Bearer <API_KEY>" \
  -d limit=10

Dedicated Accounts

/api/v1/dedicated-accounts

Create a Dedicated Virtual Account

POST/api/v1/dedicated-accounts

Create a new dedicated virtual account for a customer.

Request Body

JSON Payload
{
  "customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "expectedAmount": 0
}

Response (200 OK)

JSON Response
{
  "accountNumber": "1234567890",
  "accountName": "John Doe",
  "bankName": "Nomba Bank",
  "status": "ACTIVE",
  "createdAt": "2026-07-02T12:00:00Z"
}

List All Dedicated Accounts

GET/api/v1/dedicated-accounts

Returns a list of all dedicated virtual accounts under your business.

Query Parameters

ParameterTypeDescription
pageintegerThe page index for pagination.
limitintegerThe number of records per page.
customerIdstringFilter results by customer ID (UUID format).

Get Dedicated Account by ID

GET/api/v1/dedicated-accounts/{id}

Retrieve details of a specific dedicated virtual account.

Transactions

/api/v1/transactions

List All Transactions

GET/api/v1/transactions

Fetch all transactions across your dedicated accounts. Specify one or more filters below.

Query Parameters

ParameterTypeDescription
page, limitintegerPagination details.
statusstringFilter status (SUCCESS, PENDING, REVERSED).
customerIdstringUnique UUID filter of customer.
dateFrom, dateTostring (ISO)Date range metrics.

Manual Transaction Record

POST/api/v1/transactions

Record a transaction manually (mainly for internal use).

Request Body

JSON Request Payload
{
  "customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "paymentReference": "PAY-REF-902183",
  "amount": 0.01,
  "fee": 0,
  "currency": "NGN",
  "paymentMethod": "bank_transfer",
  "dedicatedAccountNumber": "1234567890",
  "narration": "Manual credit",
  "expectedAmount": 0
}

Get Transaction by ID

GET/api/v1/transactions/{id}

Get Customer Transactions

GET/api/v1/customers/{customerId}/transactions

Fetch all transactions for a specific customer.

Get Customer Transaction Statistics

GET/api/v1/customers/{customerId}/transactions/stats

Returns summary stats (total credited, number of transactions, etc.) for a customer.

System

/api/health

Kredar's system endpoints let you monitor the health and availability of the API independently of your business logic. Use these to power uptime monitors, status pages, or automated alerts in your own infrastructure.

Why check API health?

Before troubleshooting an integration issue, it's good practice to confirm the Kredar API itself is reachable and operating normally. This endpoint requires no authentication, so it's safe to call from monitoring tools, load balancers, or CI pipelines without exposing your API key.

Health Check

GET/api/health

Returns the current operational status of the Kredar API. No authentication is required for this endpoint — it is publicly accessible so it can be polled by external monitoring services.

Response Fields

FieldTypeDescription
statusstring"healthy" when the API is operating normally.
versionstringThe currently deployed version of the Kredar API.
servicestringIdentifies the responding service — always "Kredar API".
timestampstring (ISO)The server time at which the health check was evaluated.

Example Request

cURL
curl https://api.kredar.com/api/health

Response (200 OK)

JSON Response
{
  "status": "healthy",
  "version": "1.0.0",
  "service": "Kredar API",
  "timestamp": "2026-07-07T09:14:32Z"
}

Status Codes

The Kredar API uses standard HTTP status codes across all endpoints to indicate the success or failure of a request.

CodeMeaning
200Request succeeded.
400Bad request — one or more validation errors occurred.
401Missing or invalid API key.
403Authenticated, but not permitted — for example, an action requiring an approved KYC status.
404The requested resource does not exist.
500An unexpected error occurred on Kredar's servers. If this persists, contact Kredar support.
200 OK · ~180ms

Request

HTTPS api.kredar.com/api/v1/introduction

# No snippet available for this section
Content-Type: application/json