ChatMo Open API
βstringΒ Β·Β uuidΒ Β·Β requiredβboolean
Manual payment confirmation. Xendit-driven payments flip themselves via webhook.
Confirm a manual payment
POST
https://api.chatmo.io/v1/open-api
/ecommerce/payments/confirm
Marks a manual payment (payment_provider = MANUAL, status WAITING_CONFIRMATION) as CONFIRMED. Rolls up order.payment_status = PAID when every payment row on the order is now confirmed.
The Xendit side of the world does not need this β those rows are flipped to CONFIRMED automatically by the webhook.
Idempotent: calling twice on the same payment_id returns 200 both times β the second call is a no-op.
Side-effects, all in a single transaction:
- Update
ecommerce_order_paymentsβstatus='CONFIRMED',confirmed_at=NOW,confirmed_by=<your user id>,paid_at=NOW. - If every payment row on the order is now CONFIRMED β bump
ecommerce_orders.payment_status='PAID'. - Insert
ecommerce_order_historyrow withevent_type='PAYMENT_CONFIRMED'and metadata{payment_id, payment_provider, amount}.
Confirm a manual payment βΊ Request Body
payment_idMust reference a payment row whose parent order belongs to your organization.
Confirm a manual payment βΊ Responses
Payment confirmed (or already was).
successβobject
