curl --request POST \
--url https://api-gateway.pague.dev/v2/pix \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"amount": 150.75,
"description": "Pagamento do pedido #12345",
"customer": {
"name": "João da Silva",
"document": "12345678909",
"email": "jsmith@example.com",
"phone": "+5511999998888"
},
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"pspCredentialId": "6e307aa4-4772-4230-a648-d88cee308f54",
"expiresIn": 3600,
"externalReference": "pedido-12345",
"metadata": {
"orderId": "12345",
"source": "website"
},
"split": [
{
"subAccount": "loja-centro",
"amount": 30
}
]
}
'import requests
url = "https://api-gateway.pague.dev/v2/pix"
payload = {
"amount": 150.75,
"description": "Pagamento do pedido #12345",
"customer": {
"name": "João da Silva",
"document": "12345678909",
"email": "jsmith@example.com",
"phone": "+5511999998888"
},
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"pspCredentialId": "6e307aa4-4772-4230-a648-d88cee308f54",
"expiresIn": 3600,
"externalReference": "pedido-12345",
"metadata": {
"orderId": "12345",
"source": "website"
},
"split": [
{
"subAccount": "loja-centro",
"amount": 30
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amount: 150.75,
description: 'Pagamento do pedido #12345',
customer: {
name: 'João da Silva',
document: '12345678909',
email: 'jsmith@example.com',
phone: '+5511999998888'
},
projectId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
pspCredentialId: '6e307aa4-4772-4230-a648-d88cee308f54',
expiresIn: 3600,
externalReference: 'pedido-12345',
metadata: {orderId: '12345', source: 'website'},
split: [{subAccount: 'loja-centro', amount: 30}]
})
};
fetch('https://api-gateway.pague.dev/v2/pix', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-gateway.pague.dev/v2/pix",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => 150.75,
'description' => 'Pagamento do pedido #12345',
'customer' => [
'name' => 'João da Silva',
'document' => '12345678909',
'email' => 'jsmith@example.com',
'phone' => '+5511999998888'
],
'projectId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'pspCredentialId' => '6e307aa4-4772-4230-a648-d88cee308f54',
'expiresIn' => 3600,
'externalReference' => 'pedido-12345',
'metadata' => [
'orderId' => '12345',
'source' => 'website'
],
'split' => [
[
'subAccount' => 'loja-centro',
'amount' => 30
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-gateway.pague.dev/v2/pix"
payload := strings.NewReader("{\n \"amount\": 150.75,\n \"description\": \"Pagamento do pedido #12345\",\n \"customer\": {\n \"name\": \"João da Silva\",\n \"document\": \"12345678909\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"+5511999998888\"\n },\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"pspCredentialId\": \"6e307aa4-4772-4230-a648-d88cee308f54\",\n \"expiresIn\": 3600,\n \"externalReference\": \"pedido-12345\",\n \"metadata\": {\n \"orderId\": \"12345\",\n \"source\": \"website\"\n },\n \"split\": [\n {\n \"subAccount\": \"loja-centro\",\n \"amount\": 30\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-gateway.pague.dev/v2/pix")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 150.75,\n \"description\": \"Pagamento do pedido #12345\",\n \"customer\": {\n \"name\": \"João da Silva\",\n \"document\": \"12345678909\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"+5511999998888\"\n },\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"pspCredentialId\": \"6e307aa4-4772-4230-a648-d88cee308f54\",\n \"expiresIn\": 3600,\n \"externalReference\": \"pedido-12345\",\n \"metadata\": {\n \"orderId\": \"12345\",\n \"source\": \"website\"\n },\n \"split\": [\n {\n \"subAccount\": \"loja-centro\",\n \"amount\": 30\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-gateway.pague.dev/v2/pix")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 150.75,\n \"description\": \"Pagamento do pedido #12345\",\n \"customer\": {\n \"name\": \"João da Silva\",\n \"document\": \"12345678909\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"+5511999998888\"\n },\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"pspCredentialId\": \"6e307aa4-4772-4230-a648-d88cee308f54\",\n \"expiresIn\": 3600,\n \"externalReference\": \"pedido-12345\",\n \"metadata\": {\n \"orderId\": \"12345\",\n \"source\": \"website\"\n },\n \"split\": [\n {\n \"subAccount\": \"loja-centro\",\n \"amount\": 30\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"amount": 150.75,
"currency": "BRL",
"pixCopyPaste": "00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"expiresAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"qrCodeBase64": "<string>",
"pspPaymentId": "de3516a2-c63a-4c02-b132-a239bf42e183",
"pspCredentialId": "6e307aa4-4772-4230-a648-d88cee308f54",
"externalReference": "pedido-12345",
"split": [
{
"subAccount": "loja-centro",
"amount": 30
}
]
}{
"statusCode": 400,
"error": "BadRequest",
"message": "name must be longer than or equal to 2 characters",
"timestamp": "2025-12-15T22:00:00.000Z",
"details": {},
"traceId": "<string>"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Authentication token is required",
"timestamp": "2025-12-15T22:00:00.000Z",
"details": {},
"traceId": "<string>"
}{
"statusCode": 404,
"error": "NotFound",
"message": "Resource with id 550e8400-e29b-41d4-a716-446655440000 not found",
"timestamp": "2025-12-15T22:00:00.000Z",
"details": {
"resource": "Example",
"id": "550e8400-e29b-41d4-a716-446655440000"
},
"traceId": "<string>"
}{
"statusCode": 500,
"error": "InternalError",
"message": "An unexpected error occurred",
"timestamp": "2025-12-15T22:00:00.000Z",
"details": {},
"traceId": "2771463d58840c8e116dc6dda1e1e5d0"
}Создать платёж PIX
Создаёт мгновенный платёж PIX.
Требуемое разрешение: PIX:WRITE или FULL_ACCESS
curl --request POST \
--url https://api-gateway.pague.dev/v2/pix \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"amount": 150.75,
"description": "Pagamento do pedido #12345",
"customer": {
"name": "João da Silva",
"document": "12345678909",
"email": "jsmith@example.com",
"phone": "+5511999998888"
},
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"pspCredentialId": "6e307aa4-4772-4230-a648-d88cee308f54",
"expiresIn": 3600,
"externalReference": "pedido-12345",
"metadata": {
"orderId": "12345",
"source": "website"
},
"split": [
{
"subAccount": "loja-centro",
"amount": 30
}
]
}
'import requests
url = "https://api-gateway.pague.dev/v2/pix"
payload = {
"amount": 150.75,
"description": "Pagamento do pedido #12345",
"customer": {
"name": "João da Silva",
"document": "12345678909",
"email": "jsmith@example.com",
"phone": "+5511999998888"
},
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"pspCredentialId": "6e307aa4-4772-4230-a648-d88cee308f54",
"expiresIn": 3600,
"externalReference": "pedido-12345",
"metadata": {
"orderId": "12345",
"source": "website"
},
"split": [
{
"subAccount": "loja-centro",
"amount": 30
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amount: 150.75,
description: 'Pagamento do pedido #12345',
customer: {
name: 'João da Silva',
document: '12345678909',
email: 'jsmith@example.com',
phone: '+5511999998888'
},
projectId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
pspCredentialId: '6e307aa4-4772-4230-a648-d88cee308f54',
expiresIn: 3600,
externalReference: 'pedido-12345',
metadata: {orderId: '12345', source: 'website'},
split: [{subAccount: 'loja-centro', amount: 30}]
})
};
fetch('https://api-gateway.pague.dev/v2/pix', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-gateway.pague.dev/v2/pix",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => 150.75,
'description' => 'Pagamento do pedido #12345',
'customer' => [
'name' => 'João da Silva',
'document' => '12345678909',
'email' => 'jsmith@example.com',
'phone' => '+5511999998888'
],
'projectId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'pspCredentialId' => '6e307aa4-4772-4230-a648-d88cee308f54',
'expiresIn' => 3600,
'externalReference' => 'pedido-12345',
'metadata' => [
'orderId' => '12345',
'source' => 'website'
],
'split' => [
[
'subAccount' => 'loja-centro',
'amount' => 30
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-gateway.pague.dev/v2/pix"
payload := strings.NewReader("{\n \"amount\": 150.75,\n \"description\": \"Pagamento do pedido #12345\",\n \"customer\": {\n \"name\": \"João da Silva\",\n \"document\": \"12345678909\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"+5511999998888\"\n },\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"pspCredentialId\": \"6e307aa4-4772-4230-a648-d88cee308f54\",\n \"expiresIn\": 3600,\n \"externalReference\": \"pedido-12345\",\n \"metadata\": {\n \"orderId\": \"12345\",\n \"source\": \"website\"\n },\n \"split\": [\n {\n \"subAccount\": \"loja-centro\",\n \"amount\": 30\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-gateway.pague.dev/v2/pix")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 150.75,\n \"description\": \"Pagamento do pedido #12345\",\n \"customer\": {\n \"name\": \"João da Silva\",\n \"document\": \"12345678909\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"+5511999998888\"\n },\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"pspCredentialId\": \"6e307aa4-4772-4230-a648-d88cee308f54\",\n \"expiresIn\": 3600,\n \"externalReference\": \"pedido-12345\",\n \"metadata\": {\n \"orderId\": \"12345\",\n \"source\": \"website\"\n },\n \"split\": [\n {\n \"subAccount\": \"loja-centro\",\n \"amount\": 30\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-gateway.pague.dev/v2/pix")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 150.75,\n \"description\": \"Pagamento do pedido #12345\",\n \"customer\": {\n \"name\": \"João da Silva\",\n \"document\": \"12345678909\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"+5511999998888\"\n },\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"pspCredentialId\": \"6e307aa4-4772-4230-a648-d88cee308f54\",\n \"expiresIn\": 3600,\n \"externalReference\": \"pedido-12345\",\n \"metadata\": {\n \"orderId\": \"12345\",\n \"source\": \"website\"\n },\n \"split\": [\n {\n \"subAccount\": \"loja-centro\",\n \"amount\": 30\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"amount": 150.75,
"currency": "BRL",
"pixCopyPaste": "00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"expiresAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"qrCodeBase64": "<string>",
"pspPaymentId": "de3516a2-c63a-4c02-b132-a239bf42e183",
"pspCredentialId": "6e307aa4-4772-4230-a648-d88cee308f54",
"externalReference": "pedido-12345",
"split": [
{
"subAccount": "loja-centro",
"amount": 30
}
]
}{
"statusCode": 400,
"error": "BadRequest",
"message": "name must be longer than or equal to 2 characters",
"timestamp": "2025-12-15T22:00:00.000Z",
"details": {},
"traceId": "<string>"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Authentication token is required",
"timestamp": "2025-12-15T22:00:00.000Z",
"details": {},
"traceId": "<string>"
}{
"statusCode": 404,
"error": "NotFound",
"message": "Resource with id 550e8400-e29b-41d4-a716-446655440000 not found",
"timestamp": "2025-12-15T22:00:00.000Z",
"details": {
"resource": "Example",
"id": "550e8400-e29b-41d4-a716-446655440000"
},
"traceId": "<string>"
}{
"statusCode": 500,
"error": "InternalError",
"message": "An unexpected error occurred",
"timestamp": "2025-12-15T22:00:00.000Z",
"details": {},
"traceId": "2771463d58840c8e116dc6dda1e1e5d0"
}split делит часть суммы с другими вашими кошельками — субсчетами или основным аккаунтом, через зарезервированное слово principal. Не более 10 элементов, фиксированные суммы в BRL.Инициатор — тот, кто создал платёж: он получает сумму брутто, платит полную комиссию и только потом делит остаток, поэтому потолок разделения — чистая сумма (сумма платежа за вычетом комиссии), а не брутто. Разделение происходит при зачислении, а не при создании. Возврат и MED списываются только с инициатора — с того, кто получил свою часть, средства никогда не списываются.См. Разделение платежа — там полные правила, примеры и таблица ошибок.pspCredentialId фиксирует учреждение, которое выставит этот счёт, в обход настроенной маршрутизации. Скопируйте ID в разделе Настройки → Маршрутизация в панели.Зафиксировать — не значит «предпочесть»: если учреждение недоступно или исчерпало лимит, счёт завершится ошибкой, а не уйдёт в другое. Ответ вернёт pspCredentialId как подтверждение.См. Выбор учреждения — там полные правила и таблица ошибок.Авторизации
Токен доступа, полученный через POST /auth (client_id + client_secret). Действителен в течение 300 секунд.
Заголовки
Уникальный клиентский ключ (8–255 символов), делающий запрос идемпотентным. Повторные запросы с тем же ключом возвращают закешированный ответ (TTL 24 ч). Тот же ключ с другим телом запроса возвращает 422.
8 - 255Reference субсчёта, в котором должна выполняться операция. Если заголовок не передан, операция выполняется в основном аккаунте; зарезервированное значение principal также указывает на основной аккаунт и равнозначно отсутствию заголовка. Принимается всеми эндпоинтами, кроме POST /auth и самих эндпоинтов /sub-accounts, которые всегда работают с основным аккаунтом.
Возможные ошибки: 404 SUB_ACCOUNT_NOT_FOUND, 403 SUB_ACCOUNT_FORBIDDEN, 403 SUB_ACCOUNT_SUSPENDED.
Требует, чтобы у учётных данных был включён доступ к субсчетам (Настройки → Интеграция → Учётные данные API). По умолчанию он выключен и не заменяется никаким разрешением, даже FULL_ACCESS: без него ответ — 403 SUB_ACCOUNT_FORBIDDEN.
^[a-z0-9][a-z0-9_-]{1,31}$"loja-centro"
Тело
Сумма в BRL (напр., 100.50 для R$ 100,50)
x >= 1150.75
Описание платежа
255"Pagamento do pedido #12345"
Данные плательщика (все поля необязательны).
Show child attributes
Show child attributes
ID проекта для привязки транзакции. Если не указан и у аккаунта один проект, платёж наследует этот проект; если проектов несколько — платёж создаётся без проекта.
Фиксирует учреждение, которое выставит этот счёт, в обход настроенной маршрутизации. Используйте ID из раздела «Настройки → Маршрутизация» в панели. Учреждение должно быть включено и активно в вашем аккаунте. Если оно недоступно или исчерпало лимит, счёт завершится ОШИБКОЙ и не уйдёт в другое: вы запросили именно это. Доступно аккаунтам с включённым выбором учреждения.
"6e307aa4-4772-4230-a648-d88cee308f54"
Секунд до истечения срока действия (по умолчанию: 86400 = 24 ч)
300 <= x <= 6048003600
Ваш внешний референс-ID
255"pedido-12345"
Пользовательские метаданные (пары ключ–значение)
{ "orderId": "12345", "source": "website" }
Делит часть суммы с другими субсчетами того же аккаунта при зачислении. Инициатор — тот, кто создал платёж: он получает сумму брутто, платит полную комиссию и только потом делит остаток — комиссия между получателями не делится. Сумма split не может превышать чистую сумму (сумма платежа за вычетом комиссии). Возврат и MED списываются только с инициатора; с того, кто получил свою часть, средства никогда не списываются.
10Show child attributes
Show child attributes
Ответ
Платёж PIX успешно создан
ID платежа (ID транзакции)
Статус платежа
pending, completed, failed, cancelled Сумма в BRL
150.75
Код валюты
"BRL"
Код PIX «копировать и вставить»
"00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Дата истечения срока действия
Дата создания
QR-код PIX в формате data URI (data:image/png;base64,...)
ID транзакции у платёжного провайдера (PSP). Используйте его для сверки; отсутствует, если PSP не вернул ID при создании.
"de3516a2-c63a-4c02-b132-a239bf42e183"
Учреждение, выставившее этот счёт. Приходит только если вы зафиксировали учреждение в запросе (pspCredentialId) — как подтверждение, что выбор соблюдён.
"6e307aa4-4772-4230-a648-d88cee308f54"
Ваш внешний референс-ID
"pedido-12345"
Принятое разделение, в BRL. Присутствует, только если платёж был создан с разделением — если оно пришло в ответе, значит субсчета существовали и сумма поместилась в чистую сумму. Фактически распределённое приходит в вебхуке payment_completed.
Show child attributes
Show child attributes

