Обзор API
API для интеграции с платежной системой. Позволяет управлять клиентами, методами оплаты и заказами.
Базовый URL:
http://carl-tech.ru:8081
Аутентификация
Для работы с API используются API-ключи и транзакционные токены.
API-ключ: Получается при регистрации клиента. Передается в заголовке x-api-key: <API_KEY>
Транзакционный токен: Используется для работы с заказами. Передается в заголовке Api-Token: <TOKEN>
Регистрационный токен
Генерация одноразового токена для регистрации нового клиента.
POST
/api/clients/registration-token
Создает одноразовый токен, который можно использовать для регистрации нового клиента.
Тело запроса может быть пустым.
JSON
Python
JavaScript
cURL
Go
PHP
Пример запроса
{}
Python (requests)
import requests
url = "http://carl-tech.ru:8081/api/clients/registration-token"
response = requests.post(url)
print(response.json())
JavaScript (Fetch)
const url = 'http://carl-tech.ru:8081/api/clients/registration-token';
fetch(url, {
method: 'POST'
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
cURL
curl -X POST \
http://carl-tech.ru:8081/api/clients/registration-token
Go
package main
import (
"io/ioutil"
"net/http"
"log"
)
func main() {
resp, err := http.Post("http://carl-tech.ru:8081/api/clients/registration-token",
"application/json", nil)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
log.Println(string(body))
}
PHP
Ответ
200 - Успешно
{
"token": "41aafd2c-5170-4d92-883e-0e5219c90132"
}
Регистрация клиента
Регистрация нового клиента с использованием регистрационного токена.
POST
/api/clients/register
Регистрирует нового клиента в системе. После успешной регистрации возвращает API-ключ клиента.
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
| name | string | Имя клиента (3-64 символа) |
| registration_token | string | Одноразовый регистрационный токен |
JSON
Python
JavaScript
cURL
Go
PHP
Пример запроса
{
"name": "ООО РОМАШКА",
"registration_token": "41aafd2c-5170-4d92-883e-0e5219c90132"
}
Python (requests)
import requests
url = "http://carl-tech.ru:8081/api/clients/register"
headers = {
"Content-Type": "application/json"
}
data = {
"name": "ООО РОМАШКА",
"registration_token": "41aafd2c-5170-4d92-883e-0e5219c90132"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
JavaScript (Fetch)
const url = 'http://carl-tech.ru:8081/api/clients/register';
const headers = {
'Content-Type': 'application/json'
};
const data = {
name: 'ООО РОМАШКА',
registration_token: '41aafd2c-5170-4d92-883e-0e5219c90132'
};
fetch(url, {
method: 'POST',
headers: headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
cURL
curl -X POST \
http://carl-tech.ru:8081/api/clients/register \
-H 'Content-Type: application/json' \
-d '{
"name": "ООО РОМАШКА",
"registration_token": "41aafd2c-5170-4d92-883e-0e5219c90132"
}'
Go
package main
import (
"bytes"
"encoding/json"
"io/ioutil"
"log"
"net/http"
)
func main() {
url := "http://carl-tech.ru:8081/api/clients/register"
data := map[string]string{
"name": "ООО РОМАШКА",
"registration_token": "41aafd2c-5170-4d92-883e-0e5219c90132",
}
jsonData, err := json.Marshal(data)
if err != nil {
log.Fatal(err)
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
log.Println(string(body))
}
PHP
'ООО РОМАШКА',
'registration_token' => '41aafd2c-5170-4d92-883e-0e5219c90132'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Ответ
201 - Клиент создан
{
"api_key": "c0c226fd-a039-494e-a59f-8346ae7d3a85",
"client": {
"id": 2,
"name": "ООО РОМАШКА",
"register_date": "2025-07-24T21:58:16.4785263+03:00",
"api_key": "c0c226fd-a039-494e-a59f-8346ae7d3a85",
"personal_token": "",
"registered": false
}
}
Транзакционный токен
Генерация токена для выполнения транзакций.
POST
/api/clients/transaction-token
Создает транзакционный токен для выполнения операций с заказами.
Один клиент может иметь до 10 активных токенов одновременно.
Заголовок:
x-api-key: <API_KEY> (полученный при регистрации клиента)
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
| name | string | Произвольное имя токена для идентификации |
JSON
Python
JavaScript
cURL
Go
PHP
Пример запроса
{
"name": "имя ключа"
}
Python (requests)
import requests
url = "http://carl-tech.ru:8081/api/clients/transaction-token"
headers = {
"x-api-key": "c0c226fd-a039-494e-a59f-8346ae7d3a85",
"Content-Type": "application/json"
}
data = {
"name": "имя ключа"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
JavaScript (Fetch)
const url = 'http://carl-tech.ru:8081/api/clients/transaction-token';
const headers = {
'x-api-key': 'c0c226fd-a039-494e-a59f-8346ae7d3a85',
'Content-Type': 'application/json'
};
const data = {
name: 'имя ключа'
};
fetch(url, {
method: 'POST',
headers: headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
cURL
curl -X POST \
http://carl-tech.ru:8081/api/clients/transaction-token \
-H 'x-api-key: c0c226fd-a039-494e-a59f-8346ae7d3a85' \
-H 'Content-Type: application/json' \
-d '{
"name": "имя ключа"
}'
Go
package main
import (
"bytes"
"encoding/json"
"io/ioutil"
"log"
"net/http"
)
func main() {
url := "http://carl-tech.ru:8081/api/clients/transaction-token"
data := map[string]string{
"name": "имя ключа",
}
jsonData, err := json.Marshal(data)
if err != nil {
log.Fatal(err)
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
req.Header.Set("x-api-key", "c0c226fd-a039-494e-a59f-8346ae7d3a85")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
log.Println(string(body))
}
PHP
'имя ключа'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Ответ
200 - Успешно
{
"transaction_token": "cf617f32-e3fe-4f3c-bf19-c3709d047c65"
}
Создание метода оплаты
Добавление нового метода оплаты в систему.
POST
/api/payment-methods
Создает новый метод оплаты, который можно использовать для обработки платежей.
Заголовок:
Api-Token: <TRANSACTION_TOKEN>
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
| name | string | Название метода |
| work_type | string |
Тип метода:
local_requisites |
test_requisites |
gateway_h2h
|
JSON
Python
JavaScript
cURL
Go
PHP
Пример запроса
{
"name": "Alexey",
"work_type": "local_requisites"
}
Python (requests)
import requests
url = "http://carl-tech.ru:8081/api/payment-methods"
headers = {
"Api-Token": "cf617f32-e3fe-4f3c-bf19-c3709d047c65",
"Content-Type": "application/json"
}
data = {
"name": "Alexey",
"work_type": "local_requisites"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
JavaScript (Fetch)
const url = 'http://carl-tech.ru:8081/api/payment-methods';
const headers = {
'Api-Token': 'cf617f32-e3fe-4f3c-bf19-c3709d047c65',
'Content-Type': 'application/json'
};
const data = {
name: 'Alexey',
work_type: 'local_requisites'
};
fetch(url, {
method: 'POST',
headers: headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
cURL
curl -X POST \
http://carl-tech.ru:8081/api/payment-methods \
-H 'Api-Token: cf617f32-e3fe-4f3c-bf19-c3709d047c65' \
-H 'Content-Type: application/json' \
-d '{
"name": "Alexey",
"work_type": "local_requisites"
}'
Go
package main
import (
"bytes"
"encoding/json"
"io/ioutil"
"log"
"net/http"
)
func main() {
url := "http://carl-tech.ru:8081/api/payment-methods"
data := map[string]string{
"name": "Alexey",
"work_type": "local_requisites",
}
jsonData, err := json.Marshal(data)
if err != nil {
log.Fatal(err)
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
req.Header.Set("Api-Token", "cf617f32-e3fe-4f3c-bf19-c3709d047c65")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
log.Println(string(body))
}
PHP
'Alexey',
'work_type' => 'local_requisites'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Ответ
201 - Метод создан
{
"id": 1,
"work_type": "local_requisites",
"name": "Alexey"
}
Добавление реквизитов
Добавление платежных реквизитов к методу оплаты.
POST
/api/payment-methods/:method_id/requisites
Добавляет платежные реквизиты к существующему методу оплаты.
:method_id - это ID, полученный при создании метода оплаты.
Заголовок:
Api-Token: <TRANSACTION_TOKEN>
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
| type | string | Тип реквизитов: SBP | CARD |
| value | string | Номер телефона/карты |
| bank | string | Название банка |
| recipient | string | ФИО получателя |
JSON
Python
JavaScript
cURL
Go
PHP
Пример запроса
{
"type": "SBP",
"value": "79261234567",
"bank": "Тинькофф",
"recipient": "Иванов Иван Иванович"
}
Python (requests)
import requests
url = "http://carl-tech.ru:8081/api/payment-methods/1/requisites"
headers = {
"Api-Token": "cf617f32-e3fe-4f3c-bf19-c3709d047c65",
"Content-Type": "application/json"
}
data = {
"type": "SBP",
"value": "79261234567",
"bank": "Тинькофф",
"recipient": "Иванов Иван Иванович"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
JavaScript (Fetch)
const url = 'http://carl-tech.ru:8081/api/payment-methods/1/requisites';
const headers = {
'Api-Token': 'cf617f32-e3fe-4f3c-bf19-c3709d047c65',
'Content-Type': 'application/json'
};
const data = {
type: 'SBP',
value: '79261234567',
bank: 'Тинькофф',
recipient: 'Иванов Иван Иванович'
};
fetch(url, {
method: 'POST',
headers: headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
cURL
curl -X POST \
http://carl-tech.ru:8081/api/payment-methods/1/requisites \
-H 'Api-Token: cf617f32-e3fe-4f3c-bf19-c3709d047c65' \
-H 'Content-Type: application/json' \
-d '{
"type": "SBP",
"value": "79261234567",
"bank": "Тинькофф",
"recipient": "Иванов Иван Иванович"
}'
Go
package main
import (
"bytes"
"encoding/json"
"io/ioutil"
"log"
"net/http"
)
func main() {
url := "http://carl-tech.ru:8081/api/payment-methods/1/requisites"
data := map[string]string{
"type": "SBP",
"value": "79261234567",
"bank": "Тинькофф",
"recipient": "Иванов Иван Иванович",
}
jsonData, err := json.Marshal(data)
if err != nil {
log.Fatal(err)
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
req.Header.Set("Api-Token", "cf617f32-e3fe-4f3c-bf19-c3709d047c65")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
log.Println(string(body))
}
PHP
'SBP',
'value' => '79261234567',
'bank' => 'Тинькофф',
'recipient' => 'Иванов Иван Иванович'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Ответ
200 - Успешно
{
"message": "requisite added successfully"
}
Привязка клиента
Привязка клиента к методу оплаты.
POST
/api/payment-methods/:method_id/clients
Привязывает клиента к методу оплаты, позволяя ему использовать этот метод для платежей.
:method_id - это ID, полученный при создании метода оплаты.
Заголовок:
Api-Token: <TRANSACTION_TOKEN>
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
| client_id | integer | ID клиента |
JSON
Python
JavaScript
cURL
Go
PHP
Пример запроса
{
"client_id": 1
}
Python (requests)
import requests
url = "http://carl-tech.ru:8081/api/payment-methods/1/clients"
headers = {
"Api-Token": "cf617f32-e3fe-4f3c-bf19-c3709d047c65",
"Content-Type": "application/json"
}
data = {
"client_id": 1
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
JavaScript (Fetch)
const url = 'http://carl-tech.ru:8081/api/payment-methods/1/clients';
const headers = {
'Api-Token': 'cf617f32-e3fe-4f3c-bf19-c3709d047c65',
'Content-Type': 'application/json'
};
const data = {
client_id: 1
};
fetch(url, {
method: 'POST',
headers: headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
cURL
curl -X POST \
http://carl-tech.ru:8081/api/payment-methods/1/clients \
-H 'Api-Token: cf617f32-e3fe-4f3c-bf19-c3709d047c65' \
-H 'Content-Type: application/json' \
-d '{
"client_id": 1
}'
Go
package main
import (
"bytes"
"encoding/json"
"io/ioutil"
"log"
"net/http"
)
func main() {
url := "http://carl-tech.ru:8081/api/payment-methods/1/clients"
data := map[string]int{
"client_id": 1,
}
jsonData, err := json.Marshal(data)
if err != nil {
log.Fatal(err)
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
req.Header.Set("Api-Token", "cf617f32-e3fe-4f3c-bf19-c3709d047c65")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
log.Println(string(body))
}
PHP
1
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Ответ
200 - Успешно
{
"message": "client successfully added to payment method"
}
Создание заказа
Создание нового платежного заказа.
POST
/api/orders
Создает новый заказ для оплаты. Возвращает реквизиты для перевода средств.
Заголовок:
Api-Token: <TRANSACTION_TOKEN>
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
| payment_type | string | Тип платежа: SBP | CARD |
| amount | float | Сумма платежа |
| currency | string | Валюта: RUB |
| webhook_url | string | URL для уведомлений о статусе |
| is_test | boolean | Тестовый заказ (необязательно) |
| is_test_status | string | Желаемый тестовый статус: confirmed (необязательно) |
JSON
Python
JavaScript
cURL
Go
PHP
Пример запроса
{
"payment_type": "SBP",
"amount": 1500.5,
"currency": "RUB",
"webhook_url": "https://webhook.site/a680601b-49f9-414b-9d6b-1816529fc2d6",
"is_test": true,
"is_test_status": "confirmed"
}
Python (requests)
import requests
url = "http://carl-tech.ru:8081/api/orders"
headers = {
"Api-Token": "cf617f32-e3fe-4f3c-bf19-c3709d047c65",
"Content-Type": "application/json"
}
data = {
"payment_type": "SBP",
"amount": 1500.5,
"currency": "RUB",
"webhook_url": "https://webhook.site/a680601b-49f9-414b-9d6b-1816529fc2d6",
"is_test": True,
"is_test_status": "confirmed"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
JavaScript (Fetch)
const url = 'http://carl-tech.ru:8081/api/orders';
const headers = {
'Api-Token': 'cf617f32-e3fe-4f3c-bf19-c3709d047c65',
'Content-Type': 'application/json'
};
const data = {
payment_type: 'SBP',
amount: 1500.5,
currency: 'RUB',
webhook_url: 'https://webhook.site/a680601b-49f9-414b-9d6b-1816529fc2d6',
is_test: true,
is_test_status: 'confirmed'
};
fetch(url, {
method: 'POST',
headers: headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
cURL
curl -X POST \
http://carl-tech.ru:8081/api/orders \
-H 'Api-Token: cf617f32-e3fe-4f3c-bf19-c3709d047c65' \
-H 'Content-Type: application/json' \
-d '{
"payment_type": "SBP",
"amount": 1500.5,
"currency": "RUB",
"webhook_url": "https://webhook.site/a680601b-49f9-414b-9d6b-1816529fc2d6",
"is_test": true,
"is_test_status": "confirmed"
}'
Go
package main
import (
"bytes"
"encoding/json"
"io/ioutil"
"log"
"net/http"
)
func main() {
url := "http://carl-tech.ru:8081/api/orders"
data := map[string]interface{}{
"payment_type": "SBP",
"amount": 1500.5,
"currency": "RUB",
"webhook_url": "https://webhook.site/a680601b-49f9-414b-9d6b-1816529fc2d6",
"is_test": true,
"is_test_status": "confirmed",
}
jsonData, err := json.Marshal(data)
if err != nil {
log.Fatal(err)
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
req.Header.Set("Api-Token", "cf617f32-e3fe-4f3c-bf19-c3709d047c65")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
log.Println(string(body))
}
PHP
'SBP',
'amount' => 1500.5,
'currency' => 'RUB',
'webhook_url' => 'https://webhook.site/a680601b-49f9-414b-9d6b-1816529fc2d6',
'is_test' => true,
'is_test_status' => 'confirmed'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Ответ
201 - Заказ создан
{
"amount": 1500.5,
"created_at": "2025-07-24T21:42:18.5299606+03:00",
"currency": "RUB",
"id": 6,
"requisite": {
"bank": "Тинькофф",
"number": "79261234567",
"receiver": "Иван И."
},
"type": "SBP",
"uuid": "fb53c414-9038-470d-8701-59932a582924"
}
Внимание: Заказы автоматически отменяются через 10 минут, если не было подтверждения платежа.
Подтверждение заказа
Подтверждение получения платежа по заказу.
POST
/api/orders/confirm
Подтверждает получение платежа по заказу. После подтверждения система отправит webhook с статусом
confirmed.
Заголовок:
Api-Token: <TRANSACTION_TOKEN>
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
| order_uuid | string | UUID заказа |
JSON
Python
JavaScript
cURL
Go
PHP
Пример запроса
{
"order_uuid": "471ee034-ed46-40c9-93d0-5fd6d41c837b"
}
Python (requests)
import requests
url = "http://carl-tech.ru:8081/api/orders/confirm"
headers = {
"Api-Token": "cf617f32-e3fe-4f3c-bf19-c3709d047c65",
"Content-Type": "application/json"
}
data = {
"order_uuid": "471ee034-ed46-40c9-93d0-5fd6d41c837b"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
JavaScript (Fetch)
const url = 'http://carl-tech.ru:8081/api/orders/confirm';
const headers = {
'Api-Token': 'cf617f32-e3fe-4f3c-bf19-c3709d047c65',
'Content-Type': 'application/json'
};
const data = {
order_uuid: '471ee034-ed46-40c9-93d0-5fd6d41c837b'
};
fetch(url, {
method: 'POST',
headers: headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
cURL
curl -X POST \
http://carl-tech.ru:8081/api/orders/confirm \
-H 'Api-Token: cf617f32-e3fe-4f3c-bf19-c3709d047c65' \
-H 'Content-Type: application/json' \
-d '{
"order_uuid": "471ee034-ed46-40c9-93d0-5fd6d41c837b"
}'
Go
package main
import (
"bytes"
"encoding/json"
"io/ioutil"
"log"
"net/http"
)
func main() {
url := "http://carl-tech.ru:8081/api/orders/confirm"
data := map[string]string{
"order_uuid": "471ee034-ed46-40c9-93d0-5fd6d41c837b",
}
jsonData, err := json.Marshal(data)
if err != nil {
log.Fatal(err)
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
req.Header.Set("Api-Token", "cf617f32-e3fe-4f3c-bf19-c3709d047c65")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
log.Println(string(body))
}
PHP
'471ee034-ed46-40c9-93d0-5fd6d41c837b'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Ответ
200 - Успешно
{
"status": "confirmed"
}
Поиск заказов
Поиск заказов по различным критериям.
POST
/api/orders/search
Поиск заказов с фильтрацией по различным параметрам.
Заголовок:
Api-Token: <TRANSACTION_TOKEN>
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
| client_id | integer | ID клиента (опционально) |
| requisite_number | string | Номер реквизита (опционально) |
| receiver_name | string | Имя получателя (опционально) |
| status | string | Статус заказа: pending | confirmed | failed (опционально) |
| date_from | string | Дата начала периода (формат: YYYY-MM-DD) (опционально) |
| date_to | string | Дата окончания периода (формат: YYYY-MM-DD) (опционально) |
JSON
Python
GO
JavaScript (Fetch)
PHP
Пример запроса
{
"client_id": 12345,
"requisite_number": "1234567890",
"receiver_name": "Иван И.",
"status": "confirmed",
"date_from": "2023-05-01",
"date_to": "2023-05-20"
}
Пример запроса — Python
import requests
headers = {
"Api-Token": "<TRANSACTION_TOKEN>"
}
data = {
"client_id": 12345,
"requisite_number": "1234567890",
"receiver_name": "Иван И.",
"status": "confirmed",
"date_from": "2023-05-01",
"date_to": "2023-05-20"
}
response = requests.post("https://api.example.com/api/orders/search", json=data, headers=headers)
print(response.json())Пример запроса — GO
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
body := map[string]interface{}{
"client_id": 12345,
"requisite_number": "1234567890",
"receiver_name": "Иван И.",
"status": "confirmed",
"date_from": "2023-05-01",
"date_to": "2023-05-20",
}
jsonData, _ := json.Marshal(body)
req, _ := http.NewRequest("POST", "https://api.example.com/api/orders/search", bytes.NewBuffer(jsonData))
req.Header.Set("Api-Token", "<TRANSACTION_TOKEN>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
res, _ := client.Do(req)
defer res.Body.Close()
fmt.Println(res.Status)
}Пример запроса — JavaScript (Fetch)
fetch("https://api.example.com/api/orders/search", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Api-Token": "<TRANSACTION_TOKEN>"
},
body: JSON.stringify({
client_id: 12345,
requisite_number: "1234567890",
receiver_name: "Иван И.",
status: "confirmed",
date_from: "2023-05-01",
date_to: "2023-05-20"
})
})
.then(res => res.json())
.then(data => console.log(data));Пример запроса — PHP
<?php
$payload = json_encode([
"client_id" => 12345,
"requisite_number" => "1234567890",
"receiver_name" => "Иван И.",
"status" => "confirmed",
"date_from" => "2023-05-01",
"date_to" => "2023-05-20"
]);
$ch = curl_init("https://api.example.com/api/orders/search");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Api-Token: <TRANSACTION_TOKEN>"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Ответ
200 - Успешно
[
{
"uuid": "ord_1a2b3c4d5e6f7g8h9i0j",
"client_id": 12345,
"amount": 100.50,
"currency": "RUB",
"status": "confirmed",
"created_at": "2023-05-15T12:00:00Z",
"confirmed_at": "2023-05-15T12:05:00Z"
},
{
"uuid": "ord_9i8h7g6f5e4d3c2b1a0j",
"client_id": 12345,
"amount": 200.00,
"currency": "RUB",
"status": "confirmed",
"created_at": "2023-05-10T10:30:00Z",
"confirmed_at": "2023-05-10T10:35:00Z"
}
]
Список заказов
Получение списка всех заказов (возможно, временная или административная ручка).
GET
/api/orders
Возвращает список всех заказов в системе. Для пагинации можно использовать параметры
limit и offset.
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
| limit | integer | Количество записей (по умолчанию: 50) |
| offset | integer | Смещение (по умолчанию: 0) |
Ответ
200 - Успешно
{
"total": 125,
"limit": 50,
"offset": 0,
"data": [
{
"uuid": "ord_1a2b3c4d5e6f7g8h9i0j",
"client_id": 12345,
"amount": 100.50,
"currency": "RUB",
"status": "confirmed",
"created_at": "2023-05-20T12:00:00Z"
},
{
"uuid": "ord_9i8h7g6f5e4d3c2b1a0j",
"client_id": 67890,
"amount": 200.00,
"currency": "RUB",
"status": "pending",
"created_at": "2023-05-20T11:30:00Z"
}
]
}
Дополнительная информация
Статусы заказов
- pending - устанавливается по умолчанию при создании заказа
- confirmed - после подтверждения платежа
- failed - если заказ просрочен (10 минут)
Авторизация
Все ручки /api/orders требуют валидного транзакционного токена в заголовке Api-Token.