Offline collections are mechanisms that enable merchants to receive cash payments from their customers via a Moniepoint Business Owner location. Through Monnify, merchants are notified about these payments so they can automatically provide value to their customers, similar to digital payment methods. Moniepoint, being an agency banking platform with agents across every local government in Nigeria, facilitates this service.
Offline Collections/Pay-ins are defined as inbound payments made to you as a merchant by your customers via the Moniepoint Business Owner location.

Before accepting cash payments, a merchant must first create an offline product
An offline product is a commodity of interest to the customer that they are willing to pay for. Monnify supports four categories of offline products:
This product has a fixed amount that a customer must pay for a service or product. Merchants must state the amount on the Monnify platform. For fixed product types, the amount must be stated by merchants on the Monnify platform. An example is a monthly fixed contribution.

This product has a flexible amount. The merchant does not specify the amount, and the customer specifies how much they want to pay at the Moniepoint Business Owner’s location. Example: variable amount for betting.
For variable product type, you do not specify the amount as the customer specifies how much they want to pay at the Moniepoint Business Owner’s location where collection is done.

This requires an invoice to be created for every payment. Unlike other types, the invoice does not become fully active upon creation on Monnify. To activate it, the Monnify Create an Invoice endpoint must be called, specifying "CASH" as the payment method. The amount to be paid is then tied to the generated invoice ID.

This product type allows merchants to designate a custom payment amount for each user. Merchants can dynamically adjust the product price during the payer verification stage by including the desired amount in their successful response to Monnify.
After creating an offline product, the merchant must configure necessary endpoints to receive payments seamlessly. These endpoints are configured in the developer section, on the offline payment setup tab.

| Parameter | Description |
|---|---|
| productCode | A unique string identifying the created product. This code is automatically generated by Monnify when the product is created. |
| paymentRecipientId | This is the id that uniquely identifies the customer on the merchant’s end. |
1{
2 "productCode": "P10101",
3 "paymentRecipientId": "LAHRAY101"
4}When user is verified successfully;
1{
2 "responseCode": "00",
3 "responseMessage": "User details retrieved successfully.",
4 "paymentRecipientId": "21220002312312",
5 "paymentRecipientDescription": "DAMILARE OGUNNAIKE SAMUEL"
6}1{
2 "responseCode": "00",
3 "amount": 2000,
4 "responseMessage": "User details retrieved successfully.",
5 "paymentRecipientId": "21220002312312",
6 "paymentRecipientDescription": "DAMILARE OGUNNAIKE SAMUEL"
7}When user does not exist;
1{
2 "responseCode": "02",
3 "responseMessage": "User does not exist."
4}| Parameter | Description |
|---|---|
| amount | The amount to be paid for the product |
| transactionReference | Monnify’s unique reference for transactions |
| productCode | This is the product code for the product to be purchased. . This code is automatically generated by Monnify when the product is created. |
| paymentRecipientId | This is the id that uniquely identifies the customer on the merchant’s end. |
1{
2 "amount": 200,
3 "transactionReference": "MNFY|66|20210825115615|000002",
4 "productCode": "{productCode}",
5 "paymentRecipientId": "{paymentRecipientId}"
6}Success response;
1{
2 "responseCode": "00",
3 "productCode": "121221212",
4 "paymentRecipientId":"{paymentRecipientId}}"
5 "transactionReference":"MNFY|66|20210825115615|000002",
6 "paymentToken": "{paymentToken}"
7}Failed Response;
1{
2 "responseCode": "01",
3 "responseMessage": "Reason for failed response"
4}| Parameter | Description |
|---|---|
| transactionReference | This is the unique Monnify reference for the transaction.This reference is sent as a urlEncoded string and should be decoded on the merchant’s end |
1GET {{merchantPaymentRequeryUrl}}?transactionReference=MNFY%7C44%7C20220407112123%7C000684For a successful response;
1{
2 "responseCode": "00",
3 "productCode": "121221212",
4 "paymentRecipientId":"{paymentRecipientId}}"
5 "transactionReference":"MNFY|66|20210825115615|000002",
6 "paymentToken": "{paymentToken}"
7}For a failed response
1{
2 "responseCode": "01",
3 "responseMessage": "Reason for failed response"
4}