Skip to main content
POST
Change a return's fees

Authorizations

Authorization
string
header
required

API key issued per entity via Settings > Developers > API Keys. Each key carries scopes (e.g. orders:read, products:write). Bearer token format: Authorization: Bearer ark_live_ent_Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.

Headers

Idempotency-Key
string

Client-generated unique key for idempotent POST/PATCH/DELETE operations. Alias for the Idempotency parameter. Max 255 chars. On retry with the same key, the original response is returned without re-executing the operation. Keys expire after 24 hours. A second request with the same key sent while the first is still running waits for it and returns its answer; if the first is still running after 20 seconds the second answers 409 idempotency_key_in_use (retryable, nothing done). An answer carrying retryable: true is not cached. Reusing a key with a different request body answers 409 idempotency_key_collision (nothing done; send the new request with a fresh key). The replay, the wait and these two 409 codes come from the idempotency layer, so they apply to the operations that run it, each of which can answer the two codes whether or not its own 409 response lists them. The handlers of these operations take the header but do not run the layer, so on them the key neither replays nor answers either code: createPaymentPlan, chargePaymentPlanInstallment, setProductLocations, updateOrder, emailOrder, updateOrderItem, confirmPickup, markOrderNoShow, applyExistingPaymentToInvoices, updatePackage, movePackageItem, changePackageBox, changePackageCarrier, voidPackageLabel, printPackageLabel, emailPackage, setProNumberV1, setPackageProNumber, sendPurchaseOrderToVendorV1, notifyRevisionPurchaseOrderV1, addMaintenanceLog, generateBOLV1, createReportJobV1 and customerAcknowledgeRevision; recordVendorPrepaymentV1 and recordCustomerDepositV1 hand the key to their own write instead.

Maximum string length: 255

Path Parameters

id
string<uuid>
required

Body

application/json

One save: the changes to make, one intent each, and the copy of the return they were made from.

intents
object[]
required

The changes, applied in order; told apart by op. A key no intent's op takes is refused 422 intent_invalid (or client_field_forbidden for a field only the server sets, such as source, final_amount or waived).

Required array length: 1 - 50 elements

Adds a saved return fee rule to the return (Settings > Adjustments & Coupons); the rule's own calculation, caps, tax and waiver apply.

expected_updated_at
string<date-time>
required

The return's updated_at as you read it (on GET /returns/{id}, or the updated_at of the last fee change's answer). A save made from an older copy is refused 409 rma_changed; nothing is written.

Response

The changes were saved. The answer is the return's fee plan after them, read inside the save.

data
object
required