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" 
}

Параметр Обязательный Описание
paymentMethod нет Может принимать значения SBP или PARTNER_BALANCE. Если параметр не указан, то по умолчанию используется PARTNER_BALANCE
amount да Сумма, которую требуется начислить на моечный автомат
userAmount нет Сумма, которую требуется списать с пользователя. Указывается только в том случае, если списанием средств с пользователя и фискализацией занимается ЦЦЭС. Параметр используется только если paymentMethod = SPB или BANK_CARD
partnerAmount нет Сумма, которую требуется списать со счёта партнёра. Может передаваться только для верификации
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": "IN_PROCESS" // NEW, SENT, ACCEPTED, CANCELLED, FAILED, UNKNOWN, IN_PROCESS, COMPLETED
}

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