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.
Authorization: Bearer <API_KEY>curl -G https://api.kredar.xyz/api/v1/dedicated-accounts \
-H "Authorization: Bearer <API_KEY>" \
-d limit=10Dedicated Accounts
/api/v1/dedicated-accounts
Create a Dedicated Virtual Account
/api/v1/dedicated-accountsCreate a new dedicated virtual account for a customer.
Request Body
{
"customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"expectedAmount": 0
}Response (200 OK)
{
"accountNumber": "1234567890",
"accountName": "John Doe",
"bankName": "Nomba Bank",
"status": "ACTIVE",
"createdAt": "2026-07-02T12:00:00Z"
}List All Dedicated Accounts
/api/v1/dedicated-accountsReturns a list of all dedicated virtual accounts under your business.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| page | integer | The page index for pagination. |
| limit | integer | The number of records per page. |
| customerId | string | Filter results by customer ID (UUID format). |
Get Dedicated Account by ID
/api/v1/dedicated-accounts/{id}Retrieve details of a specific dedicated virtual account.
Transactions
/api/v1/transactions
List All Transactions
/api/v1/transactionsFetch all transactions across your dedicated accounts. Specify one or more filters below.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| page, limit | integer | Pagination details. |
| status | string | Filter status (SUCCESS, PENDING, REVERSED). |
| customerId | string | Unique UUID filter of customer. |
| dateFrom, dateTo | string (ISO) | Date range metrics. |
Manual Transaction Record
/api/v1/transactionsRecord a transaction manually (mainly for internal use).
Request Body
{
"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
/api/v1/transactions/{id}Get Customer Transactions
/api/v1/customers/{customerId}/transactionsFetch all transactions for a specific customer.
Get Customer Transaction Statistics
/api/v1/customers/{customerId}/transactions/statsReturns 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
/api/healthReturns 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
| Field | Type | Description |
|---|---|---|
| status | string | "healthy" when the API is operating normally. |
| version | string | The currently deployed version of the Kredar API. |
| service | string | Identifies the responding service — always "Kredar API". |
| timestamp | string (ISO) | The server time at which the health check was evaluated. |
Example Request
curl https://api.kredar.com/api/healthResponse (200 OK)
{
"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.
| Code | Meaning |
|---|---|
| 200 | Request succeeded. |
| 400 | Bad request — one or more validation errors occurred. |
| 401 | Missing or invalid API key. |
| 403 | Authenticated, but not permitted — for example, an action requiring an approved KYC status. |
| 404 | The requested resource does not exist. |
| 500 | An unexpected error occurred on Kredar's servers. If this persists, contact Kredar support. |