Submit a counterproposal

​

Proposes a different total price for an open offer. You can counter only a proposal sent by the other participant.

Supply either total in the offer currency or discountPercentage for the complete original item subtotal. Discounts may not exceed 40%. Item membership and quantities remain fixed; per-item prices are not accepted. The returned total includes the same rounding as the website.

Set proposalId to currentProposal.id from GET /v1/offers/{offerId}. If a new price has arrived since you fetched the offer, the request returns 409 Conflict without sending your counterproposal. Fetch the offer again and review the new price before responding.

Buyer proposals count toward the marketplace limit. A buyer counter beyond the limit declines the offer and returns a proposal-limit error.

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.

  • The percentage discount from the original item subtotal: 20 means 20% off. Discounts above 40% return 422. Exactly one of total or discountPercentage is required.

  • Your proposed subtotal for all selected units, excluding shipping, in the listing currency. Exactly one of total or discountPercentage is required.

    Properties: 2

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}/counter
curl https://public-api.cardnexus.com/v1/offers/665f3a2b1c8d4e9f7a6b5c59/counter \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "proposalId": "665f3a2b1c8d4e9f7a6b5c60",
  "total": {
    "amount": 26,
    "currency": "EUR"
  }
}'
{
  "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"
    }
  ]
}