Skip to content

Play with api

Введение

Для совершения платежей и выплат ваш аккаунт должен быть должным образом сконфигурирован и иметь подключенные платежные провайдеры с активными платежными маршрутами.

Если вы не произвели настройку вашего аккаунта, перейдите на статью с его быстрой конфигурацией.

С полным перечнем инструментов для интеграции и готовыми решениями вы можете ознакомится в разделе "Integration".

Предлагаем получить API ключи попробовать наше API!

Способы интеграции

Для интеграции с платформой есть множество инструментов и интерфейсов для интеграции. Давайте разберемся с некоторыми из них.

Commerce Private API

Server-server интеграция для Commerce Account. Позволяет получать балансы аккаунта, создавать платежи, выплаты и т.п.

Swagger: https://swagger.paycore.io/commerce/

Full Reference: https://apidoc.paycore.io/commerce/

Commerce Public API

Client–server интеграция для Commerce Account со стороны Website. Позволяет получить прямо на frontend, минуя серверное взаимодействие список доступных платежных сервисов и сервисов выплат.

Swagger: https://swagger.paycore.io/commerce-public/

Full Reference: https://apidoc.paycore.io/commerce-public/

Commerce HPP API

интеграция для взаимодействия с Hosted Payment Page для приема платежей. Позволяет перенаправить клиента на готовую платежную страницу, где он сможет выбрать платежный метод и совершить платеж.

Swagger: https://swagger.paycore.io/commerce-hpp/

Full Reference: https://apidoc.paycore.io/commerce-hpp/

Platform API

Позволяет реализовать низкоуровневую интеграцию с платформой и ее сервисами. Вся фунциональность реализованная в Dashboard доступна через данное API.

Swagger: https://swagger.paycore.io/

Full Reference: https://apidoc.paycore.io/

API ключи

Все ключи для Commerce Public API, Private API, HPP API доступны в личном кабинете в настройках Commerce Account → Integration.

Live / Test keys

Разница в live и test ключах только в том, что для тестового режима используются тестовые ключи, а для боевого — боевые соответственно.

Public / Private keys

Public keys и Private keys используются для взаимодействия с Commerce Public API и HPP API.

Public keys для взаимодействия с API, а Private keys — для проверки цифровой подписи.

Callback URL

При изменении статуса по платежам или выплатам, будет произведена отправка Callback на Callback URL соответственно.

Цифровая подпись присутстует во всех Callback запросах, отправленных на Callback URL.

Это позволяет безопастно их обрабатывать и быть уверенным что запрос не был модифицирован.

Подпись передается в HTTP header с ключем "X-Signature".

Алгоритм формирования подписи очень простой:

$signature = base64_encode(sha1($secret . $contentBody . $secret, true));

Детальнее про формирование подписи и ее проверку мы можете ознакомится на странице "Integration → Security".

API keys

Для Commerce Private API используется классическая HTTP Basic авторизация. Commerce Account ID используется в качестве Login, API Key в качестве Password.

Для повышения безопастности настроятельно рекомендует ограничить доступ к Private API через IP white-list filter.

API usage

Our APIs accept and return JSON in the HTTP body and return HTTP response codes to indicate errors. You can consume the APIs directly using your favorite HTTP/REST library, or use one of our SDKs.

Authentication

To initiate a request to any of Corefy,’s endpoints, you will need to provide an API key in the Authorization header. Unless otherwise specified, you should use your secret key.

HTTP response codes

The table below describes the possible response codes you can receive when sending an API request.

Code Description

200 OK

201 Created

202 Accepted

401 Unauthorized

403 Not allowed

404 Not found

422 Invalid data was sent

429 Too many requests or duplicate request detected

502 Bad gateway

Validation errors

If an error occurs while validating a request, the API responds with a 422 HTTP response code, accompanied by a JSON response containing the error details. Find out more in the example below.

The JSON response includes the following fields:

Field name Description

request_id The request ID used by Corefy to trace what went wrong in the payment.

error_type The type of error.

error_codes An array of validation errors.

Платежи

Get available payment services over Commerce Public API

Для получения списка доступных платежных сервисов для Commerce Account используете Commerce Public API. Для получения тестовых сервисов используется соответственно тестовый.

Вы можете использовать данный тип взаимодействия для отображения списка доступных платежных сервисов прямо на вашей на странице оплаты.

Endpoint: POST /payment-prerequest

Request:

Response:

Create payment over Commerce Public API

С помощью Commerce Public API можно инициациировать платеж прямо с вашего сайта на frontend.

Это необходимо, если вы хотите построить платежную страницу самостоятельно в вашем уникальном дизайне.

Мы рекомендуем использовать данный тип взаимодействия если:

  • Вы принимаете платежи для пополнения виртуальных лицевых счетов ваших клиентов.
  • Пользователи могут произвести платеж на производную сумму и в любое время.
  • Нет контроля уникальности запросов на произведение платежа.

Это упрощяет интеграцию и позволяет просто пополнять баланс клиенту на основании полученного Callback при успешной оплате.

После проведения платежа, вам будет отправлен Callback, содержащий все необходимые данные для его зачисления на вашей стороне.

Callback Request будет содержать уникальный ID платежа, Reference ID, сумму фактически принятого платежа и статус.

Внимание! Для возможности создавать платежи из по Public API необходимо, что бы флаг "Public Access" → "Forbid creation" был в состоянии OFF.

Endpoint: POST /payment-invoice

Request:

Response:

Create payment over Commerce HPP API

HPP (hosted payment page) — это готовый UI интерфейс для проведения платежей.

Он покрывает все сценарии платежных процессов и кейсов. UX проработан для максимально эффективного и простого клиентского опыта.

Интейфес можно легко кастомизировать под свой стиль и дизайн.

Интеграция по данному интерфесу самая простая и быстрая.

Достаточно просто перенаправить клиента на HPP с параметрами платежа, такими как сумма, валюта, описание, ID референса.

Клиенту будет отрисован интерфейс где он сможет выбрать предпочитаемый для него платежный метод и произвести оплату.

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

<form action="https://com.paycore.io/hpp/" method="GET">
<input type="hidden" name="public_key"
 value="pk_live_mF-EbTQBhz15e4AWAQNq-CFrBIdAEKG2pFSuj7JudNY"/>
 <!-- Change this key. Don't forget to allow public creation -->
<input type="hidden" name="reference_id" id="reference_id" />
<input type="hidden" name="currency" value="UAH"/>
<input type="hidden" name="description" value="Test payment"/>
Amount: <input type="text" name="amount" value="100"/> <br/>
<input type="submit" value="PAY">
</form>

<script>
window.document.getElementById('reference_id').value 
		= Math.random().toString(36).slice(-10);
</script>

Пример запроса с авто-перенаправлением на оплату:

<form action="https://com.paycore.io/public-api/payment-invoices/process" method="POST">
    Amount: <input type="text" name="amount" value="100"/> <br/>
    <input type="hidden" name="public_key" 
				value="pk_live_mF-EbTQBhz15e4AWAQNq-CFrBIdAEKG2pFSuj7JudNY"/>
		<!-- Change this key. Don't forget to allow public creation -->
    <input type="hidden" id="reference_id" name="reference_id"/>
    <input type="hidden" name="currency" value="UAH"/>
    <input type="hidden" name="service" value="bank_card_uah_hpp"/>
    <input type="submit" value="PAY">
</form>

<script>
window.document.getElementById('reference_id').value 
		= Math.random().toString(36).slice(-10);
</script>

С полным справочником параметров и опций вы можете ознакомится в разделе "Commerce HPP API".

Для упрощения интеграции по данному интерфейсу рекомендуем использовать "PaymentWidget.js".

Payment Invoice Callback

Для корректной обработки Callbackов ознакомьтесь с полным перечнем статусов Payment Invoice.

Выплаты

Get available payout services over Commerce Public API

Для получения списка доступных сервисов выплат для Commerce Account используете Commerce Public API. Для получения тестовых сервисов используется соответственно тестовый.

Вы можете использовать данный тип взаимодействия для отображения списка доступных платежных сервисов прямо на вашей на странице оплаты.

Endpoint: POST /payout-prerequest

Request:

Response:

Create payout over Commerce Private API

Через API вы можете быстро и легко производить выплаты по любому сервису в мире.

Создание выплаты доступно только для server-server взаимодействия используя ApiKey.

Незабывайте, что данный процесс требует реализации вашей внутренней бизнес-логики по блокировке и списанию средств с баланса клиента в процессе проведения выплаты.

Endpoint: POST "https://com.paycore.io/api/payout-invoices"

Request:

{
    "test_mode": false,
    "currency": "EUR",
    "amount": 100,
    "description": "Test payout",
    "reference_id": "f3WbQNCAMAQs2DMWLyBiKF9jwv36z1TCS",	
    "service": "payment_card_uah",
    "fields": {
        "card_number": "5404367504475264"
    }
}

Response:

Payout Invoice Callback

Для корректной обработки Callbackов ознакомьтесь с полным перечнем статусов Payout Invoice.

Go live

Перед тем, как уйти в прод режим, рекомендуем проверить данный список:

  • Предоставить доступы в личный кабинет вашим сотрудникам и разработчикам.
  • Рекомендуем всем вашим пользователям активировать 2FA.
  • Проверить API ключи, их права, IP whitelist.

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

  • Проверить, что вы обрабатываете Callback.

  • Убедиться, что в процессе обработки Callback вы контролируете цифровую подпись.

Что дальше?

Предлагаем ознакомиться с полным перечнем инструментов для интеграции и готовыми решениями в разделе "Integration".

А также, вам будет интересно прочесть руководства на различные типовые реализции интеграций в зависимости от вашего типа бизнеса в разделе "Guides".

В разделе FAQ вы можете найти ответы на типовые вопросы связанные с нашим продуктом и интеграцией.

Если у вас по прежднему еще остались вопросы, мы всегда готовы на них ответить!