For low/standard volume, send individual events to `POST /v2/billing/meter_events` (one event per request, synchronous validation, asynchronous processing).
For high throughput, first create a meter event session to obtain a short-lived authentication token.
Send events to the meter event stream endpoint authenticated with that session token; the stream accepts batches of up to 100 events per request.
Include `event_name`, a `payload` with the `stripe_customer_id` (or mapped identifier) and `value`, and an idempotent identifier per event.
Refresh the session token before it expires (tokens are valid ~15 minutes) and resume streaming.
Known gotchas
The single `POST /v2/billing/meter_events` endpoint takes one event per call; batching is only available through the separate meter event stream, which requires a session token.
Stream events are validated asynchronously, so a malformed event is not rejected inline — monitor for dropped/invalid events rather than relying on a synchronous error.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp