Partner server-to-server errors use a consistent envelope:
The envelope contains error.code, message, retryable, and correlation_id. details is optional.
Error codes
Contribution and shared errors:
invalid_request
invalid_point_amount
unauthorized
forbidden
partner_suspended
idempotency_conflict
partner_event_conflict
partner_order_conflict
contribution_not_found
contribution_final_failure
rate_limited
internal_service_unavailable
contribution_pending
Delivery-emissions errors:
unsupported_vehicle
invalid_distance
estimate_not_found
estimate_expired
calculation_mismatch
association_conflict
For rate_limited, honor the Retry-After header.
Recover after a timeout or unknown result
Do not restore points after a timeout, an unknown result, a pending result, or contribution_not_found.
First, recover by partner_event_id:
If no contribution is found, the response is:
Retry the original confirmation using the same transport Idempotency-Key, the same partner_event_id, the same partner_order_ref, and the same canonical payload. Restore points only after a terminal failed result.