# `invalid_request`

**Status 400.** The request could not be understood.

## What it means

Something in the request is not what this call takes: a parameter, a header or a field of the body. When one thing is at fault, `param` names it, and `detail` says what it should be. Nothing was changed.

## What to do

Fix what `param` names, then send the request again.

## Safe to send again?

Not as it is. Change what the answer points to, then send the request.

## What else the answer carries

- `param`: The field, header or query parameter at fault, when there is exactly one.
- `max_points`: On `delta_points`: the largest change allowed, either way.
- `max_chars`: On `reason`: the longest reason allowed.
- `reason`: With `confirmation_invalid`: `expired` (preview again), `wrong_request` (the key, member, body or Idempotency-Key differ from the preview) or `malformed` (not a confirmation this API issued). With `invalid_request` on a webhook `url`: what is wrong with the address, as listed under `WebhookEndpointRequest`.

## Where you can meet it

- [`POST /stores/{store_key}/programme`](https://matrixrewards.co.uk/docs/api/2026-10/stores.md#updateProgramme): Change the earn rate, the bonuses, what a point is worth, referrals, spending any amount, the time zone, the ways to earn, or when points expire
- [`POST /stores/{store_key}/programme/rewards`](https://matrixrewards.co.uk/docs/api/2026-10/stores.md#addReward): Add a reward shoppers can spend points on
- [`POST /stores/{store_key}/programme/rewards/{reward_id}`](https://matrixrewards.co.uk/docs/api/2026-10/stores.md#changeReward): Change a reward's cost, value, minimum order or label
- [`POST /stores/{store_key}/programme/rewards/{reward_id}/remove`](https://matrixrewards.co.uk/docs/api/2026-10/stores.md#removeReward): Remove a reward
- [`POST /stores/{store_key}/programme/offers`](https://matrixrewards.co.uk/docs/api/2026-10/stores.md#addOffer): Add an offer: a campaign, a product offer or a channel offer
- [`POST /stores/{store_key}/programme/offers/{offer_id}`](https://matrixrewards.co.uk/docs/api/2026-10/stores.md#changeOffer): Change an offer
- [`POST /stores/{store_key}/programme/offers/{offer_id}/remove`](https://matrixrewards.co.uk/docs/api/2026-10/stores.md#removeOffer): Remove an offer
- [`POST /stores/{store_key}/design`](https://matrixrewards.co.uk/docs/api/2026-10/stores.md#updateDesign): Change the design: colours, words, the panel and product-line look, the account page layout, the terms link
- [`GET /members`](https://matrixrewards.co.uk/docs/api/2026-10/members.md#listMembers): Shoppers on this account
- [`POST /members/{member_key}/adjustments`](https://matrixrewards.co.uk/docs/api/2026-10/members.md#adjustMemberPoints): Add points to a member's balance, or take them away
- [`POST /members/{member_key}/codes/void`](https://matrixrewards.co.uk/docs/api/2026-10/members.md#cancelMemberCode): Cancel a reward code and give the member back its points
- [`GET /ledger`](https://matrixrewards.co.uk/docs/api/2026-10/reports.md#listLedger): Every points movement on this account, newest first
- [`GET /reports/settlement`](https://matrixrewards.co.uk/docs/api/2026-10/reports.md#getSettlementReport): Points earned at one store and spent at another, inside a window
- [`GET /audit-log`](https://matrixrewards.co.uk/docs/api/2026-10/log.md#listAuditLog): What every key changed, and what it was shown
- [`POST /webhooks`](https://matrixrewards.co.uk/docs/api/2026-10/webhooks.md#createWebhookEndpoint): Send points movements to an https endpoint
- [`POST /stores/{store_key}/images`](https://matrixrewards.co.uk/docs/api/2026-10/stores.md#uploadBrandImage): Upload a picture for the store's branding (a logo, a square logo, a cover)

Every code, and the shape of an error answer: [Errors](https://matrixrewards.co.uk/docs/errors.md).

---

Page: https://matrixrewards.co.uk/docs/errors/invalid_request
Contract: 2026-10 sha256:35af153960028890fea5738799f5a71e535e1eea4dd3f6b8d5f50b37f02363da
