Рефсейлс API

Идемпотентность

Как повторить создание заказа и не получить дубль.

POST /api/v1/orders требует externalId, ваш идентификатор заказа во внешней системе. Он же служит ключом идемпотентности.

ЗапросОтвет
первый POST с externalId: "A-1001"201, новый заказ
повторный POST с тем же externalId200, тот же заказ без изменений
два одновременных POST с одним externalIdодин 201, другой 200, заказ один
externalId совпал с номером заказа из Тильды или созданного вручную409, код conflict

Поэтому запрос безопасно повторять после таймаута или обрыва связи: если первая попытка дошла, вторая вернёт уже созданный заказ. Тело повтора API не сравнивает с оригиналом, изменения шлите через PATCH.

Поиск по своему идентификатору

Заказ можно получить по externalId без хранения нашего id:

curl "https://refsales.ru/api/v1/orders/A-1001?by=externalId" \
  -H "Authorization: Bearer rsk_live_xxx"

После создания externalId не меняется: PATCH с этим полем вернёт 400.

Номера заказов

Заказы из Тильды и созданные вручную получают 10-значные номера в том же поле. Чтобы не пересечься с ними, добавьте к своему идентификатору префикс, например MS-1001. Ответ 409 значит, что номер уже занят: такой заказ создать нельзя, возьмите другой externalId.

На странице