Skip to content

Collect payment

API v2 is in public beta: endpoints and fields can change before general availability. See the changelog

POST/preorders/orders/{id}/collect_payment

Costs 2 rate-limit points · Rate limits

Collect the order's outstanding balance now by charging the customer's saved payment method. Pass line_item_ids to collect the full price of those products, or amount to collect part of the balance (both are Shopify Plus only).

Matches the dashboard actions Collect payment and Collect partial payment (an amount, or chosen products). With neither amount nor line_item_ids the full outstanding balance is charged, on any plan. line_item_ids alone charges the sum of those lines' price times quantity plus tax; with amount too, amount is charged and the lines are recorded. A bundle line stands for its components. An amount above the outstanding balance, a line not on this order, or a shop not on Shopify Plus returns 422. The charge is created on the customer's saved payment method and Shopify settles it asynchronously: outcome.payment_reference_id identifies it and payments.last_payment_attempt shows its state, with shopify_line_item_ids for a charge chosen by product. Fails (422) when nothing is outstanding, there is no saved payment method or Shopify declines. send_notifications false suppresses the customer email sent when a charge fails.

Also searched ascollect paymentcapture paymentcharge the balance nowtake the remaining paymentcollect outstanding balancecollect partial paymentcharge part of the balancecollect payment for these productscharge for one item

Path parameters

  • idstringRequired

Headers

  • Idempotency-Keystring

    A fresh unique key for every write (a new UUID, say); reuse it only to retry that write. Keys are remembered for 1 hour: the same key and the same request within that hour returns the first result, with Idempotent-Replayed: true, without running again; the same key with a different method, path or body is refused (422 idempotency_key_reused); a retry while the first is still running gets 409 idempotency_key_in_progress. Keys are per store. Server errors and rate limits are not kept, so their retry runs.

Request body

  • send_notificationsstring
    Example: string
  • amountstring
    Example: string
  • line_item_idsarray of strings

Errors

401

Missing or invalid X-Auth-Token.

404

The resource does not exist for this shop, or the action path is not registered.

409

An earlier request with the same Idempotency-Key is still running. Wait, then resend the same request with the same key.

422

The request failed validation.

429

Rate limited: cost-weighted per token (read 1, write 2; 360 points / 60s). Check Retry-After.

Every error has the same shape: see Errors.

POST/preorders/orders/{id}/collect_payment
curl -X POST "https://app.stoqapp.com/api/v2/external/preorders/orders/{id}/collect_payment" \
  -H "X-Auth-Token: $STOQ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "send_notifications": "string",
    "amount": "string",
    "line_item_ids": [
      "string"
    ]
  }'
Response
No body