Criar Checkout Transparente
curl --request POST \
--url https://api.abacatepay.com/v2/transparents/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"method": "PIX",
"data": {
"amount": 123,
"expiresIn": 123,
"description": "<string>",
"externalId": "<string>",
"metadata": {},
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"term": "<string>",
"content": "<string>"
}
}
}
'import requests
url = "https://api.abacatepay.com/v2/transparents/create"
payload = {
"method": "PIX",
"data": {
"amount": 123,
"expiresIn": 123,
"description": "<string>",
"externalId": "<string>",
"metadata": {},
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"term": "<string>",
"content": "<string>"
}
}
}
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({
method: 'PIX',
data: {
amount: 123,
expiresIn: 123,
description: '<string>',
externalId: '<string>',
metadata: {},
utm: {
source: '<string>',
medium: '<string>',
campaign: '<string>',
term: '<string>',
content: '<string>'
}
}
})
};
fetch('https://api.abacatepay.com/v2/transparents/create', 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.abacatepay.com/v2/transparents/create",
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([
'method' => 'PIX',
'data' => [
'amount' => 123,
'expiresIn' => 123,
'description' => '<string>',
'externalId' => '<string>',
'metadata' => [
],
'utm' => [
'source' => '<string>',
'medium' => '<string>',
'campaign' => '<string>',
'term' => '<string>',
'content' => '<string>'
]
]
]),
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.abacatepay.com/v2/transparents/create"
payload := strings.NewReader("{\n \"method\": \"PIX\",\n \"data\": {\n \"amount\": 123,\n \"expiresIn\": 123,\n \"description\": \"<string>\",\n \"externalId\": \"<string>\",\n \"metadata\": {},\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\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.abacatepay.com/v2/transparents/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"method\": \"PIX\",\n \"data\": {\n \"amount\": 123,\n \"expiresIn\": 123,\n \"description\": \"<string>\",\n \"externalId\": \"<string>\",\n \"metadata\": {},\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.abacatepay.com/v2/transparents/create")
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 \"method\": \"PIX\",\n \"data\": {\n \"amount\": 123,\n \"expiresIn\": 123,\n \"description\": \"<string>\",\n \"externalId\": \"<string>\",\n \"metadata\": {},\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "bole_k8pqr2mnvx",
"amount": 25000,
"status": "PENDING",
"devMode": false,
"barCode": "23793.38128 60007.827263 37000.963779 4 10010000025000",
"url": "https://app.abacatepay.com/pay/bole_k8pqr2mnvx/boleto",
"brCode": "00020126580014BR.GOV.BCB.PIX0136d2b4e5f6-7890-abcd-ef12-34567890abcd5204000053039865802BR5914Mariana Costa6009SAO PAULO62070503***6304F1C2",
"brCodeBase64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"platformFee": 250,
"receiptUrl": null,
"expiresAt": "2024-11-07T03:00:00.000Z",
"createdAt": "2024-11-04T14:22:10.381Z",
"updatedAt": "2024-11-04T14:22:10.381Z",
"metadata": {
"faturaId": "fatura-456",
"plano": "pro"
}
},
"error": null,
"success": {
"message": "Checkout transparente criado com sucesso"
}
}{
"error": "Token de autenticação inválido ou ausente."
}Checkout Transparente
Criar cobrança PIX
Cria um checkout transparente. Use "method": "PIX" para gerar um QR Code ou "method": "BOLETO" para emitir um boleto com PIX alternativo incluído.
POST
/
transparents
/
create
Criar Checkout Transparente
curl --request POST \
--url https://api.abacatepay.com/v2/transparents/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"method": "PIX",
"data": {
"amount": 123,
"expiresIn": 123,
"description": "<string>",
"externalId": "<string>",
"metadata": {},
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"term": "<string>",
"content": "<string>"
}
}
}
'import requests
url = "https://api.abacatepay.com/v2/transparents/create"
payload = {
"method": "PIX",
"data": {
"amount": 123,
"expiresIn": 123,
"description": "<string>",
"externalId": "<string>",
"metadata": {},
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"term": "<string>",
"content": "<string>"
}
}
}
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({
method: 'PIX',
data: {
amount: 123,
expiresIn: 123,
description: '<string>',
externalId: '<string>',
metadata: {},
utm: {
source: '<string>',
medium: '<string>',
campaign: '<string>',
term: '<string>',
content: '<string>'
}
}
})
};
fetch('https://api.abacatepay.com/v2/transparents/create', 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.abacatepay.com/v2/transparents/create",
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([
'method' => 'PIX',
'data' => [
'amount' => 123,
'expiresIn' => 123,
'description' => '<string>',
'externalId' => '<string>',
'metadata' => [
],
'utm' => [
'source' => '<string>',
'medium' => '<string>',
'campaign' => '<string>',
'term' => '<string>',
'content' => '<string>'
]
]
]),
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.abacatepay.com/v2/transparents/create"
payload := strings.NewReader("{\n \"method\": \"PIX\",\n \"data\": {\n \"amount\": 123,\n \"expiresIn\": 123,\n \"description\": \"<string>\",\n \"externalId\": \"<string>\",\n \"metadata\": {},\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\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.abacatepay.com/v2/transparents/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"method\": \"PIX\",\n \"data\": {\n \"amount\": 123,\n \"expiresIn\": 123,\n \"description\": \"<string>\",\n \"externalId\": \"<string>\",\n \"metadata\": {},\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.abacatepay.com/v2/transparents/create")
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 \"method\": \"PIX\",\n \"data\": {\n \"amount\": 123,\n \"expiresIn\": 123,\n \"description\": \"<string>\",\n \"externalId\": \"<string>\",\n \"metadata\": {},\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "bole_k8pqr2mnvx",
"amount": 25000,
"status": "PENDING",
"devMode": false,
"barCode": "23793.38128 60007.827263 37000.963779 4 10010000025000",
"url": "https://app.abacatepay.com/pay/bole_k8pqr2mnvx/boleto",
"brCode": "00020126580014BR.GOV.BCB.PIX0136d2b4e5f6-7890-abcd-ef12-34567890abcd5204000053039865802BR5914Mariana Costa6009SAO PAULO62070503***6304F1C2",
"brCodeBase64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"platformFee": 250,
"receiptUrl": null,
"expiresAt": "2024-11-07T03:00:00.000Z",
"createdAt": "2024-11-04T14:22:10.381Z",
"updatedAt": "2024-11-04T14:22:10.381Z",
"metadata": {
"faturaId": "fatura-456",
"plano": "pro"
}
},
"error": null,
"success": {
"message": "Checkout transparente criado com sucesso"
}
}{
"error": "Token de autenticação inválido ou ausente."
}Requer a permissão
CHECKOUT:READ.brCodeBase64) e o código copia e cola (brCode) — o cliente nunca sai do seu site.
Para cobrar via Boleto, veja Criar cobrança Boleto.
Campos obrigatórios
| Campo | Tipo | Descrição |
|---|---|---|
method | string | Deve ser "PIX" |
data.amount | number | Valor em centavos (ex: 10000 = R$ 100,00) |
data.utm — campanha / UTM (opcional)
No corpo data com method: "PIX", o objeto utm usa o mesmo esquema do PIX QR Code v1 (PixQrCodeV1): objeto opcional; cada campo interno também é opcional (string).
| Campo | Tipo | Descrição |
|---|---|---|
utm.source | string | Opcional |
utm.medium | string | Opcional |
utm.campaign | string | Opcional |
utm.term | string | Opcional |
utm.content | string | Opcional |
Exemplos mínimos (PIX)
Semutm:
{
"method": "PIX",
"data": {
"amount": 10000
}
}
utm:
{
"method": "PIX",
"data": {
"amount": 10000,
"utm": {
"source": "newsletter",
"medium": "email",
"campaign": "lancamento_q1",
"term": "pix",
"content": "cta_hero"
}
}
}
Requisição
{
"method": "PIX",
"data": {
"amount": 10000,
"description": "Cobrança PIX no checkout transparente",
"expiresIn": 3600,
"customer": {
"name": "Daniel Lima",
"email": "daniel_lima@abacatepay.com",
"taxId": "123.456.789-01",
"cellphone": "(11) 4002-8922"
},
"metadata": {
"pedidoId": "pedido-123"
}
}
}
Resposta
{
"data": {
"id": "pix_char_abc123xyz",
"amount": 10000,
"status": "PENDING",
"devMode": false,
"brCode": "00020160014BR.GOV.BCB.PIX070503***6304ABCD",
"brCodeBase64": "data:image/png;base64,iVBORw0KG...",
"platformFee": 100,
"receiptUrl": null,
"createdAt": "2024-11-04T18:38:28.573Z",
"updatedAt": "2024-11-04T18:38:28.573Z",
"expiresAt": "2024-11-04T19:38:28.573Z",
"metadata": {
"pedidoId": "pedido-123"
}
},
"success": true,
"error": null
}
Use
brCodeBase64 para renderizar a imagem do QR Code diretamente na sua página. Use brCode (copia e cola) para enviar por WhatsApp, Telegram ou e-mail.Authorizations
Todas as requisições devem incluir sua chave de API no header Authorization usando o formato Bearer <abacatepay-api-key>. Sem esse header a requisição será rejeitada.
Saiba mais sobre como criar e usar chaves de API na documentação de autenticação.
Body
application/json
Response
Checkout transparente criado com sucesso
Dados da cobrança retornados pelo checkout transparente. Os campos brCode e brCodeBase64 são sempre retornados (PIX direto ou PIX alternativo do boleto). Para boleto também retornam barCode e url.
Show child attributes
Show child attributes
Example:
null
Se a requisição obteve sucesso ou não.
Example:
true
Was this page helpful?
⌘I