Skip to main content
This guide walks through the most common billing model: creating a customer with a balance and handling the payment webhook when that balance is settled. This model is suited for merchants who track a single running balance per customer without needing separate accounts or individual bills.

Prerequisites

  • A test API key. See Authentication.
  • A registered webhook endpoint. See Webhook Setup to register your URL and obtain your signing key.

Step 1: Create a customer

Create a customer with a balance representing what they currently owe, in minor units.
balance is specified in minor units. See Monetary Amounts for details.
The response returns an id. Store this to reference the customer in future calls.

Step 2: Present the balance for payment

With the customer created, present their balance for payment using Electronic Bill Presentment or a Payment Request.

Step 3: Handle the payment webhook

When payment is received against the customer balance, Moment sends an obligation.amount_applied event.
Use data.customer_id to identify which customer paid and data.amount to reconcile against their balance. Before processing, verify the event signature. See Webhook Verification. Respond with a 2xx status code to acknowledge receipt.

Next steps

Quickstart: Account Balance

Track balances across multiple sub-accounts within a customer.

Quickstart: Bill Amount Due

Raise a specific bill with an amount due and a due date.

Electronic Bill Presentment

Present balances and bills to customers via a hosted payment page.

Uploading Bills

Ingest customer balances and bills in bulk via SFTP or file integration.

Common Operations

Examples for updating customer balances, account balances, and bills.