The scenario matrices

These are the audit script. Every row is a test you will be asked to demonstrate.

Void — no fuel was dispensed

NozzlePump statusElapsedTriggerScreen
ReturnedNAImmediateFCS sends VoidNo fueling happened, full amount will be released to your account.
Not returnedNA60 sFCS sends Void"
Not pickedNAImmediateCustomer presses cancel on the pump"
Not pickedNA60 sFCS sends Void"
AnyTechnical StopImmediateFCS sends Void"
UnknownNA120 sThe 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

NozzlePump statusFuellingUser actionElapsedScreen
NANACompletedNAImmediatePlease return the Nozzle / Fueling is completed by SAR ×××.
ReturnedNAPartialNAImmediateFueling is completed by ××× SAR, The remaining amount will be released to your account.
Not returnedTechnical StopPartialFinishImmediateTechnical issue, Please return the Nozzle.
Not returnedTechnical StopPartialNA120 sTechnical issue, Please return the Nozzle.
Not returnedPausePartialFinishImmediatePlease return the Nozzle.
Not returnedPausePartialNA60 sTime 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:

CodeMeaning
060Issuer down — mada is standing in on behalf of the issuer
061mada 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 →


Did this page help you?