# 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.
