Reward Networks Reward Networks Developer Hub

Void a transaction

Reverse an earn you committed — a refunded sale, a mis-scan, a wrong amount. The customer's points and stamps are clawed back with compensating ledger entries; nothing is deleted.

Scope required: transactions.write.

curl -X POST "https://staging.app.rewards.network/api/partner/v1/transactions/9901/void" \
  -H "Authorization: Bearer rn_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Refund #R-2291" }'

transactionId is data.transaction.id from the commit response (or txn_id in the history feed). reason is optional, max 255 characters, stored for the merchant's records.

{
  "success": true,
  "message": "Transaction voided successfully",
  "data": {
    "transaction": { "id": 9901, "transaction_type": "earn", "voided_at": "2026-09-22T12:03:44.000000Z", "void_reason": "Refund #R-2291", "...": "..." },
    "reversal": { "id": 9915, "transaction_type": "void", "reverses_txn_id": 9901, "points_delta": -43, "stamps_delta": -1, "...": "..." },
    "points_reversed": 43,
    "stamps_reversed": 1
  },
  "is_duplicate": false
}

Rules

Rule Otherwise
Only earn transactions (transaction_type: earn). Redemptions cannot be voided. 422
Only transactions committed through your own developer account's keys. 403
Only within 72 hours of the commit. 422
Only while the customer still holds the earned points/stamps. If they already spent some, the void is refused rather than driving the balance negative. 409
The transaction must belong to the key's merchant. 404

Voiding twice is safe: the second call returns the original result with "is_duplicate": true.

What is reversed

  • Points and stamps from the original earn, as negative VOID ledger entries.
  • The customer's visit count and total spending at the merchant.
  • Nothing about a voucher or reward that was redeemed on the same sale — a completed redemption stays completed.

Webhook

Fires transaction.voided with transaction_id, reversal_transaction_id, points_reversed, stamps_reversed. Webhooks.