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 exceptions are
has_body_addon and scan_type: a replay that changes either 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 for the scan type, 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… | |||