Завершение платежа с использованием баланса клиента

Метод Complete payment from balance используется для завершения платежа текущего реселлера или любого из его нижестоящих реселлеров, за счет средств на балансе клиента. Завершить можно только платежи в статусе Ожидает оплаты. Завершение платежей на пополнение баланса клиента с использованием данного метода недоступно.

Для авторизации требуется API-токен менеджера (сотрудника). API-токен можно получить через Панель управления Оператора (см. Просмотр и обновление информации о сотруднике).

По указанному в запросе API-токену определяются:

  • Роль и уровень доступа менеджера, от которых зависит доступность метода.
  • Текущий реселлер и его нижестоящие реселлеры, доступные в рамках метода.

PATCH {base_url}/api/v3/resellers/{reseller_id}/payments/{payment_id}
{
    "data":
    {
        "attributes":
        {
            "status": "paid_from_balance"
        }
    }
}

Аргументы

Название

Тип параметра

Тип данных

Обязательный/ 
Опциональный

Описание

X-Api-TokenheaderstringОбязательныйAPI-токен сотрудника, выполняющего операцию (см. Просмотр и обновление информации о сотруднике)
Content-TypeheaderstringОбязательныйТип данных, передаваемых в запросе. Необходимо указать: application/vnd.api+json
AcceptheaderstringОбязательныйПоддерживаемые типы данных в ответе. Необходимо указать: application/vnd.api+json
base_urlpathstringОбязательныйURL ActivePlatform
reseller_idpathnumberОбязательныйID реселлера. Возможно указать ID текущего реселлера или ID любого из его нижестоящих реселлеров (см. Просмотр информации о реселлере)
payment_idpathnumberОбязательныйID платежа

Модель ответа

При успешном завершении платежа метод возвращает информацию о платеже (см. Получение информации о платеже без включения в ответ дополнительной информации included о связанных объектах).

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

PATCH /api/v3/resellers/1/payments/6485
Host: test.activeplatform.com
Content-Type: application/vnd.api+json
X-Api-Token: vY5fwetestK3gJXZH5uHCw
Accept: application/vnd.api+json
{
    "data":
    {
        "attributes":
        {
            "status": "paid_from_balance"
        }
    }
}

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

{
    "data": {
        "id": "6485",
        "type": "payments",
        "attributes": {
            "created_at": "2019-11-01T09:50:47.020146+0300",
            "updated_at": "2019-11-01T09:51:06.281534+0300",
            "account_id": 505,
            "discount_amount": "0.0",
            "total": "21.0",
			"currency_code": "USD",
            "comment": "Payment for order 8149",
            "status": "paid_from_balance",
            "document_id": "2005268",
            "expiration_date": null,
            "payment_method_id": null,
            "requester_ip": "10.0.0.203",
            "manager_id": null,
			"purpose": "",
            "external_total": null,
            "external_currency": null,
            "due_date": null, 
            "payment_method_name": null,
            "closed_at": "2019-11-01T09:51:06.281534+0300"
        },
        "relationships": {
            "orders": {
                "data": [
                    {
                        "id": "8149",
                        "type": "sales_orders"
                    }
                ]
            },
            "invoices": {
                "data": []
            },
            "corrections": {
                "data": []
            },
            "reseller": {
                "data": {
                    "id": "1",
                    "type": "resellers"
                }
            },
            "account": {
                "data": {
                    "id": "505",
                    "type": "accounts"
                }
            },
            "payment_method": {
                "data": null
            }
        }
    }
}

Ошибки

При возникновении ошибки метод возвращает описание ошибки, например:

  • Если баланс клиента меньше суммы платежа:
{
    "errors": {
        "title": "The payment cannot be completed due to absence of enough amount of money on balance.",
        "status": "422"
    }
}
  • Если платеж уже был завершен:
{
    "errors": {
        "title": "This payment cannot be completed by balance.",
        "status": "422"
    }
}
  • Если платеж находится в статусе, отличном от Ожидает оплаты:
{
    "errors": {
        "title": "Only payments with /"waiting for payment/" status can be completed",
        "status": "422"
    }
}
  • Если платеж является платежом для пополнения баланса клиента:
{
    "errors": {
        "title": "Topup payment cannot be completed by balance.",
        "status": "422"
    }
}