These four fields configure how IremboHub generates and routes a payment bill. paymentCode, paymentAccount, and paymentMerchant all follow PaymentFieldDto. paymentExpirationHours is a plain number.
| Field | Type | Description |
|---|---|---|
priceType |
"FIXED" | "DYNAMIC" |
Static value or condition-driven |
baseValue |
string | null | The value (FIXED only) |
dynamicConditions |
PaymentConditionDto[] | Condition-to-value mappings (DYNAMIC only) |
| Field | Type | Description |
|---|---|---|
value |
string | Value to use when conditions match |
conditions |
ConditionDto[] | All must match for this entry to apply |
An empty or null conditions array always evaluates to true — the entry unconditionally matches. Entries are evaluated in order; the first entry whose conditions all match applies. Ensure every possible value of the routing field is covered.
Two formats are supported:
Legacy format — field-by-field comparison:
| Field | Type | Description |
|---|---|---|
attribute |
string | Form field key to evaluate |
attributeType |
"STRING" | "NUMBER" | "DATE" |
How to interpret the field value |
comparator |
"EQ" | "NEQ" | "GT" | "LT" | "GTE" | "LTE" | "CONTAINS" |
Comparison operator |
value |
string | Target value (always a string; parsed by attributeType) |
JSONata format — a single-entry array with a jsonata key; the expression must evaluate to a truthy value for the entry to match:
"conditions": [{ "jsonata": "<boolean expression>" }]
The bill code sent to the payment gateway. Always FIXED.
"paymentCode": {
"priceType": "FIXED",
"baseValue": "RRA-SERVICE-CODE",
"dynamicConditions": []
}
The bank account that receives the payment. Can be FIXED or DYNAMIC.
Use when all applicants pay into the same account.
"paymentAccount": {
"priceType": "FIXED",
"baseValue": "GOR-CG-RWF",
"dynamicConditions": []
}
Use when funds route to different accounts based on form data — most commonly applicant district or service variant.
"paymentAccount": {
"priceType": "DYNAMIC",
"baseValue": null,
"dynamicConditions": [
{
"value": "AGENCY-KIGALI-RWF",
"conditions": [
{ "attribute": "DISTRICT", "comparator": "EQ", "value": "Nyarugenge", "attributeType": "STRING" }
]
},
{
"value": "AGENCY-EAST-RWF",
"conditions": [
{ "attribute": "DISTRICT", "comparator": "EQ", "value": "Rwamagana", "attributeType": "STRING" }
]
}
]
}
The merchant identifier sent to the payment gateway. Always FIXED.
"paymentMerchant": {
"priceType": "FIXED",
"baseValue": "GOR",
"dynamicConditions": []
}
Hours the applicant has to complete payment after a bill is generated. After expiration the bill is voided and the applicant must restart.
"paymentExpirationHours": 24
| Value | Duration | Typical use |
|---|---|---|
24 |
1 day | Standard government services |
168 |
7 days | Construction and longer-lead services |
720 |
30 days | Extended payment windows |