Skip to main content
This page describes the runtime payment lifecycle as implemented in the Meum platform API.

Lifecycle diagram

Stage-by-stage

StageWhat happens
Invoice createdPOST /v1/invoices → status awaiting_payment, webhook invoice.created queued
Awaiting paymentCustomer opens checkout at pay.meum.io/{invoiceId}
Quote createdCustomer selects origin token → status may become quoted
Blockchain payment detectedMeum payment monitor detects deposit
Confirmation/validationAmount compared to expected; status set to paid or underpaid
Invoice paidTerminal status; settlement log written
Webhook queuedBullMQ job enqueued for delivery
Merchant integration receives webhookHTTP POST with signed payload
Order updatedWooCommerce calls payment_complete() on invoice.paid

Open vs terminal statuses

Open (can receive payment): awaiting_payment, quoted, pending Terminal (no further payment updates): paid, underpaid, failed, expired, refunded, cancelled