Skip to main content
POST

Authorizations

X-API-Key
string
header
required

Canonical server-to-server API key header name: X-API-Key. Partner customer applications must not use this credential. Examples must never include raw API secrets.

Headers

Idempotency-Key
string
required

Transport/request idempotency key required for delivery-emissions estimate creation, contribution confirmation, and emissions-association creation. Same key + same canonical payload returns the original result. Same key + conflicting canonical payload returns idempotency_conflict.

Non-PII transport idempotency key.

Required string length: 8 - 128
Pattern: ^[A-Za-z0-9._:-]+$
Example:

"idem_01HZX5Z9Y8X7W6V5U4T3S2R1"

X-Correlation-ID
string

Optional request correlation header. If omitted, Akhdar generates one. Every success and error response includes X-Correlation-ID. Error payloads include correlation_id.

Non-PII request correlation identifier.

Required string length: 8 - 128
Pattern: ^[A-Za-z0-9._:-]+$
Example:

"corr_7c2e9b1a4d6f8e0c"

Body

application/json

Method-discriminated contribution confirmation request. The Partner's configured contribution_method determines which fields are required: - loyalty_points: requires points; amount_halalas and partner_payment_reference must be absent or null.

  • direct_contribution: requires amount_halalas and partner_payment_reference; points must be absent or null. The API validates the request against the Partner's stored method and returns 400 invalid_request if required method-specific fields are missing or forbidden fields are present.
partner_event_id
string
required

Stable contribution idempotency and recovery key supplied by the partner. Distinct from partner_order_ref.

Required string length: 8 - 128
Pattern: ^[A-Za-z0-9._:-]+$
Example:

"evt_contrib_01HZX5A1B2C3D4E5F6G7H8J9"

partner_order_ref
string
required

Stable non-PII partner order correlation reference. Enforces one confirmed contribution per partner order within partner and environment. Must not contain direct personal data.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9._:-]+$
Example:

"ord_9f3c2a71"

points
integer<int64>

Loyalty points contributed. Required when Partner contribution_method is loyalty_points. Must be absent or null for direct_contribution Partners.

Required range: x >= 1
Example:

500

amount_halalas
integer<int64>

Direct Contribution amount in Halalas. Required when Partner contribution_method is direct_contribution. Must be absent or null for loyalty_points Partners.

Required range: x >= 100
Example:

500

partner_payment_reference
string

Partner-supplied payment reference for Direct Contribution. Required when Partner contribution_method is direct_contribution. Must be unique within Partner and Environment. Must be absent or null for loyalty_points Partners.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9._:-]+$
Example:

"pay_ref_abc123xyz"

calculation_id
string

Optional Delivery Emissions estimate identifier for association. Only valid when Partner has delivery_emissions_enabled: true. Missing, invalid, or capability- disabled values must not invalidate an otherwise valid contribution.

Required string length: 8 - 128
Pattern: ^[A-Za-z0-9._:-]+$
Example:

"calc_01HZX4K9M2Q8R7N6P5T4V3W2X1"

opaque_customer_ref
string

Optional opaque partner-internal customer reference. Must not contain email, phone, full name, national identifier, or other direct personal data.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9._:-]+$
Example:

"cust_ref_8a1b2c3d"

Response

Idempotent replay returned the original contribution and association outcome.

contribution
object
required

Method-discriminated contribution record. Loyalty contributions include points and point_conversion_version. Direct contributions include amount_halalas and partner_payment_reference. monetary_value_halalas is the canonical amount in Halalas.

association
object
required

Closed association outcomes. associated includes link. rejected includes rejection. not_requested includes neither.

request
object
required