---
title: "Redeem cashback"
method: POST
path: "/v2/cashback/redemptions"
---

# Redeem cashback

`POST /v2/cashback/redemptions`

## Request

- Base URL: `https://api.slash.com`
- URL: `https://api.slash.com/v2/cashback/redemptions`
- Auth: API key in header `X-API-Key`

Pay cashback to one of your accounts or to a recipient. See [Redeeming cashback](/docs/v2/cashback/redeeming).

## Headers

- `X-Idempotency-Key` string, required

## Request body

- CashbackRedemptionCreate
  - `accountId` string, required: The account whose cashback to redeem, with the `sa_group_` prefix.
  - `amount` UsdMoney, required: A positive USD amount expressed in cents.
    - `amount` integer, required: Amount in cents. For example, `1250` represents USD 12.50.
    - `currency` 'USD', required
  - `destination` union, required: Where to send the cashback.
    - CashbackRedemptionDestinationAccount: One of the legal entity's accounts. The cashback lands in its primary virtual account.
      - `type` 'account', required
      - `accountId` string, required: Account id with the `sa_group_` prefix.
    - CashbackRedemptionDestinationRecipient: A recipient's bank account, paid by ACH.
      - `type` 'recipient', required
      - `destinationId` string, required: Destination id with the `le_contact_destination_` prefix. See [Recipients and destinations](/docs/v2/concepts/recipients-and-destinations).

## Response `200`

The redemption.

- CashbackRedemption: Cashback paid out of an account's balance.
  - `id` string, required: Redemption id with the `transfer_intent_` prefix.
  - `status` 'pending' | 'completed' | 'returned' | 'failed', required: `returned` when the recipient's bank sends the ACH back; the cashback goes back to the balance.
  - `accountId` string, required: The account whose cashback was redeemed.
  - `amount` Money, required: A signed monetary amount expressed in minor units.
    - `amount` integer, required: Amount in the currency's minor units.
    - `currency` string, required: Uppercase ISO 4217 currency code.
  - `destination` union, required: Where the cashback went.
    - CashbackRedemptionDestinationAccount: One of the legal entity's accounts. The cashback lands in its primary virtual account.
      - `type` 'account', required
      - `accountId` string, required: Account id with the `sa_group_` prefix.
    - CashbackRedemptionDestinationRecipient: A recipient's bank account, paid by ACH.
      - `type` 'recipient', required
      - `destinationId` string, required: Destination id with the `le_contact_destination_` prefix. See [Recipients and destinations](/docs/v2/concepts/recipients-and-destinations).
    - CashbackRedemptionDestinationBankAccount: A bank account linked in Slash. Cashback is redeemed to linked bank accounts in Slash.
      - `type` 'bank_account', required
      - `bankAccountId` string, required: Linked bank account id with the `ub_` prefix.
  - `createdAt` string, date-time, required
  - `completedAt` string, date-time: When the cashback was paid out.

## Other responses

- `400`: - `destination_not_allowed` — The destination can’t receive this account’s cashback: a Global USD account’s cashback only goes back to itself, some accounts can’t receive cashback, and recipients must accept ACH. - `invalid_request (request shape)` — The body, query, or headers failed validation, or a required header is missing. `details` has one entry per failing location, keyed by JSON pointer or header name.
- `401`: - `unauthorized` — API key authentication is missing or invalid.
- `403`: - `forbidden` — The credential is not permitted to perform this action on the resource. When the resource is a field of the request, `details` names that `field` and the `id` it received. - `ip_allowlist_required` — The legal entity does not enforce an IP allowlist. Redeeming cashback requires one, and the request must come from an allowlisted IP. - `forbidden (legal entity)` — The credential is not permitted to act for the selected legal entity. - `not_available` — Public API v2 is not yet available. Use [Public API v1](https://docs.slash.com/introduction) in the meantime. - `user_api_key_required` — The API key is scoped to a legal entity rather than a user. Every v2 request needs a user API key, created under Settings → API keys in the Slash dashboard, together with the `x-legal-entity` header.
- `404`: - `not_found` — No resource matches the identifier. When the identifier is a field of the request, `details` names that `field` and the `id` it received.
- `409`: - `account_locked` — A locked account can’t receive cashback. - `cashback_unavailable` — The charge card is past due, so its cashback is withheld until the account is brought current. - `destination_archived` — The destination was archived and can no longer receive transfers. - `destination_not_active` — The recipient’s destination is pending review or disabled, as its `status` shows. - `insufficient_cashback` — The amount is more than the account’s available cashback. Nothing was redeemed; lower the amount and retry. - `insufficient_funds` — The source account does not hold enough to cover this transfer. Nothing was moved; fund the account or lower the amount and retry. - `conflict (idempotency key reused)` — A consumed `X-Idempotency-Key` was reused; the original response is not replayed.
- `429`: The request exceeded the applicable rate limit. The response body is plain text, not the error object; clients must not depend on its wording.
- `500`: - `internal` — Slash could not complete the request. Quote `referenceId` when contacting Slash support.

## Changes

- **2026-10-30** `8e477e90229c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/slashfi/apis/slash-public-api/changes/v2/cashback/redemptions/post.md)

---

[API](https://skmtc.dev/slashfi/apis/slash-public-api.md) - [All operations](https://skmtc.dev/slashfi/apis/slash-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/slashfi/apis/slash-public-api/revisions/eaed2d63c9e2?raw)
