The scenario matrices
These are the audit script. Every row is a test you will be asked to demonstrate.
Void — no fuel was dispensed
| Nozzle | Pump status | Elapsed | Trigger | Screen |
|---|---|---|---|---|
| Returned | NA | Immediate | FCS sends Void | No fueling happened, full amount will be released to your account. |
| Not returned | NA | 60 s | FCS sends Void | " |
| Not picked | NA | Immediate | Customer presses cancel on the pump | " |
| Not picked | NA | 60 s | FCS sends Void | " |
| Any | Technical Stop | Immediate | FCS sends Void | " |
| Unknown | NA | 120 s | The mada terminal application times out and the FCS generates a Void marked as a suspect transaction | " |
Arabic: لم تتم التعبئة، سيتم إعادة كامل المبلغ إلى رصيد حسابكم.
The last row is the one to design for. At 120 seconds with no idea what happened, the terminal stops waiting and voids — and the void is flagged suspect, because nobody can say whether fuel was delivered. That is the AFD equivalent of the unknown outcome class in the integration guide, and it is the only row where your app decides rather than the pump.
Capture — fuel was dispensed
| Nozzle | Pump status | Fuelling | User action | Elapsed | Screen |
|---|---|---|---|---|---|
| NA | NA | Completed | NA | Immediate | Please return the Nozzle / Fueling is completed by SAR ×××. |
| Returned | NA | Partial | NA | Immediate | Fueling is completed by ××× SAR, The remaining amount will be released to your account. |
| Not returned | Technical Stop | Partial | Finish | Immediate | Technical issue, Please return the Nozzle. |
| Not returned | Technical Stop | Partial | NA | 120 s | Technical issue, Please return the Nozzle. |
| Not returned | Pause | Partial | Finish | Immediate | Please return the Nozzle. |
| Not returned | Pause | Partial | NA | 60 s | Time out, Please return the Nozzle. |
Arabic for a partial capture: تم التعبئة بنجاح بمبلغ ××× ريال، سيتم إعادة المبلغ المتبقي إلى رصيد حسابكم.
Definitions the matrix depends on:
- Finish — the customer chose to end fuelling on the pump.
- Pause — the customer stopped fuelling manually.
- Technical Stop — the pump cannot continue; a full tank is one reason.
- NA — the terminal acts regardless of what the customer did.
Note the receipt rule: the terminal generates the capture request and prints the approved receipt immediately. It does not wait for the host.
When the host is down — STIP
Two response codes are approvals you must honour, both already in the approved list in the integration guide:
| Code | Meaning |
|---|---|
060 | Issuer down — mada is standing in on behalf of the issuer |
061 | mada down — the POS is standing in on behalf of mada |
Both are audited scenarios. A terminal that treats them as declines fails certification and, worse, refuses fuel to customers whose payment has in fact been authorised.
← The customer journey · Contents · What your application must survive →
Updated 3 days ago
