Skip to main content

Payment Request Invalid

payment_request_invalid400

Billing · Billing endpoints

The payment provider (Dodo) rejected a billing request as invalid. Your plan was not changed and you were not charged.

What this means​

A dashboard billing action (subscribe, upgrade, upgrade preview, card update or payment history) reached Dodo, our payment provider, and Dodo answered HTTP 400 or 422: it considered the request invalid. We return HTTP 400 with this code. Nothing on your Asterwise account changed.

When you'll see this​

  • Dodo rejected the details we sent for a checkout, plan change or card update.
  • Dodo rejected the request for your payment history.

Because the request is built by our server from your account and the plan you picked, this almost always means something on our side needs fixing, not something you typed.

Learn more about how this works

Dodo's answer to every billing call is mapped to one code: HTTP 400 or 422 from Dodo is this code, 401 or any 5xx is payment_provider_unavailable, and any other failure is order_creation_failed. Dodo rejects an invalid request before any charge, so no money moves.

Example response​

{
"success": false,
"error": "payment_request_invalid",
"message": "Payment provider rejected the request as invalid.",
"details": [],
"retry_after": null,
"doc_url": "https://docs.asterwise.com/reference/errors/payment_request_invalid/",
"request_id": "req_01HXYZABCDEFGH",
"timestamp": "2026-05-25T12:34:56Z"
}
NEW TO APIS?
Quick fix
  1. Reload asterwise.com/dashboard and try once more.
  2. If it fails again, email [email protected] with the request_id from the error. Retrying the same action will not help until we fix the cause.
PRODUCTION ENGINEER
Recovery pattern

Only the dashboard receives this error: billing actions need a dashboard sign-in, and an API key sent to the billing endpoints gets session_required instead. Code that calls the API with a key never sees payment_request_invalid.

Production handler​

No code example provided.

Avoid this error by​

  • There is nothing to change on your side; send the request_id to support so the cause can be fixed.