# Post Transactions For Multiple Debits and Credits

This endpoint enables users to process multiple debits and credits efficiently. When making a request to this endpoint, you will need to provide the required body parameters, including `accountNumber`, `amount`, `recordType`, `narration`.and any other relevant details.

<mark style="color:green;">`POST`</mark> `/api/postings/v1/post`<br>

**Headers**

| Name                                            | Value                |
| ----------------------------------------------- | -------------------- |
| Content-Type<mark style="color:red;">\*</mark>  | `application/json`   |
| Authorization<mark style="color:red;">\*</mark> | `Bearer <token>`     |
| Request-Reference                               | `{unique-reference}` |

**Body**

<table><thead><tr><th width="171">Name</th><th width="173">Data Type (length)</th><th width="102" data-type="checkbox">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>postingEntryRequest</code></td><td>array</td><td>true</td><td>An array of objects detailing the accounts involved in the posting</td></tr><tr><td><code>postingEntryRequest.accountNumber</code></td><td>string <a data-footnote-ref href="#user-content-fn-1"><em>(20)</em></a></td><td>true</td><td>The account number for the transaction<br><br><em><mark style="color:orange;">This can either be a customer account or a general ledger account</mark></em></td></tr><tr><td><code>postingEntryRequest.amount</code></td><td>integer</td><td>true</td><td>The amount involved in the transaction<br><br><em><mark style="color:orange;">The amount must be provided in the base currency, e.g. NGN 5000.50 should be provided as 500050 kobo</mark></em></td></tr><tr><td><code>postingEntryRequest.recordType</code></td><td>integer</td><td>true</td><td>The type of record (e.g., debit or credit)<br><br>The enumerations are:<br><code>1</code> = Debit<br><code>2</code> = Credit<br><br><em><mark style="color:orange;">The sum of Total Debits (Amount) must equal the Sum of Total Credits (Amount); the number of Debit entries can differ.</mark></em></td></tr><tr><td><code>postingEntryRequest.narration</code></td><td>string <a data-footnote-ref href="#user-content-fn-1"><em>(5-40)</em></a></td><td>true</td><td>A description or narration of the transaction</td></tr><tr><td><code>postingEntryRequest.instrumentNumber</code></td><td>string <a data-footnote-ref href="#user-content-fn-1"><em>(50)</em></a></td><td>false</td><td>This is the instrument number associated with the transaction. The system generates a <strong>UUID</strong> if empty. <br><br><em><mark style="color:orange;">We recommend you pass a value if you perform a transaction retrial.</mark></em></td></tr><tr><td><code>postingDataRequest</code></td><td>object</td><td>false</td><td>The object containing additional data for the posting</td></tr><tr><td><code>postingDataRequest.unplaceLienAfterPosting</code></td><td>boolean</td><td>false</td><td>Whether to remove the lien after posting, set true for <code>yes</code> and false for <code>no</code></td></tr><tr><td><code>postingDataRequest.lienReferenceNumber</code></td><td>string</td><td>false</td><td>The reference number for the lien<br><br><em><mark style="color:orange;">This is only required if UnplaceLienAfterPosting is</mark><mark style="color:orange;"> </mark><mark style="color:orange;"><code>true</code></mark></em></td></tr><tr><td><code>postingDataRequest.merchant</code></td><td>string</td><td>false</td><td>The merchant involved in the transaction can be any for bill payment (E.g., DSTV, MTN, or Bet9ja)</td></tr><tr><td><code>postingDataRequest.additionalMetadata</code></td><td>object</td><td>false</td><td>Additional metadata related to the transaction</td></tr><tr><td><code>postingDataRequest.orig_AcctNo</code></td><td>string</td><td>false</td><td>The originator's account number</td></tr><tr><td><code>postingDataRequest.orig_Name</code></td><td>string</td><td>false</td><td>The originator's account holder's name</td></tr><tr><td><code>postingDataRequest.orig_BVN</code></td><td>string</td><td>false</td><td>The originator's account holder's Bank Verification Number (BVN)</td></tr><tr><td><code>postingDataRequest.orig_BankCode</code></td><td>string</td><td>false</td><td>The originator's bank's code</td></tr><tr><td><code>postingDataRequest.orig_BankName</code></td><td>string</td><td>false</td><td>The originator's bank's name</td></tr><tr><td><code>postingDataRequest.benf_AcctNo</code></td><td>string</td><td>false</td><td>The beneficiary account number</td></tr><tr><td><code>postingDataRequest.benf_Name</code></td><td>string</td><td>false</td><td>The beneficiary's name</td></tr><tr><td><code>postingDataRequest.benf_BVN</code></td><td>string</td><td>false</td><td>The beneficiary's Bank Verification Number (BVN)</td></tr><tr><td><code>postingDataRequest.benf_BankCode</code></td><td>string</td><td>false</td><td>The beneficiary bank's code</td></tr><tr><td><code>postingDataRequest.benf_BankName</code></td><td>string</td><td>false</td><td>The beneficiary bank's name</td></tr></tbody></table>

Here is an example request and response with a sample payload sent to the endpoint in Curl format.

<details>

<summary>Sample Request</summary>

```json
curl --location -g '{{baseurl}}/api/postings/v1/post' \
--header 'Authorization: bearer {token}' \
--header 'request-reference: {unique_reference}' \
--header 'Content-Type: application/json' \
--data '{
  "postingEntryRequest": [
    {
      "accountNumber": "1000000699",
      "amount": 10000,
      "recordType": 1,
      "narration": "test",
      "instrumentNumber": "7564238"
    },
{
      "accountNumber": "1000000675",
      "amount": 10000,
      "recordType": 2,
      "narration": "test",
      "instrumentNumber": "7564238"
    }
  ],
  "postingDataRequest": {
    "unplaceLienAfterPosting": false,
    "lienReferenceNumber": "",
    "merchant": "",
    "additionalMetadata": {
    "orig_AcctNo": "1000000699",
    "orig_Name": "Test User",
    "orig_BVN": "11111111111",
    "orig_BankCode": "999998",
    "orig_BankName": "GTB",
    "benf_AcctNo": "1000000675",
    "benf_Name": "Test User 2",
    "benf_BVN": "10000000000",
    "benf_BankCode": "999923",
    "benf_BankName": "XYZ MFB"
  }
  }
}'
```

</details>

<details>

<summary>Respose: <code>200</code></summary>

```json
{
  "status": true,
  "message": "string",
  "data": {
    "statusCode": "string",
    "referenceNumber": "string",
    "instrumentNumber": "string"
  }
}
```

</details>

[^1]: This is the maximum number of characters allowed.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.udara360.io/udara360-docs-1/transactions/postings-api/post-transactions-for-multiple-debits-and-credits.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
