Creates a pending PaymentTransaction (purpose=scan) for a vendor whose
scan_payment_bearer is customer, then returns the data the widget needs to launch
the gateway.
- Currency NGN → Paystack inline. Response carries
paystack.public_key; the widget
opens the Paystack inline checkout client-side usingreferenceandamount. - Any other currency → Startbutton hosted checkout. Response carries
startbutton.checkout_url; the widget opens this URL in a new tab.
Idempotent on (vendor_id, batch_id) while the row is pending — replaying the request
returns the existing reference instead of stacking orphans. The exception is
has_body_addon: a replay that changes it is re-priced onto a new reference, and the
superseded row is abandoned so its open checkout cannot collect the old amount.
The breakdown block exposes the gateway fee added on top of the scan price (Oyster's
rate, the vendor's markup, and the flat body fee when has_body_addon is set). The
widget uses this to display "Subtotal + Fee = Total" before launching the gateway.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||