Accept the current proposal

​

Accepts the current price proposal and reserves its stock. You can accept only a proposal sent by the other participant.

Set proposalId to currentProposal.id from GET /v1/offers/{offerId}. If the other participant has sent a new price since you fetched the offer, the request returns 409 Conflict without accepting it. Fetch the offer again and review the new price before accepting.

If stock cannot be reserved, acceptance fails and the offer remains open. Acceptance starts a 48-hour redemption window. It leaves your cart unchanged and does not create a paid order. The buyer adds the accepted offer to the cart separately.

Returns the updated summary. Supports an optional Idempotency-Key. Requires offers:write.

Path Parameters

  • A stable, opaque offer ID.

Body

required
application/json
  • The ID of the price proposal you are accepting, declining, or countering, returned as currentProposal.id when you fetch the offer. If a newer proposal has arrived, your request returns 409 Conflict without applying your response.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/offers/{offerId}/accept
curl https://public-api.cardnexus.com/v1/offers/665f3a2b1c8d4e9f7a6b5c59/accept \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "proposalId": "665f3a2b1c8d4e9f7a6b5c60"
}'
{
  "id": "665f3a2b1c8d4e9f7a6b5c59",
  "status": "pending",
  "viewerRole": "buyer",
  "buyer": {
    "id": "665f3a2b1c8d4e9f7a6b5c4d",
    "username": "alphabay_cards"
  },
  "seller": {
    "id": "665f3a2b1c8d4e9f7a6b5c4e",
    "username": "north_arena_tcg"
  },
  "itemCount": 1,
  "totalQuantity": 2,
  "originalTotal": {
    "amount": 30,
    "currency": "EUR"
  },
  "currentProposal": {
    "id": "665f3a2b1c8d4e9f7a6b5c60",
    "authorRole": "buyer",
    "total": {
      "amount": 25,
      "currency": "EUR"
    },
    "createdAt": "2026-09-10T14:32:00.000Z"
  },
  "awaitingResponseFrom": "seller",
  "buyerProposalCount": 1,
  "voidReason": null,
  "createdAt": "2026-09-10T14:32:00.000Z",
  "updatedAt": "2026-09-10T14:32:00.000Z",
  "expiresAt": null,
  "actions": [
    {
      "id": "cancel",
      "method": "POST",
      "path": "/v1/offers/665f3a2b1c8d4e9f7a6b5c59/cancel"
    }
  ]
}