- The metric that measures what you charge for (API calls, storage GB, and so on).
- The customer’s subscription that determines their pricing plan and billing cycle.
- The actual metric usage that an event consumes. PayPal aggregates this data to calculate charges.
Or
Send a batch of events: Submit multiple events at once for high-volume scenarios.
Prerequisites
- Ensure to create and set up all metrics that define how events are aggregated for billing.
- Ensure to register the customers to whom you want to track usage events.
- Ensure to create subscriptions that link customers to your pricing plans.
1. Send usage events to PayPal
Send multiple events
As and when events occur, use a valid access token and send a POST request to/v1/commerce/billing/events
with all required request parameters.
Important: Include your billing_tier_id
in the request header to enable higher rate limits for high-volume event processing.
On successful event creation, the PayPal server returns an event ID.
Request body parameters
Parameter name | Description |
---|---|
transaction_id Required, string | Unique identifier that identifies the event. Ensure transaction_id values are unique across all events. |
metric_code Required, string | Unique code that identifies the metric. This value must match the code property of an active metric. |
external_subscription_id Required, string | Unique identifier that identifies the subscription. It is the ID you enter when creating a subscription. |
timestamp string | ISO 8601 timestamp when the event occurred. If not provided, PayPal uses the current time. |
properties Required for SUM , MAX , COUNT_DISTINCT , and LATEST aggregation types, object | Key-value pairs that specify event properties and corresponding usage amounts. hods. The property key you use here (for example, gb for storage or minutes for compute time) must exactly match the aggregation_field value defined in your metric configuration. This ensures PayPal knows which value to aggregate for billing calculations. |
Note: For the exhaustive list of response fields, see API reference.
Send a batch of events
Use a valid access token and send a POST request to/v1/commerce/billing/events/batch
with all required request parameters. You can send up to 100 events in a single batch request.
On successful batch submission, the PayPal server returns a status confirmation.
Request body parameters
Parameter name | Description |
---|---|
events Required, array | Array of event objects. Each event must include the parameters below. |
events.transaction_id Required, string | A unique identifier that identifies the event. Required for each event in the batch. Ensure transaction_id values are unique across all events. |
events.metric_code Required, string | A unique code that identifies the metric. This value must match the code property of an active metric. Required for each event in the batch. |
events.external_subscription_id Required, string | Unique identifier that identifies the subscription. It is the ID you enter when creating a subscription. |
events.timestamp string | ISO 8601 timestamp when the event occurred. If not provided, PayPal uses the current time. |
events.properties Required for SUM , MAX , COUNT_DISTINCT , and LATEST aggregation types, object | Key-value pairs that specify event properties and corresponding usage amounts. The property key you use here (for example, gb for storage or minutes for compute time) must exactly match the aggregation_field value defined in your metric configuration. This ensures PayPal knows which value to aggregate for billing calculations. |
Note: For the exhaustive list of response fields, see API reference.After you record events and meter usage, PayPal converts this metered data into charges for your customers and bills them. See Understand billing.
2. Optional: Audit usage events
You can retrieve and audit the usage events recorded with PayPal to:- Ensure billing accuracy.
- Solve customer disputes.
- Validate that all events were saved correctly.
- Ensure that the events recorded match your own tracking systems.