Онлайн-касса

Онлайн-касса — это построенная нами веб-страница, на которой можно принимать оплату онлайн. Для принятия оплаты создайте счёт.

На странице кассы пользователь увидит счёт и форму для ввода реквизитов метода оплаты счёта. После успешной оплаты (и в случае невозможности оплаты), клиенту API может быть отправлен вебхук с информацией об оплате счёта.

Попробуйте оплату счёта на демо-странице, используя карты песочницы.


После создания счёта необходимо перенаправить пользователя на страницу оплаты, передав в параметре URL invoice идентификатор созданного счёта.

Адрес страницы оплаты

https://checkout.alifpay.uz/?invoice=aa70817a-dfcf-4c6e-9332

POST/invoice

Создание счёта

Создаёт счёт для оплаты покупки указанных товаров.

Возвращает уникальный идентификатор счёта, который можно использовать для просмотра счёта на веб-странице или через метод API.

Параметры

  • Name
    items
    Type
    array
    Description

    Список товаров, включённых в покупку. Если разбивка на товары не предусмотрена и нет необходимости в регистрации фискальных чеков, в этом списке достаточно передать один товар на всю сумму для оплаты.

  • Name
    cancel_url
    Type
    string
    Description

    Валидный URL страницы, на которую будет совершен переход, если пользователь решит прервать оплату (ссылка "Вернуться на сайт партнёра"). Должен начинаться с https://.

  • Name
    redirect_url
    Type
    string
    Description

    Валидный URL страницы, на которую будет совершен переход после успешной оплаты. Должен начинаться с https://.

  • Name
    phone
    Type
    optional string
    Description

    Номер телефона покупателя. Используется, например, для регистрации фискального чека. Состоит из 12 цифр, должен начинаться с 998.

  • Name
    webhook_url
    Type
    optional string
    Description

    Валидный URL, на который будет отправлен HTTP-запрос после успешной оплаты. Должен начинаться с https://. См. вебхуки.

  • Name
    meta
    Type
    optional object
    Description

    Любые метаданные в формате валидного JSON.

  • Name
    timeout
    Type
    integer
    Description

    Количество секунд до истечения срока оплаты счёта. По истечении этого времени счёт перестаёт быть доступным для оплаты.

  • Name
    receipt
    Type
    boolean
    Description

    Флаг включения регистрации фискальных чеков.

Товар

  • Name
    name
    Type
    string
    Description

    Название.

  • Name
    marking_code
    Type
    optional string
    Description

    Код маркировки. Обязательный для некоторых ИКПУ. Состоит из 32 символов, первые 16 символов — цифры.

  • Name
    spic
    Type
    optional string
    Description

    ИКПУ-код. Обязательный, если receipt: true.

  • Name
    amount
    Type
    integer
    Description

    Количество экземпляров (натуральное число).

  • Name
    price
    Type
    integer
    Description

    Стоимость в тийинах (натуральное число). Суммарная стоимость всех товаров в счёте с учётом скидок должна быть в диапазоне от 50000 до 20000000000 тийин для одного списания средств у покупателя.

  • Name
    discount
    Type
    optional integer
    Description

    Полная сумма скидки для товара в тийинах, если предоставляется.

    Вычитается автоматически из полной стоимости товара и не будет списана через метод оплаты (например, с дебетовой карты). Не должна превышать полную стоимость товара (priceamount).

    При регистрации фискального чека скидка отражается на соответствующем параметре в чеке.

Атрибуты ответа

Ответ включает в себя значения из параметров запроса, а также следующие дополнительные значения.

  • Name
    id
    Type
    string
    Description

    Уникальный идентификатор счёта.

  • Name
    created_at
    Type
    string
    Description

    Время создания счёта в формате ISO-8601.

  • Name
    timeout
    Type
    integer
    Description

    Количество секунд до истечения срока действия счёта.

Запрос

POST
/invoice
{
  "items": [
    {
      "name": "Mug v556-3.25 (blue)",
      "marking_code": "1545637",
      "spic": "08517001001000000",
      "amount": 2,
      "price": 4000000,
      "discount": 200000
    },
    {
      "name": "Orbit White (XL)",
      "spic": "10399002001000000",
      "amount": 1,
      "price": 1000000
    }
  ],
  "receipt": true,
  "phone": "998123456789",
  "cancel_url": "https://example.uz/purchase/123",
  "redirect_url": "https://example.uz/purchase/123",
  "webhook_url": "https://example.uz/api/purchase/123/approval",
  "timeout": 86400,
  "meta": {
    "extra_id": "any extra data"
  }
}

Ответ

{
  "id": "aa70817a-dfcf-4c6e-9332",
  "price": 8800000,
  "items": [
    {
      "name": "Mug v556-3.25 (blue)",
      "marking_code": "1545637",
      "spic": "08517001001000000",
      "amount": 2,
      "price": 4000000,
      "discount": 200000
    },
    {
      "name": "Orbit White (XL)",
      "spic": "10399002001000000",
      "amount": 1,
      "price": 1000000
    }
  ],
  "receipt": true,
  "timeout": 86400,
  "created_at": "2023-08-04T08:34:52Z",
  "cancel_url": "https://example.uz/purchase/123",
  "redirect_url": "https://example.uz/purchase/123",
  "webhook_url": "https://example.uz/api/purchase/123/approval",
  "meta": {
    "extra_id": "any extra data"
  }
}

POST/getInvoice

Получение счёта

Возвращает информацию о счёте, как при создании счёта, список ссылок на фискальные чеки (если "receipt": true) и состояние оплаты в поле charge.

Подробнее о структуре оплаты.

Параметры

  • Name
    id
    Type
    string
    Description

    Уникальный идентификатор счёта, полученный при создании счёта.

Запрос

POST
/getInvoice
{
  "id": "aa70817a-dfcf-4c6e-9332"
}

Ответ

{
  "id": "aa70817a-dfcf-4c6e-9332",
  "price": 8800000,
  "items": [
    {
      "name": "Mug v556-3.25 (blue)",
      "marking_code": "1545637",
      "spic": "08517001001000000",
      "amount": 2,
      "price": 4000000,
      "discount": 200000
    },
    {
      "name": "Orbit White (XL)",
      "spic": "10399002001000000",
      "amount": 1,
      "price": 1000000
    }
  ],
  "receipt": true,
  "timeout": 86400,
  "created_at": "2023-08-04T08:34:52Z",
  "charge": {
    "ref": "ea898fef-6bbc-495e-ad78",
    "amount": 8800000,
    "status": "SUCCEEDED",
    "method": {
      "type": "CARD",
      "payload": {
        "pan": "123411******1111"
      }
    }
  },
  "receipts": [
    {
      "url": "https://ofd.soliq.uz/epi?t=EP000000000001&r=001&c=20060102000000&s=000000000001",
      "refund": false
    }
  ],
  "cancel_url": "https://example.uz/purchase/123",
  "redirect_url": "https://example.uz/purchase/123",
  "webhook_url": "https://example.uz/api/purchase/123/approval",
  "merchant": {
    "name": "Example Shop"
  },
  "meta": {
    "extra_id": "any extra data"
  }
}

POST/refundInvoice

Отмена оплаты счёта

Отменяет оплату счёта. Возвращает средства покупателю и регистрирует фискальный чек возврата, если ранее был зарегистрирован соответствующий чек покупки. Метод возвращает информацию о счёте и состояние оплаты.

Подробнее о структуре оплаты.

Параметры

  • Name
    id
    Type
    string
    Description

    Уникальный идентификатор счёта.

Запрос

POST
/refundInvoice
{
  "id": "aa70817a-dfcf-4c6e-9332"
}

Ответ

{
  "id": "aa70817a-dfcf-4c6e-9332",
  "price": 8800000,
  "items": [
    {
      "name": "Mug v556-3.25 (blue)",
      "marking_code": "1545637",
      "spic": "08517001001000000",
      "amount": 2,
      "price": 4000000,
      "discount": 200000,
    },
    {
      "name": "Orbit White (XL)",
      "spic": "10399002001000000",
      "amount": 1,
      "price": 1000000
    }
  ],
  "receipt": true,
  "timeout": 86400,
  "created_at": "2023-08-04T08:34:52Z",
  "charge": {
    "id": "ea898fef-6bbc-495e-ad78",
    "amount": 8800000,
    "status": "REVERTED",
    "method": {
      "type": "CARD",
      "payload": {
        "pan": "123411******1111"
      }
    }
  },
  "receipts": [
    {
      "url": "https://ofd.soliq.uz/epi?t=EP000000000001&r=001&c=20060102000000&s=000000000001",
      "refund": false
    }
  ],
  "cancel_url": "https://example.uz/purchase/123",
  "redirect_url": "https://example.uz/purchase/123",
  "webhook_url": "https://example.uz/api/purchase/123/approval",
  "merchant": {
    "name": "Example Shop"
  },
  "meta": {
    "extra_id": "any extra data"
  }
}

POST/sendInvoice

Отправка счета

Отправляет СМС со ссылкой на страницу оплаты счёта.

Параметры

  • Name
    id
    Type
    string
    Description

    Уникальный идентификатор счёта, полученный при создании счёта.

  • Name
    phone
    Type
    string
    Description

    Номер телефона, на который будет отправлено СМС.

Запрос

POST
/sendInvoice
{
  "id": "90c54437-0d14-4ba5-be32",
  "phone": "998991234567"
}

Ответ

{
  "id": "90c54437-0d14-4ba5-be32",
  "sms_id": "1",
  "phone": "998******4567",
  "price": 9000000,
  "link": "https://checkout.alifpay.uz/?invoice=90c54437-0d14-4ba5-be32",
  "content": "Vam vistavlen schet na summu 90000.00 sum. Dlya oplaty proydite po ssilke: https://checkout.alifpay.uz/?invoice=90c54437-0d14-4ba5-be32"
}

Вебхуки


Оплата счёта

Отправляется при успешном или проваленном завершении оплаты.

Подробнее про вебхуки
  • Name
    payload
    Type
    object
    Description

    Структура счёта с актуальными данными об оплате.

Тело вебхука

{
  "payload": {
    "charge": {
      "amount": 8800000,
      "ref": "ea898fef-6bbc-495e-ad78",
      "status": "SUCCEEDED",
      "method": {
        "type": "CARD",
        "payload": {
          "pan": "123411******1111"
        }
      }
    },
    "created_at": "2023-08-04T08:34:52Z",
    "id": "aa70817a-dfcf-4c6e-9332",
    "items": [
      {
        "amount": 2,
        "name": "Mug v556-3.25 (blue)",
        "price": 4000000,
        "discount": 200000
      },
      {
        "amount": 1,
        "name": "Orbit White (XL)",
        "price": 1000000
      }
    ],
    "receipt": true,
    "price": 8800000,
    "purchase_id": "035033da-4065-4c5b-adac",
    "timeout": 86400
  },
  "type": "invoice"
}