NewDash Dots are hereMini apps in Dash, with payments built inLearn more

Payment Code

Create Payment Code

Creates a new payment code with the specified parameters for value collection and provider restrictions.

POST
/v1/payment-codes

Authorization

Authorizationstringheaderrequired

Bearer HTTP authentication specified with the header Authorization: Bearer <access_token>

Headers

Idempotency-Keystringrequired

This header is used to uniquely identify a logical request, ensuring that it is not processed more than once during retries.

Length:length <= 64
Monime-Versionstring | nulloptional

Specifies which version of the Monime API will handle this request.

Available options:caph.2025-08-23caph.2025-06-20
Monime-Space-Idstringrequired

The value is the tenancy parameter that Monime uses to determine which space the request is intended for.

Match:^spc-.*$
Length:length <= 64

Body

application/json
namestring | nullrequired

Descriptive name for the payment code, used for display or tracking.

Length:3 <= length <= 64
modestringoptional

Defines whether the payment code is single-use ('one_time') or reusable ('recurrent').

Default:"one_time"
Available options:one_timerecurrent
enablebooleanoptional

Whether the payment code should be enabled for use on creation.

Default:true
amountobjectoptional

Amount to charge per use of the payment code. For 'recurrent' codes, this applies to each payment.

durationstringoptional

How long the payment code remains valid before expiring.

Default:"10m"
customerobject | nulloptional

Customer associated with the payment code, if any.

referencestring | nulloptional

Reference tag to associate with this payment code for reconciliation or tracking.

Length:length <= 64
authorizedProvidersarray | nulloptional

List of mobile money provider IDs permitted to process payments using this code.

Items:1 <= items <= 10
authorizedPhoneNumberstringoptional

MSISDN of the mobile money account exclusively allowed to use this code.

recurrentPaymentTargetobject | nulloptional

Defines the target number of payments or total amount for completing a recurrent code.

financialAccountIdstring | nulloptional

Financial account where collected funds are settled. Defaults to the main account if omitted.

Match:^fac-.*$
Length:length <= 64
metadataobject | nulloptional

Optional metadata for attaching custom business context to the payment code.

Properties:properties <= 64

Response

200 - application/json

OK

successbooleanoptional

Represents the status of the query operation, confirming if it was successful. This field is always true

messagesarray<unknown>optional

Contains a list of messages providing relevant information or feedback related to the query or operation

resultPayment Codeoptional

A Payment Code is a programmable, short-lived token that allows users to collect payments from others.
It is especially useful in USSD-like or QR-based flows, where the payer enters or scans a code to complete a transaction.

Payment Codes provide flexibility for both one-time and recurrent collections, with configurable restrictions and targets.


Use Cases

  • USSD Payment Collection
    A merchant generates a Payment Code and displays it in USSD. Customers enter the code to make payments.
    Example: A vendor creates a one-time code for SLE 50 which a customer redeems via their mobile money wallet.

  • QR Code at Point of Sale
    The Payment Code is encoded as a QR displayed at checkout. Customers scan the QR to pay.
    Example: A shop generates a QR-based Payment Code for SLE 200, which is redeemed on the spot.

  • Recurring Subscription Collection
    A fitness center issues a recurrent Payment Code for monthly fees.
    Example: The code accepts up to 12 payments of SLE 500 each, after which it auto-completes.

  • Targeted Collection
    Restrict a Payment Code to a specific MSISDN or provider.
    Example: Only customers on Orange Money with a registered number can redeem the code.