Skip to main content
Confirm a loyalty-points contribution only after the partner has successfully deducted the customer’s points.

Contribution identities

Each identity has a distinct purpose:
  • Idempotency-Key is the transport request-idempotency header. The same header with the same canonical payload returns the original result. Conflicting immutable request data returns idempotency_conflict.
  • partner_event_id is the partner-supplied contribution uniqueness and recovery key. The same value with the same immutable request data returns the original contribution. Conflicting immutable request data returns partner_event_conflict.
  • partner_order_ref is a stable, non-PII order correlation. Only one confirmed contribution is allowed per partner, environment, and order. A conflict returns partner_order_conflict.

Confirm a contribution

Send POST {baseUrl}/v1/impact-transactions with X-API-Key, Idempotency-Key, and Content-Type: application/json. Without an emissions estimate:
With an optional calculation_id:
An optional calculation_id must not invalidate an otherwise valid contribution. points must be a positive whole number with a minimum value of 1. An invalid shape returns invalid_point_amount, and no failed contribution record is persisted. Successful confirmation returns HTTP 201:

Contribution statuses

  • pending is exceptional and non-final.
  • confirmed is terminal and non-refundable.
  • failed is terminal. Only then may the partner restore points.
confirmed and failed do not interchange.

Recover a contribution

Use partner_event_id as the primary recovery key: GET {baseUrl}/v1/impact-transactions?partner_event_id=evt_contrib_01HZX5A1B2C3D4E5F6G7H8J9 A secondary lookup is available by transaction ID: GET {baseUrl}/v1/impact-transactions/{transaction_id} See Errors & Recovery before restoring points after a timeout or unknown result.