Перейти к содержимому

Интеграция IZI с CloudPayments

Опубликовано: · IZI Team

CloudPayments — один из поддерживаемых платёжных шлюзов в IZI. После подключения клиенты клуба могут пополнять баланс картой, через Apple Pay или Google Pay прямо из CRM или мобильного приложения — без перехода на сторонние страницы.

  • Аккаунт мерчанта в CloudPayments (с пройденным KYC)
  • Public ID и API Secret из личного кабинета CloudPayments
  • Токен IZI API с ролью OWNER или ADMIN на уровне организации
mutation ConfigurePaymentGateway($input: PaymentGatewayInput!) {
configurePaymentGateway(input: $input) {
id
type
isActive
publicId
}
}
{
"input": {
"organizationId": "org_abc123",
"type": "CLOUDPAYMENTS",
"publicId": "pk_your_public_id",
"apiSecret": "your_api_secret",
"description": "Основной эквайринг"
}
}

apiSecret хранится зашифрованным, в ответе не возвращается. Для его обновления нужно вызвать мутацию повторно.

В личном кабинете CloudPayments: Настройки → Уведомления → Check (проверка платежа) и Pay (успешный платёж).

URL для обоих типов:

https://api.izi.is/payments/cloudpayments/callback

IZI принимает Check и Pay уведомления. При Check валидирует сумму и существование клиента. При Pay зачисляет баланс и создаёт транзакцию.

Для пополнения баланса клиента через виджет:

mutation InitiateTopUp($input: InitiatePaymentInput!) {
initiateTopUpPayment(input: $input) {
paymentUrl
transactionId
expiresAt
}
}
{
"input": {
"clientId": "client_xyz",
"clubId": "club_abc123",
"amount": 500,
"returnUrl": "https://yourapp.example.com/payment/success",
"description": "Пополнение баланса"
}
}

В ответе — paymentUrl для редиректа клиента. После оплаты CloudPayments отправит уведомление на IZI, баланс зачислится автоматически.

CloudPayments предоставляет тестовые карты:

КартаРезультат
4111 1111 1111 1111Успешная оплата
4444 4444 4444 4441Отказ банка
5500 0000 0000 00043DS-подтверждение

Тестовый режим включается в панели CloudPayments. Все транзакции в тестовом режиме не списывают реальные деньги, но проходят полный цикл через IZI включая зачисление баланса в тестовый профиль клиента.

query PaymentStatus($transactionId: ID!) {
payment(id: $transactionId) {
id
status
amount
clientId
createdAt
confirmedAt
gatewayTransactionId
}
}

Статусы: PENDINGAUTHORIZEDCONFIRMED | CANCELLED | FAILED.

Или через webhook от IZI — подпишитесь на PAYMENT_RECEIVED:

mutation CreatePaymentWebhook {
createWebhook(input: {
url: "https://your-service.example.com/payments",
events: ["PAYMENT_RECEIVED", "PAYMENT_FAILED"]
}) {
id
secret
}
}
mutation RefundPayment($input: RefundInput!) {
refundPayment(input: $input) {
success
refundId
amount
}
}
{
"input": {
"transactionId": "txn_abc123",
"amount": 500,
"reason": "Запрос клиента"
}
}

Частичные возвраты поддерживаются. amount не может превышать сумму исходной транзакции.

Частые вопросы

Сколько времени занимает подключение CloudPayments?

Техническая интеграция — 1–2 часа при готовом аккаунте CloudPayments. Само подключение мерчанта в CloudPayments занимает от 1 до 3 рабочих дней на стороне платёжного сервиса.

Какие платёжные методы поддерживает CloudPayments через IZI?

Карты Visa/MasterCard/МИР, Apple Pay, Google Pay, SberPay. Криптовалюты и СБП зависят от тарифа CloudPayments вашего мерчанта.

Что происходит с балансом если платёж отменён?

При отмене (refund) IZI автоматически списывает соответствующую сумму с баланса клиента. Если баланс потрачен частично — списывается остаток, разница возвращается не автоматически и требует ручной обработки.

Можно ли использовать несколько платёжных шлюзов одновременно?

Да. IZI поддерживает несколько шлюзов на одну организацию. Можно настроить CloudPayments для одних клубов и другой эквайринг для других.