Холдирование

Для работы с холдирование вам необходимо реализовать протокол Subscribe API с методами создания токена карты, с которой будут сниматься средства.

Для создания платежа с холдированием необходимо указать дополнительный флаг "hold: true" в методе receipts.create.

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

POST /api HTTP/1.1
Host: checkout.test.paycom.uz
X-Auth: 100fe486b33784292111b7dc:Rw712wMJspZBczFvrG09?bHkSNxnD4PY0n1C
Content-Type: application/json
Cache-Control: no-cache

{
    "id": 123,
    "method": "receipts.create",
    "params": {
    "account": {
            "order_id": 106
        },
        "amount": 2500,
        "hold": true,
    }
}


В методе receipts.pay флаг hold: true также необходим

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

POST /api HTTP/1.1
Host: checkout.test.paycom.uz
X-Auth: 100fe486b33784292111b7dc:Rw712wMJspZBczFvrG09?bHkSNxnD4PY0n1C
Content-Type: application/json
Cache-Control: no-cache

{
    "id": 1596783866930,
    "method": "receipts.pay",
    "params": {
        "id": "{{ProdReceiptId}}", // id транзакции
        "token": "{{ProdCardToken}}", //токен карты
        "hold": true
    }
}


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

{
    "jsonrpc": "2.0",
    "id": 123,
    "result": {
        "receipt": {
            "_id": "624c0c2b0ac8b463e47422c7",
            "create_time": 1649150518480,
            "pay_time": 0,
            "cancel_time": 0,
            "state": 5, //state 5 - средства захолдированы
            "type": 1,
            "external": false,
            "operation": -1,
            "category": null,
            "error": null,
            "description": "",
            "detail": null,
            "amount": 100,
            "currency": 860,
            "commission": 0,
            "account": [
                {
                    "name": "order_id",
                    "title": "order_id",
                    "value": "5905",
                    "main": true
                },
                {
                    "name": "xEntityTaxpayerID",
                    "title": "ИНН юр.лица",
                    "value": "309085172"
                }
            ],
            "sensitive_data": [],
            "card": {
                "number": "626247**********",
                "expire": "2205"
            },
            "merchant": {
                "_id": "623c4fe9bd1c329a32de808e",
                "name": "Наименовагние компании ",
                "organization": "ООО «Наименовагние компании»",
                "address": "",
                "business_id": "61b19ee2204c85a50a879ae1",
                "epos": {
                    "merchantId": "",
                    "terminalId": ""
                },
                "date": 1648119785244,
                "logo": "https://cdn.paycom.uz/merchants/8bca7f164642da3c6287122159986bebb9f98c0e.png",
                "type": "Другие услуги здоровья и фармацевтики",
                "terms": null
            },
            "meta": {
                "source": "subscribe",
                "owner": "623c4fe9bd1c329a32de808e"
            },
            "processing_id": 0
        }
    }
}


Для снятия холдированных средств используется метод receipts.confirm_hold

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

POST /api HTTP/1.1
Host: checkout.test.paycom.uz
X-Auth: 100fe486b33784292111b7dc:Rw712wMJspZBczFvrG09?bHkSNxnD4PY0n1C
Content-Type: application/json
Cache-Control: no-cache

{
    "id": 123,
    "method": "receipts.confirm_hold",
    "params": {
        "id": "624c0c2b0ac8b463e47422c7"
    }
}


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

{
    "jsonrpc": "2.0",
    "id": 9,
    "result": {
        "receipt": {
            "_id": "624c0c2b0ac8b463e47422c7",
            "create_time": 1649151033299,
            "pay_time": 1649151041276,
            "cancel_time": 0,
            "state": 4, //state 4 - холд подтвержден, чек оплачен
            "type": 1,
            "external": false,
            "operation": -1,
            "category": null,
            "error": null,
            "description": "",
            "detail": null,
            "amount": 100,
            "currency": 860,
            "commission": 0,
            "account": [
                {
                    "name": "order_id",
                    "title": "order_id",
                    "value": "5905",
                    "main": true
                },
                {
                    "name": "xEntityTaxpayerID",
                    "title": "ИНН юр.лица",
                    "value": "*********"
                }
            ],
            "sensitive_data": [],
            "card": {
                "number": "860031**********",
                "expire": "2609"
            },
            "merchant": {
                "_id": "623c4fe9bd1c329a32de808e",
                "name": "Наименовагние компании ",
                "organization": "ООО «Наименовагние компании»",
                "address": "",
                "business_id": "61b19ee2204c85a50a879ae1",
                "epos": {
                    "merchantId": "",
                    "terminalId": ""
                },
                "date": 1648119785244,
                "logo": "https://cdn.paycom.uz/merchants/8bca7f164642da3c6287122159986bebb9f98c0e.png",
                "type": "Другие услуги здоровья и фармацевтики",
                "terms": null
            },
            "meta": {
                "source": "subscribe",
                "owner": "623c4fe9bd1c329a32de808e"
            },
            "processing_id": 0
        }
    }
}


Состояние чека можно узнать тут

Для отмены холдирования используется метод receipts.cancel


Процессинг UZCARD отменяет холдирование по истечению 30 дней с момента холдирования

Процессинг HUMO имеет ограничение подтвреждения/отмены холдирования в течении 30 дней. По истечению 30 дней холдирование можно только подтвердить.


Для работы холдирования средств необходимо предупредить технического специалиста Payme Business. В противном случае холдирование на кассе работать не будет.


Протестировать холдирование средств можно только в боевом режиме.