Using the API
Errors
Every failure answers with an HTTP status of 400 or above and one error object. Branch on its code. This page has an entry for each of the 180 codes the API answers with, and it is where every doc_url points.
The error object
An order over a live business's tier limit, as the API answers it:
JSON
{
"error": {
"type": "limit_error",
"code": "tier_order_limit",
"message": "This order is US$1,250.00. The Unverified tier allows US$1,000.00 per order. Verify the business to raise the limit.",
"limit": "single_order",
"doc_url": "https://merchant.orrerie.com/docs/errors#tier_order_limit",
"request_id": "req_c454pdhvpfr55c7br4jvzqep"
}
}limit names the limit that was reached: single_order (US$1,000 on the Unverified tier, US$50,000 for a Verified business) or first_orders (an Unverified business's first three paid orders may be at most US$250 each). Tier limits hold in live mode; a test order is not held to them.
| Field | Always present | Meaning |
|---|---|---|
type | Yes | The family. One of invalid_request_error, authentication_error, permission_error, not_found_error, idempotency_error, state_error, limit_error, rate_limit_error, provider_error, api_error. |
code | Yes | The exact reason, from the table below. Branch on this. |
message | Yes | A sentence for a developer. It may be reworded at any time: never parse it, never show it to a payer. |
param | When one parameter is at fault | Dotted path: line_items[0].quantity. |
doc_url | Yes | https://. |
request_id | Yes | Same as the Orrerie-Request-Id header. |
| extra fields | Per code | For example limit, available, needed, usable_at, retry_after, reason, available_assets, refundable, scope, instruction, errors[] (batch rows). Each is named in the table. |
A rail failure shows the rule that nothing is ever switched silently. Nothing was created, and the payer can choose one of available_assets:
JSON
{
"error": {
"type": "provider_error",
"code": "rail_unavailable",
"message": "Relay cannot take USDT on TRON right now (relay_unavailable: the routing service did not answer). Nothing was created and nothing was switched. The payer can choose one of available_assets.",
"param": "asset",
"rail": "relay",
"reason": "relay_unavailable",
"available_assets": [
"ethereum:usdc",
"base:usdc",
"bitcoin:btc",
"litecoin:ltc"
],
"doc_url": "https://merchant.orrerie.com/docs/errors#rail_unavailable",
"request_id": "req_c454pdhvpfr55c7br4jvzqep"
}
}How to react, by family
| Family | HTTP | Retry? |
|---|---|---|
invalid_request_error, not_found_error | 400, 404, 405, 413, 415 | No. Fix the request. |
authentication_error, permission_error | 401, 403 | No. Fix the key, its scopes, or do the action in the dashboard. |
idempotency_error | 400, 409, 422 | 409: yes, after Retry-After. Others: no. |
state_error | 409 | Not as is. Read the object, then decide. |
limit_error | 403 | Not until the limit moves (time passes, or the merchant verifies). |
rate_limit_error | 429 | Yes, after Retry-After. |
provider_error | 502, 503 | Yes, with backoff and the same idempotency key. For rail_unavailable, offer the payer available_assets instead. |
api_error | 500, 503, 504 | Yes, with backoff (1 s, 2 s, 4 s, up to 5 tries) and the same idempotency key. |
Every error code
Each code below is an anchor: https:// lands on order_not_open. These are the 103 codes of the API's design; the codes this release adds follow them.
authentication_error
Retry? No. Fix the key, its scopes, or do the action in the dashboard.
| Code | HTTP | Meaning |
|---|---|---|
api_key_missing | 401 | No Authorization: Bearer header. |
api_key_invalid | 401 | The key is not one Orrerie issued, or is malformed. |
api_key_revoked | 401 | The key was revoked or its roll window ended. |
api_key_expired | 401 | The key passed its expires_at. |
secret_key_in_browser | 403 | A secret key arrived with an Origin header. Secret keys are for servers; the key is flagged in the dashboard and the Owners are emailed. |
permission_error
Retry? No. Fix the key, its scopes, or do the action in the dashboard.
| Code | HTTP | Meaning |
|---|---|---|
ip_not_allowed | 403 | The caller's IP address is not in the key's allowed_ips. |
insufficient_scope | 403 | The key lacks the scope the endpoint needs; error.scope names it. |
publishable_key_not_allowed | 403 | The endpoint, or a parameter sent, cannot be used with a pk_ key. |
passkey_approval_required | 403 | The action can only be done by a signed-in member in the dashboard (settlement asset, key-holding roles, approvals). No API key can do it. |
merchant_restricted | 403 | The merchant is restricted: new orders, payouts to others and conversions are off. Reads and withdrawals to saved addresses work. |
test_helper_in_live_mode | 403 | A /v1/test/... endpoint was called with a live key. |
destination_blocked | 403 | The destination address is on a sanctions list. The request is refused and recorded. |
limit_error
Retry? Not until the limit moves (time passes, or the merchant verifies).
| Code | HTTP | Meaning |
|---|---|---|
verification_required | 403 | The feature or value needs the Verified tier. |
tier_order_limit | 403 | error.limit is single_order: over the tier's single-order maximum (US$1,000 Unverified, US$50,000 Verified). Or first_orders: an Unverified merchant's first three paid orders may be at most US$250 each ("Your first three orders can be up to US$250 each."). |
own_limit_reached | 403 | A withdrawal to the merchant's own saved address would pass the merchant's own safety limit for the last 24 hours (default US$10,000 Unverified, US$100,000 Verified). |
tier_volume_limit | 403 | error.window is 30_days: paid orders and unmatched payments you kept in the last 30 days, plus this one, would pass the tier limit (US$5,000 / US$250,000). Or lifetime: an Unverified merchant passed US$20,000 of such takings in total and must verify to create new orders. A reverted payment is taken back out. |
tier_open_orders_limit | 403 | 50 (Unverified) or 2,000 (Verified) unpaid orders are open. Cancel or let some expire. |
payout_daily_limit_reached | 403 | Payouts to others in the last 24 hours (payouts, split legs and refunds to a saved address) plus this one would pass US$1,000 (Unverified) or US$100,000 (Verified). Withdrawals to own saved addresses have no tier limit. |
payout_batch_not_allowed | 403 | Batches need the Verified tier. |
member_limit_reached | 403 | 2 (Unverified) or 25 (Verified) members, counting pending invitations. |
key_limit_reached | 403 | 2 (Unverified) or 20 (Verified) live keys. Test keys: 20 in either tier. |
webhook_endpoint_limit_reached | 403 | 1 (Unverified) or 10 (Verified) endpoints per mode. |
invalid_request_error
Retry? No. Fix the request.
| Code | HTTP | Meaning |
|---|---|---|
invalid_json | 400 | The body is not valid JSON, or not a JSON object. |
unsupported_media_type | 415 | The body is not application/json (or multipart/form-data for a file upload). |
request_too_large | 413 | The body is over 256 KB (5 MB for a file upload). |
method_not_allowed | 405 | The path exists but not with this method. |
route_not_found | 404 | No such path. |
version_unsupported | 400 | The Orrerie-Version header names a version that does not exist or was retired. |
parameter_missing | 400 | A required parameter is absent; error.param names it. |
parameter_invalid | 400 | A parameter has the wrong type, format or range; error.param names it. |
parameter_unknown | 400 | A parameter the endpoint does not take was sent. Unknown parameters are refused, not ignored, so that a typo cannot silently drop a field. |
parameters_exclusive | 400 | Two parameters that cannot be combined were sent (for example amount and line_items). |
metadata_invalid | 400 | More than 50 keys, a key over 40 characters, a value over 500 characters, or a non-string value. |
url_invalid | 400 | Not https, has credentials, is over 2,048 characters, or (webhooks) resolves to a private address. |
amount_invalid | 400 | Not a decimal string, negative, zero, or more decimal places than the currency has. |
amount_below_minimum | 400 | Below the minimum: US$1.00 for an order payable on the relay rail, the network dust limit on the direct rail or for a payout. |
currency_unsupported | 400 | Not a pricing currency the platform has a rate for. |
asset_unsupported | 400 | Not an asset id from GET /v1/assets, or not usable for this purpose. |
asset_not_enabled | 400 | The asset exists but is not switched on for this merchant. |
settlement_invalid | 400 | settle names something that cannot be a settlement asset for this merchant. |
destination_invalid | 400 | The address fails the network's format or checksum, or does not match the asset's network. |
event_type_unknown | 400 | An entry of enabled_events is not an event type. |
file_type_not_allowed | 400 | The upload is not PNG, JPEG, WebP or PDF, or its content does not match its type. |
file_too_large | 413 | The upload is over 5 MB. |
simulation_invalid | 400 | The test scenario cannot apply to the object in its present state. |
livemode_mismatch | 400 | An id of the other mode was used: a test key naming a live object or the reverse. |
rail_not_allowed | 400 | The rail is off for this order, merchant or asset (for example relay for Litecoin). |
split_rule_invalid | 400 | Shares total more than 100%, a share is not above zero, a saved address is not active or not of kind other, or the scope object does not exist. |
payout_batch_too_large | 400 | More than 200 rows, or more than 50 rows sent from one EVM network. |
export_too_large | 400 | The filters match more than 500,000 rows. Narrow the dates. |
not_found_error
Retry? No. Fix the request.
| Code | HTTP | Meaning |
|---|---|---|
resource_missing | 404 | No object with that id belongs to this merchant in this mode. |
idempotency_error
Retry? 409: yes, after Retry-After. Others: no.
| Code | HTTP | Meaning |
|---|---|---|
idempotency_key_required | 400 | The endpoint moves money on approval (refunds, payouts, batches, conversions, saved addresses) and needs an Idempotency-Key. |
idempotency_key_invalid | 400 | The key is empty, over 255 characters or has characters outside printable ASCII. |
idempotency_key_reused | 422 | The key was already used with a different method, path or body. |
request_in_progress | 409 | The first request with this key is still running. Retry after Retry-After seconds. |
state_error
Retry? Not as is. Read the object, then decide.
| Code | HTTP | Meaning |
|---|---|---|
order_not_open | 409 | The order is not open (or underpaid, for a top-up instruction). |
order_not_payable | 409 | The order is cancelled, or already paid/overpaid. |
order_not_underpaid | 409 | Only an underpaid order can be accepted as paid. |
order_not_overpaid | 409 | Only an overpaid order with an unresolved excess has an overpayment to keep. |
order_not_refundable | 409 | The order has nothing paid, or everything paid is already refunded or in a refund request. |
instruction_in_flight | 409 | A payment for this order is on its way (an instruction is detected). Wait for it to settle, then refund if needed. |
order_has_payment | 409 | The order has a payment, so it cannot be cancelled or voided. Refund it instead. |
instruction_limit_reached | 409 | The order has had 20 payment instructions, the most allowed. Create a new order. |
money_out_not_draft | 409 | Only a draft whose approval lapsed can be submitted again. |
instruction_live | 409 | The order already has a live instruction on another asset; error.instruction is its id. |
session_not_open | 409 | The checkout session is completed or expired. |
customer_required | 409 | The action needs the order to have a customer. |
customer_email_required | 409 | The customer or order has no email address. |
customer_has_active_subscription | 409 | Cancel the customer's subscriptions first. |
member_exists | 409 | That email is already a member or has a pending invitation. |
invoice_not_draft | 409 | Only a draft invoice can be finalized or deleted. |
invoice_not_open | 409 | Only an open invoice can be sent or voided. |
invoice_not_editable | 409 | The field cannot change in the invoice's present state. |
price_not_recurring | 409 | A subscription item names a one_time price, or items mix intervals or currencies. |
price_inactive | 409 | The price or its product is archived. |
payment_link_inactive | 409 | The link is switched off, used up or expired. |
subscription_not_active | 409 | Only an active or past_due subscription can be paused. |
subscription_not_paused | 409 | Only a paused subscription can be resumed. |
payment_not_unmatched | 409 | The payment already belongs to an order. |
refund_amount_exceeds_refundable | 409 | More than amount_paid minus refunds confirmed or in request; error.refundable gives the figure. |
money_out_not_cancellable | 409 | The request is signed or later. A signed transaction cannot be withdrawn. |
saved_address_not_usable | 409 | The saved address is awaiting_approval, waiting (error.usable_at says until when) or removed. |
insufficient_balance | 409 | The available balance (amount minus reserved) of the source asset is too low; error.available gives it. |
fee_account_low | 409 | The fee account cannot pay the network fee. error.needed says how much of which coin on which network must be held, for example {"asset": "tron:. |
conversion_no_route | 409 | The chosen venue has no route for this pair or amount now. error.offers_url lists what every venue says. |
quote_expired | 409 | The quote behind the request passed its 15 minutes. |
webhook_endpoint_disabled | 409 | Re-enable the endpoint before resending to it. |
event_expired | 409 | The event is older than 30 days. |
file_in_use | 409 | The file is a logo, product image or attachment in use, or was generated by the platform. |
wallet_not_activated | 409 | The order would settle in, or be paid directly to, a Solana or TRON wallet that is not yet activated. Until activation that wallet is behind one key, so it is not used. error.wallet is its id; activate it in the dashboard. |
refund_wallet_not_protected | 409 | The payer chose Solana or TRON, the merchant's wallet there is not activated, and it already holds more than its cap (US$20 on Solana, the value of 100 TRX on TRON). No further instruction with that payer network is issued until the wallet is activated. |
browser_key_backup_required | 409 | Live mode only: the merchant has not saved its browser key backup, so live orders cannot be created yet. |
rate_limit_error
Retry? Yes, after Retry-After.
| Code | HTTP | Meaning |
|---|---|---|
export_limit_reached | 429 | More than 10 exports in an hour. |
email_limit_reached | 429 | More than 5 sends of the same invoice or receipt in 24 hours. |
rate_limit_exceeded | 429 | Too many requests. Wait Retry-After seconds. |
provider_error
Retry? Yes, with backoff and the same idempotency key. For rail_unavailable, offer the payer available_assets instead.
| Code | HTTP | Meaning |
|---|---|---|
screening_unavailable | 503 | The sanctions check could not be made. A failed check is never treated as clean; retry later. |
rail_unavailable | 503 | The rail cannot be used now. error.reason is the exact refusal: relay_unavailable, relay_no_route, relay_amount_too_low, relay_low_liquidity, relay_paused, route_fee_over_cap, provider_route_mismatch, provider_, refund_, recipient_not_attested, or asset_not_covered; error.available_assets lists what can be used instead. Nothing was created at the provider and nothing was switched. |
price_unavailable | 503 | No fresh price for the asset or currency. A stale price is never used for a quote. |
provider_error | 502 | An outside service answered wrongly. No provider record was left half-made; safe to retry with the same idempotency key. |
api_error
Retry? Yes, with backoff (1 s, 2 s, 4 s, up to 5 tries) and the same idempotency key.
| Code | HTTP | Meaning |
|---|---|---|
merchant_worker_waking | 503 | The merchant's own server process was asleep and is starting. Retry after Retry-After (2 seconds). |
outcome_unknown | 504 | The request may or may not have taken effect (the engine's instruction_unknown for a payment instruction). Retry with the same idempotency key; never with a new one. For an instruction: show the payer nothing until it resolves. |
service_unavailable | 503 | The API is briefly unavailable (deploy or overload). Retry with backoff. |
internal_error | 500 | A fault on Orrerie's side. Quote request_id to support. |
Codes this release adds
The API also answers with these 77 codes. A new code is not a breaking change: a program that meets a code it does not know reacts by its type and HTTP status, as the table by family says. Many of them come from steps a signed-in member takes in the dashboard, such as approving money out or moving a payment to another order; the API answers with the same code when a call meets the same state.
invalid_request_error
Retry? No. Fix the request.
| Code | HTTP | Meaning |
|---|---|---|
https_required | 400 | The request did not arrive over HTTPS. Nothing was done; a key sent in the clear should be rolled. |
cookie_not_allowed | 400 | The request carried a cookie. This host takes no cookie. Send the key in the Authorization header only. |
accent_too_dark | 400 | The accent colour does not reach a contrast of 4.5:1 against the checkout's dark field, or no text colour reads on it at 4.5:1; see reason. Choose a lighter colour. reason is field (the dark field) or ink (the text on it); the dashboard checks the same rule while you type. |
accepted_assets_empty | 400 | The change would switch off every way to pay. Keep at least one accepted asset switched on. |
batch_network_required | 400 | The rows of the batch that wait for approval are on more than one network, so the network to approve must be named. |
payout_batch_invalid | 400 | A payout batch has rows that cannot be paid. errors lists each bad row with its own code, and nothing of the batch was created. |
target_same_order | 400 | A payment can be moved only to another order, never to the order it is on. |
authentication_error
Retry? No. Fix the key, its scopes, or do the action in the dashboard.
| Code | HTTP | Meaning |
|---|---|---|
secret_scanning_signature_invalid | 401 | Answered only on POST /, which GitHub's secret scanning partner programme calls when it finds an Orrerie secret key in public code. The report is not signed by a GitHub key Orrerie holds, so nothing was changed. Your own integration never calls this address. |
permission_error
Retry? No. Fix the key, its scopes, or do the action in the dashboard.
| Code | HTTP | Meaning |
|---|---|---|
payer_email_off | 403 | Orrerie does not email payers in this release, so nothing was sent. Give the customer the link yourself; retrying does not change this. Answered by POST /, POST / and an invoice's finalize with send: true. |
merchant_closing | 403 | The business is closing: new orders, payment links and invoices are off, and money goes out only to its own saved addresses. Reads, exports and withdrawals to saved addresses work until it closes. |
app_pay_not_allowed | 403 | The business does not take payment through the Orrerie app, or the app did not say which account pays. |
link_secret_invalid | 403 | The secret in a single-use link does not match: the link was changed, or it is not the one that was sent. |
limit_error
Retry? Not until the limit moves (time passes, or the merchant verifies).
| Code | HTTP | Meaning |
|---|---|---|
file_limit_reached | 403 | The business has 500 stored pictures, the most it may have; see limit. Delete one it no longer uses first. A picture is deleted with DELETE /v1/files/{id}; uploading the same picture again answers the file already stored. |
product_limit_reached | 403 | The account has 500 products that are not archived, or this product has 20 prices that are not archived; see reason and limit. Archive one first. |
state_error
Retry? Not as is. Read the object, then decide.
| Code | HTTP | Meaning |
|---|---|---|
support_email_required | 409 | The business has no support email yet, and no order can be created without one, in test mode too. A member adds it in the dashboard under Settings, Business profile, Support email; then retry. |
link_open_orders_limit | 409 | The payment link has 32 unpaid orders open, or has taken 240 orders in 24 hours, the most allowed. Open orders expire by themselves; retry later. |
asset_not_available | 409 | The asset cannot be switched on, because no rail takes it now. The dashboard shows it as Not available yet. |
order_has_instruction | 409 | The order already has payment details or a payment, so its amount or its periods can no longer be changed. |
subscription_ended | 409 | The subscription has ended, ends at the close of this period, or has no period left, so this change can no longer be made. |
link_used | 410 | The single-use link was already used. |
link_expired | 410 | The single-use link has expired. Ask for a new one. |
check_window_closed | 409 | An address can be checked again for 12 months after its payment instruction expired, and that time has passed. |
rail_not_direct | 409 | For this order the asset is not paid on the direct rail; rail names the rail it is paid on. Nothing was created. |
rail_not_relay | 409 | For this order the asset is not paid on the relay rail; rail names the rail it is paid on. Nothing was created. |
wallet_not_active | 409 | The wallet this needs is not in force: the business has not made its wallets yet, or the wallet on that network is not the one the request was made with. Nothing was done. |
wallet_needs_review | 409 | The wallet holds less than Orrerie's records show, because money left it that nothing recorded. Money out from it waits until an Owner has reviewed the wallet in the dashboard. |
owner_change_pending | 409 | A change of the business's keys is waiting or finishing, so this cannot be approved now; reason names the case. Payouts to anyone else wait until the change has ended. Withdrawals to the business's own saved addresses still go ahead. |
retention_hold | 409 | A legal hold keeps this business's records, so nothing can be erased or merged while it lasts. |
refund_open | 409 | The order has a refund that has not ended, so the payer's data cannot be erased yet. Retry once the refund has ended. |
screening_pending | 409 | A live payment of the order is still waiting for its payer's screening, so the payer's data cannot be erased yet. Retry once the check has a result. |
balance_changed | 409 | The balance moved after the amount was worked out, so the amount no longer holds. Ask again for a fresh one. |
payment_not_confirmed | 409 | The payment is still confirming. It can be sent back once it is confirmed. |
payer_wallet_unknown | 409 | The refund was asked to go back to the payer's Orrerie wallet, but the order has no record of one on this network, or the refund is more than that wallet paid. Refund to an address, or by a claim link, instead. |
refund_source_not_supported | 409 | Money that Relay returned can be paid back from another balance only from the order's settlement asset, and not when the order keeps what was paid. |
refund_rate_basis_unavailable | 409 | The order's own rate exists only for an asset the order was settled in. From this balance a refund can be paid only at today's value: send rate_basis today. |
refund_not_approvable_yet | 409 | The refund goes to an address that was not saved before, so it waits 24 hours after the Owners were told; approvable_at says when it can be approved. |
waiting_notice | 409 | The wait has not started, because the notice email to the Owners is not out yet. It can be approved once approvable_at is set and reached. |
refund_not_awaiting_address | 409 | The refund no longer waits for the payer's address; state says where it is. |
refund_not_routed | 409 | The refund is not sent through Relay, so it has no route to read or renew. |
payout_not_routed | 409 | The payout is not sent through Relay, so it has no route to read or renew. |
payout_in_batch | 409 | The payout is a row of a batch. It is approved with its batch, never alone. |
split_leg_held | 409 | This share of a split payment is held, so it cannot be approved until the hold ends. |
split_order_not_paid | 409 | The order this share of a split payment comes from is no longer paid, so the share cannot be paid out. |
approval_document_unsupported | 409 | This release cannot prepare the approval for what was asked, so nothing is offered for signing; reason says why. Ask for it in parts. |
money_out_not_signable | 409 | The refund, payout, conversion or sweep no longer waits for approval, so it cannot be signed; state says where it is. |
money_out_not_signed | 409 | The money-out has not been signed, so it cannot be sent; state says where it is. |
money_out_not_lapsable | 409 | Only a money-out that waits for approval can lapse, and this one does not wait; state says where it is. |
conversion_not_prepared | 409 | The conversion has no order at its venue yet, so it cannot be approved. Ask for a new conversion. |
relay_delivery_expired | 409 | Relay's quote for this delivery has expired; expired_at says when. Ask for a new one. |
relay_delivery_not_prepared | 409 | The delivery through Relay has no address yet, or its address or amount is not the one quoted. Ask for a new quote. |
sweep_not_offered | 409 | Combining small coins is not offered on this wallet now; reason says why. |
sweep_in_progress | 409 | The wallet is already combining its small coins. Wait for that to end. |
sweep_inputs_changed | 409 | The coins to combine changed after the sweep was prepared; changed says how many. Prepare it again. |
screening_not_in_review | 409 | The order's payer is not waiting for a screening decision, so there is nothing to decide; status says where it stands. |
screening_blocked | 409 | The payer's address was blocked by screening, so this cannot go ahead. |
customer_credit_currency_mismatch | 409 | The customer's credit is held in another currency, so it cannot be used here. |
customer_credit_insufficient | 409 | The customer holds less credit than was asked; available says how much, in minor units. |
invoice_credit_already_applied | 409 | Credit was already applied to this invoice. |
payment_being_matched | 409 | The payment arrived and is still being matched to an order, so nothing can be decided on it yet. |
payment_being_refunded | 409 | The payment is being sent back. |
payment_reverted | 409 | The payment is no longer on its network. |
provider_refund_not_held | 409 | Nothing that Relay returned for this payment is still held. |
provider_refund_proof_missing | 409 | The transfer Relay returned cannot be read right now. Retry later. |
order_not_paid_twice | 409 | The order has no second payment to move. |
payment_not_on_order | 409 | The payment is no longer on this order. |
payment_not_second | 409 | Only the newest payment of an order paid twice can be moved. |
payment_already_decided | 409 | Part of the extra on this order was already refunded or kept. Decide the rest on the order. |
order_has_refunds | 409 | The order has a refund, so no payment can leave it. |
payment_not_movable | 409 | The payment cannot be moved. Refund it, or keep it as customer credit. |
payment_shared_out | 409 | Shares of this payment were already paid out under a split rule, so it cannot be moved. Refund it, or keep it as customer credit. |
payment_under_review | 409 | The paying address is flagged for review. Decide that first. |
order_would_not_stay_paid | 409 | Without this payment the order would no longer be paid, so the payment cannot be moved. |
target_other_customer | 409 | A payment can be moved only to an open order of the same customer. |
target_currency_mismatch | 409 | A payment can be moved only to an order priced in the same currency. |
target_not_open | 409 | A payment can be moved only to an order that is still open. |
target_expired | 409 | The order chosen has run out of time. Choose an order that is still open. |
api_error
Retry? Yes, with backoff (1 s, 2 s, 4 s, up to 5 tries) and the same idempotency key.
| Code | HTTP | Meaning |
|---|---|---|
cosigner_unavailable | 503 | Orrerie's co-signer is not available, so nothing that needs its signature was done. Receiving payments is unaffected. Retry later; retry_after, when sent, says when. |