Status: Stable error envelope.
Note: Specific business errors may expand over time, but existing codes should remain additive in v1.
Errors
Standard envelope
All platform API errors use this shape:
{
"ok": false,
"error": {
"code": "invalid_signature",
"message": "Request signature could not be verified",
"retryable": false
}
}
Optional details may be present:
{
"ok": false,
"error": {
"code": "duplicate_idempotency_conflict",
"message": "Idempotency key was reused with a different payload.",
"retryable": false,
"details": {
"idempotencyKey": "settle-txn-abc123"
}
}
}
Common auth-layer codes
unauthorizedinvalid_signaturestale_timestampinvalid_request
Examples include:
- missing or inactive credential
- wrong key for the API environment
clubIdsupplied and not matching the authenticated club key- malformed timestamp or signature header
Common business-layer codes
cardholder_not_foundpartner_not_foundredemption_not_foundunsupported_currencypartner_configuration_incompletepartner_funding_restrictedinsufficient_partner_points_poolinsufficient_points_balanceinsufficient_partner_cash_capacitymissing_payout_referenceduplicate_idempotency_conflictduplicate_eventexternal_transaction_conflictexternal_request_conflictinvalid_transaction_amountpoints_calculation_zerooriginal_earn_not_foundinvalid_original_earnalready_reversedmanual_review_requiredinvalid_redemption_pointsinvalid_redemption_valueminimum_redemption
Endpoint-specific notes
Member create/update
partner_not_found: the resolved club record no longer exists.invalid_request: the member payload is missing required fields or contains invalid email data.
Settled transactions
invalid_transaction_amount:transaction.amountMinormust be greater than zero.points_calculation_zero: the configured earn rate and transaction amount produced no points.external_transaction_conflict: the sameexternalTransactionIdwas used with a different payload.
Reversals
original_earn_not_found: no settled earn award exists for the suppliedexternalTransactionId.already_reversed: the settled earn has already been reversed.manual_review_required: the original points are no longer fully available to reverse.
Redemptions
minimum_redemption: the calculated cash value is below the platform minimum.missing_payout_reference: the member does not yet have payout details ready.insufficient_partner_cash_capacity: the club does not have enough available funded cash capacity.
Typical HTTP mapping
400malformed request or path/header issues401auth or signature failures404member or redemption not found409duplicate/conflict state422business-rule validation failure
Retry guidance
Safe to retry:
- same
POSTwith same body and same idempotency key after a transient transport failure
Do not retry without fixing input:
- signature errors
- currency mismatch
- missing payout reference
- insufficient points
- club configuration errors
Escalate for ops review:
manual_review_required- repeated payout failures after reservation
