On-demand inventory endpoint

Configure a per-offer HTTPS endpoint that returns field values for COMPLEX listings. Payment still completes if the call fails; you can retry or fulfill manually.

Fetch license, account, or key values from your server when a buyer pays.

When to use on-demand inventory

Use this for COMPLEX (unique unit) inventory when you generate keys or accounts in your own system at purchase time. Local stock is always preferred; the endpoint fills only the shortfall.

  • Works with INSTANT auto-delivery only when every unit is actually assigned.
  • Configure an offer-level default, or override per pricing option.
  • HTTPS only. Optional HMAC signing: verify X-RMT-Signature (same scheme as outbound webhooks).

Payment-safe failures

If your endpoint times out or returns invalid data, the order stays PAID. The buyer is charged; you see an error on the order and can retry reserve or attach keys manually.

Request contract

After payment, RMT POSTs one reserve.item call per missing unit with order, offer, option, field schema, and quantity 1. Optional request template JSON is merged with {{placeholders}}.

Canonical POST body (truncated)

json
{
  "id": "rsv_…",
  "type": "reserve.item",
  "order": { "uid": "…", "reference": "…", "url": "…" },
  "offer": { "url": "…", "title": "…", "pageUrl": "…" },
  "option": { "id": 1, "name": "Standard" },
  "fields": [{ "id": 10, "name": "License", "type": "text", "required": true }],
  "quantity": 1
}

Response and field mapping

Return 2xx JSON. Map paths like $.license onto Item fields, or return { "entries": [{ "fieldId": 10, "value": "KEY-…" }] }.

Convenience response

json
{
  "entries": [
    { "name": "License", "value": "AAAA-BBBB-CCCC" }
  ]
}
  • License-only: map one text field from $.license or $.key.
  • Account: map email and password fields from $.email and $.password.
  • Missing required fields after mapping counts as failure.

Test, verify signatures, and retry

Use Test in the offer editor (sends dryRun: true). If you set a signing secret, verify HMAC-SHA256 of timestamp.body against X-RMT-Signature. On the order page, retry the endpoint after fixing yours. Never log secrets or full keys in emails.

  1. 1Save HTTPS URL, field mapping, and optional signing secret on the offer Items step.
  2. 2Run Test and confirm mapped previews.
  3. 3On failure, open the order, retry reserve, or create/assign a key manually.

Do not call reserve before payment

RMT only calls your endpoint after payment succeeds, so abandoned checkouts do not burn licenses.