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

# Metadata

> Response codes, Card Types, Currency

# The All-in-One Payments Platform for SMEs

**Omnispay** helps small businesses manage their cash flow effectively by simplifying how they **collect, pay, and borrow**. With a robust payment infrastructure, Omnispay enables seamless transactions while ensuring security, scalability, and reliability.

🔗 **Visit our website:** [Omnispay](https://omnispay.com/)

## Custom Response Codes

| Code | Message                        |
| ---- | ------------------------------ |
| 00   | SUCCESS                        |
| 90   | Blocked user                   |
| 91   | Empty Request Body             |
| 92   | Bad Request                    |
| 93   | Data not found                 |
| 96   | Not Acceptable                 |
| 97   | Payment Gateway Failure        |
| 99   | Unable to process the request. |

## Transaction Limits

| Code | Message                            |
| ---- | ---------------------------------- |
| 90   | Account Blocked                    |
| 99   | Monthly transaction limit exceeded |
| 99   | Per transaction limit exceeded     |

## Standard HTTP Response Codes

| Code | Message                | Description                                                                                |
| ---- | ---------------------- | ------------------------------------------------------------------------------------------ |
| 200  | OK                     | Everything worked as expected.                                                             |
| 201  | Created                | The request has been fulfilled, and a new resource has been created.                       |
| 204  | No Content             | The request was successful, but there is no response body.                                 |
| 400  | Bad Request            | The request was unacceptable, often due to missing a required parameter.                   |
| 401  | Unauthorized           | No valid API key provided.                                                                 |
| 402  | Request Failed         | The parameters were valid, but the request failed.                                         |
| 403  | Forbidden              | The API key doesn’t have permissions to perform the request.                               |
| 404  | Not Found              | The requested resource doesn’t exist.                                                      |
| 405  | Method Not Allowed     | The requested HTTP method is not supported.                                                |
| 409  | Conflict               | The request conflicts with another request (perhaps due to using the same idempotent key). |
| 415  | Unsupported Media Type | The media format of the requested data is not supported.                                   |
| 422  | Unprocessable Entity   | The request was well-formed but contains semantic errors.                                  |
| 429  | Too Many Requests      | Too many requests hit the API too quickly. We recommend an exponential backoff.            |
| 500  | Internal Server Error  | Something went wrong on the server’s end.                                                  |
| 502  | Bad Gateway            | The server received an invalid response from an upstream server.                           |
| 503  | Service Unavailable    | The server is temporarily unavailable.                                                     |
| 504  | Gateway Timeout        | The server did not receive a timely response from an upstream server.                      |

## Card Types

| **Type**             | **Description**             |
| -------------------- | --------------------------- |
| **Visa**             | Popular global payment card |
| **MasterCard**       | Widely accepted credit card |
| **American Express** | Premium credit card service |
| **Discover**         | U.S.-based payment network  |
| **JCB**              | Japanese payment card       |
| **Diners Club**      | Travel-focused credit card  |

## Supported Currency

The available currency codes on your account are determined by the merchant accounts you have with your acquiring bank. You can only process transactions in those currencies. Submitting a transaction request in a currency that is not available on your account will result in the request being rejected.

### **Available Currencies**

| **Code** | **Description**             |
| -------- | --------------------------- |
| **AED**  | United Arab Emirates Dirham |

## 🧾 Documenting Parent-Child Merchant Relationship Flow

This document explains how parent-level API keys work to authenticate merchants using `apikey` and `accountId`.

### 🔑 How Parent-Level API Keys Work

1. **Parent-Level API Key Usage**
   * A payment aggregator holds a **parent API key** that is used to process payments on behalf of multiple merchants (sub-merchants).

2. **Why Passing `accountId` is Recommended**
   * Helps track which merchant initiated the transaction (**auditability**).
   * Avoids mistakes where a request for one merchant goes to another.
   * Enables specific rate limits and security policies for each merchant.

***

### ❓ Which `accountId` Should Be Passed in the Header?

* If the **parent** (API key owner) is acting **on behalf of** a child merchant, send the **child’s `accountId`** in the request.
* If a **merchant is calling on their own**, use **their own `accountId`**.
* If `accountId` is missing:
  * Reject the request.

***
