CCES Carwash API - Мойки самообслуживания

Aутентификация

Aутентификация запроса происходит при указании 2-х заголовков:

X-Org-Id

X-Api-Key

Получение списка моек самообслуживания

GET {{baseUrl}}/partner-api/v1/carwash-stations?type=SelfService
Content-Type: application/json
X-Org-Id: {{org_id}}
X-Api-Key: {{api_key}}
200 OK

Пример ответа:

[
  {
    "stationId": "bfc43d01-982e-487c-979d-8ad15825f06b",
    "isActive": true,
    "name": "Мой сам",
    "address": "Адрес",
    "type": "SelfService", // SelfService, Classic, Robotic
    "latitude": 60.052184,
    "longitude": 30.317479,
    "minPrice": 30,
    "priceStep": 10
  } 
]

Получить данные мойки самообслуживания

GET {{baseUrl}}/partner-api/v1/carwash-stations/{{carwashStationId}}
Content-Type: application/json
X-Org-Id: {{org_id}}
X-Api-Key: {{api_key}}
200 OK

Пример ответа:

{
  "stationId": "bfc43d01-982e-487c-979d-8ad15825f06b",
  "isActive": true,
  "name": "Мой сам",
  "address": "Адрес",
  "type": "SelfService",
  "latitude": 60.052184,
  "longitude": 30.317479,
  "minPrice": 30,
  "priceStep": 10,
  "boxes": [
    {
      "boxNumber": 1,
      "status": "Free"
    },
    {
      "boxNumber": 2,
      "status": "Busy"
    },
    {
      "boxNumber": 3,
      "status": "Unavailable"
    }
  ],
  "services": [
    {
      "serviceId": "2",
      "title": "мойка",
      "description": "мойка",
      "minPrice": 20,
      "maxPrice": 20,
      "priceType": "PerMinute" // PerMinute, Fix
    }
  ]
}

Получить статус бокса

GET {{baseUrl}}/partner-api/v1/carwash-stations/{{carwashStationId}}/boxes/{{boxNumber}}
Content-Type: application/json
X-Org-Id: {{org_id}}
X-Api-Key: {{api_key}}
200 OK

Пример ответа:

{
  "boxNumber": 1,
  "status": "Free" 
}

Создание заказа на мойку самообслуживания

POST {{baseUrl}}/partner-api/v1/self-carwash
Content-Type: application/json
X-Org-Id: {{org_id}}
X-Api-Key: {{api_key}}

Пример запроса:

{
  "carwashId": "{{carwashId}}",
  "stationId": "926d7f46-6bc3-4304-a677-3bef532fbb62",
  "userId" : "{{userId}}",
  "boxNumber": 1,
  "amount": 200,
  "userAmount": 200,
  "partnerAmount": 190,
  "paymentMethod": "SBP",
  "returnUrl": "https://t.me/tapchik" 
}

Параметр Обязательный Описание
paymentMethod нет Может принимать значения SBP или PARTNER_BALANCE. Если параметр не указан, то по умолчанию используется PARTNER_BALANCE
amount да Сумма, которую требуется начислить на моечный автомат
userAmount нет Сумма, которую требуется списать с пользователя. Указывается только в том случае, если списанием средств с пользователя и фискализацией занимается ЦЦЭС. Параметр используется только если paymentMethod = SPB или BANK_CARD
partnerAmount нет Сумма, которую требуется списать со счёта партнёра. Может передаваться только для верификации
returnUrl нет URL, на который будет перенаправлен пользователь после успешной оплаты по СБП
201 Created

Пример ответа:

{
  "carwashId": "e3b9d1c7-0511-432d-b82a-d2b0001de064",
  "paymentFormUrl": "https://qr.nspk.ru/AD1000H32PWGLFF3TW6SB2RHWY6TFI87?type=02&bank=100000000001&sum=51000&cur=RUB&crc=QNCO" 
}

paymentFormUrl - ссылка на платёжную форму (или QR код при paymentMethod = SBP). Содержится в ответе только в том случае, если списанием средств с пользователя занимается ЦЦЭС

Получить текущее состояние процесса мойки

GET Ссылка/partner-api/v1/self-carwash/413ce768-ac68-4749-8c43-0d2490fef5a3
Content-Type: application/json
X-Org-Id: {{org_id}}
X-Api-Key: {{api_key}}
200 OK

Пример ответа:

{
  "stationId": "bfc43d01-982e-487c-979d-8ad15825f06b",
  "boxNumber": 1,
  "amount": 200,
  "status": "PLACED" // PLACED, CANCELLED, FAILED, COMPLETED, RECEIPTS_UPDATED
}

API на стороне партнёра

Обработка callback запросов для обновления статуса заказа

POST {{baseUrl}}/cces-api/carwashes/callback
Content-Type: application/json
X-Org-Id: {{org_id}}
X-Api-Key: {{api_key}}

Примеры запросов для успешно завершенного заказа:

{
    "carwashId": "ccc7d2d3-b90d-4dd4-b245-462201afdb7e",
    "status": "COMPLETED",
    "finishedAt": 1748537411442,
    "amount": 200,
    "userAmount": 200,
    "partnerAmount": 190,
    "cheques": []
}
{
    "carwashId": "ccc7d2d3-b90d-4dd4-b245-462201afdb7e",
    "status": "RECEIPTS_UPDATED",
    "finishedAt": 1748537411442,
    "amount": 200,
    "userAmount": 200,
    "partnerAmount": 190,
    "cheques": [
       {
          "chequeUrl": "https://consumer.1-ofd-test.ru/v1?fn=9999078900006242&fp=4155744073&i=9877",
          "chequeType": "PREPAYMENT",
          "fiscalizedAt": 1748538078467 },
       {
          "chequeUrl": "https://consumer.1-ofd-test.ru/v1?fn=9999078900006242&fp=2742570411&i=9857",
          "chequeType": "INSTANT_PAYMENT",
          "fiscalizedAt": 1748538078467 }
    ]
}

Пример запроса для промежуточных статусов:

{
    "carwashId": "ccc7d2d3-b90d-4dd4-b245-462201afdb7e",
    "status": "PLACED" 
}

Пример запроса для завершенного с ошибкой заказа:

{
    "carwashId": "ccc7d2d3-b90d-4dd4-b245-462201afdb7e",
    "status": "CANCELLED" | "FAILED",
    "finishedAt": 1748537411442,
    "error": "Мойка недоступна" | "Техническая неисправность" 
}

status - статус заказа. Возможные значения:

Статус Описание
PLACED Заказ размещён в системе поставщика, но ждёт подтверждения
COMPLETED Мойка оплачена
CANCELLED Заказ отменён поставщиком
FAILED Заказ завершен с ошибкой
RECEIPTS_UPDATED Получен новый чек по заказу
Made on
Tilda