InitPaymentModelDTO
This document describes the InitPaymentModelDTO, which defines the data transfer object (DTO) structure of a payment initialization request for the NoWallet API.
It is used by merchants to initiate a payment process by specifying essential transaction details, customer information, and payment preferences.
JSON Response Example
The JSON section provides a sample structure that a merchant would send when initializing a payment transaction. Key fields include:
- transaction_id: A unique identifier for the transaction.
- additional_infos: Customer information such as email, name, and phone number.
- amount: The amount to be transacted.
- callback_url: The URL where the merchant will receive the payment result.
- return_url: The URL where the customer will be redirected after payment.
- country_code: The country code for the transaction.
- operators_code: The mobile money operator codes for the transaction.
- method: The type of transaction (e.g., CASHIN, CASHOUT, MERCHANT).
- tunnel: The mode of transaction (e.g., API, CHECKOUTPAGE).
- operator_otp: The OTP from the operator if required.
This example helps developers visualize the expected format and key components of a valid payment initialization request.
Example Payload
Here is an example of a valid payload for the InitPaymentModelDTO:
{
"transaction_id": "ca3a65bb-9008-443d-8d4b-61c3b0006438",
"additional_infos": {
"customer_email": "[email protected]",
"customer_lastname": "Doe",
"customer_firstname": "John",
"customer_phone": "+237691234567"
},
"amount": 200,
"callback_url": "https://example.com/callback",
"return_url": "https://example.com/return",
"country_code": "CM",
"operators_code": ["OM"],
"method": "MERCHANT",
"tunnel": "CHECKOUTPAGE",
"operator_otp": "123456"
}
Properties
The Properties table details each field included in the request payload:
- The Name of the field,
- Its Type (e.g.,
string,array), - Whether it is Required or not,
- Any Restrictions that apply to the field,
- A brief Description of the field's purpose.
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| transaction_id | string | true | none | an id generated by the merchant |
| additional_infos | object | true | none | client informations like email, lastname, firstname, phone |
| amount | number | true | none | transaction amount |
| callback_url | string | true | none | url where the merchant will receive the payment final result, the callback url must be a valid url and must be http POST method only |
| return_url | string | true | none | url where client will be redirect after payment, the return url must be a valid url |
| country_code | string | true | none | country code of the transaction, the country code must be a valid ISO 3166-1 alpha-2 or alpha-3 country code |
| operators_code | array | true | none | mobile money operator code of the transaction, the operator code must be an array and a valid operator code, refer to our documentation for a list of valid operator codes |
| method | string | true | none | the type of transaction to be made, methods can be: CASHIN(PAYOUT), CASHOUT (CASHOUT), MERCHANT(PAYIN) |
| tunnel | string | true | none | the type of tunnel(mode) to be used, tunnels can be: CHECKOUTPAGE(Payment interface to finalize transaction), API (Api mode make directly transaction, API tunnel is allowed for single operators_code ex : ['OM'], and customer_phone is required) |
| operator_otp | string | false | none | otp from operator if it's need to be verified by the merchant |
This section helps developers correctly populate each field to ensure the smooth creation of payment transactions.
Enumerated Values
The Enumerated Values section specifies the acceptable values for the method and tunnel properties:
| Property | Value |
|---|---|
| method | CASHIN |
| method | MERCHANT |
| method | CASHOUT |
| tunnel | API |
| tunnel | CHECKOUTPAGE |
This ensures that only supported values are used, maintaining consistency and avoiding invalid transactions.
Was this page helpful?