Create a billing meter event with asynchronous validation v2

Billing
Meter Event Streams
Create a billing meter event with asynchronous validation

Creates meter events. Events are processed asynchronously, including validation. Requires a meter event session for authentication. Supports up to 10,000 requests per second in livemode. For even higher rate-limits, contact sales.

Learn more about calling API v2 endpoints.

Parameters

  • eventsarray of objectsRequired

    List of meter events to include in the request. Supports up to 100 events per request.

    • events.event_namestringRequired

      The name of the meter event. Corresponds with the event_name field on a meter.

    • events.identifierstring

      A unique identifier for the event. If not provided, one will be generated. We recommend using a globally unique identifier for this. We’ll enforce uniqueness within a rolling 24 hour period.

    • events.payloadmapRequired

      The payload of the event. This must contain the fields corresponding to a meter’s customer_mapping.event_payload_key (default is stripe_customer_id) and value_settings.event_payload_key (default is value). Read more about the payload.

    • events.timestamptimestamp

      The time of the event. Must be within the past 35 calendar days or up to 5 minutes in the future. Defaults to current timestamp if not specified.

Returns

Response attributes

No response attributes.

Error Codes
401billing_meter_event_session_expired

The temporary session token has expired.

POST /v2/billing/meter_event_stream
curl -X POST https://meter-events.stripe.com/v2/billing/meter_event_stream \
-H "Authorization: Bearer {{SESSION AUTH TOKEN}}" \
-H "Stripe-Version: 2025-08-27.preview" \
--json '{
"events": [
{
"identifier": "idmp_12345678",
"event_name": "ai_search_api",
"timestamp": "2024-06-01T12:00:00.000Z",
"payload": {
"stripe_customer_id": "cus_12345678",
"value": "25"
}
}
]
}'
Response
{}