Criar Payin
curl --request POST \
--url https://api.holdinglegacy.io/payin \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"paymentMethod": "<string>",
"amount": 123,
"referenceId": "<string>",
"webhookUrl": "<string>",
"isPhysicalProduct": true,
"payerIp": "<string>",
"customer": {
"name": "<string>",
"document": "<string>",
"email": "<string>",
"phone": "<string>",
"address": {
"street": "<string>",
"number": "<string>",
"complement": "<string>",
"zipCode": "<string>",
"city": "<string>",
"state": "<string>"
}
},
"items": [
{
"title": "<string>",
"quantity": 123,
"unitPrice": 123,
"description": "<string>"
}
],
"card": {
"token": "<string>",
"holderName": "<string>",
"number": "<string>",
"expirationMonth": "<string>",
"expirationYear": "<string>",
"cvv": "<string>",
"installments": 123,
"threeDSecure": {
"cavv": "<string>",
"eci": "<string>",
"xid": "<string>",
"version": "<string>",
"referenceId": "<string>",
"authenticationId": "<string>"
}
},
"antifraud": {
"sessionId": "<string>"
}
}
'import requests
url = "https://api.holdinglegacy.io/payin"
payload = {
"paymentMethod": "<string>",
"amount": 123,
"referenceId": "<string>",
"webhookUrl": "<string>",
"isPhysicalProduct": True,
"payerIp": "<string>",
"customer": {
"name": "<string>",
"document": "<string>",
"email": "<string>",
"phone": "<string>",
"address": {
"street": "<string>",
"number": "<string>",
"complement": "<string>",
"zipCode": "<string>",
"city": "<string>",
"state": "<string>"
}
},
"items": [
{
"title": "<string>",
"quantity": 123,
"unitPrice": 123,
"description": "<string>"
}
],
"card": {
"token": "<string>",
"holderName": "<string>",
"number": "<string>",
"expirationMonth": "<string>",
"expirationYear": "<string>",
"cvv": "<string>",
"installments": 123,
"threeDSecure": {
"cavv": "<string>",
"eci": "<string>",
"xid": "<string>",
"version": "<string>",
"referenceId": "<string>",
"authenticationId": "<string>"
}
},
"antifraud": { "sessionId": "<string>" }
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
paymentMethod: '<string>',
amount: 123,
referenceId: '<string>',
webhookUrl: '<string>',
isPhysicalProduct: true,
payerIp: '<string>',
customer: {
name: '<string>',
document: '<string>',
email: '<string>',
phone: '<string>',
address: {
street: '<string>',
number: '<string>',
complement: '<string>',
zipCode: '<string>',
city: '<string>',
state: '<string>'
}
},
items: [{title: '<string>', quantity: 123, unitPrice: 123, description: '<string>'}],
card: {
token: '<string>',
holderName: '<string>',
number: '<string>',
expirationMonth: '<string>',
expirationYear: '<string>',
cvv: '<string>',
installments: 123,
threeDSecure: {
cavv: '<string>',
eci: '<string>',
xid: '<string>',
version: '<string>',
referenceId: '<string>',
authenticationId: '<string>'
}
},
antifraud: {sessionId: '<string>'}
})
};
fetch('https://api.holdinglegacy.io/payin', 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.holdinglegacy.io/payin",
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([
'paymentMethod' => '<string>',
'amount' => 123,
'referenceId' => '<string>',
'webhookUrl' => '<string>',
'isPhysicalProduct' => true,
'payerIp' => '<string>',
'customer' => [
'name' => '<string>',
'document' => '<string>',
'email' => '<string>',
'phone' => '<string>',
'address' => [
'street' => '<string>',
'number' => '<string>',
'complement' => '<string>',
'zipCode' => '<string>',
'city' => '<string>',
'state' => '<string>'
]
],
'items' => [
[
'title' => '<string>',
'quantity' => 123,
'unitPrice' => 123,
'description' => '<string>'
]
],
'card' => [
'token' => '<string>',
'holderName' => '<string>',
'number' => '<string>',
'expirationMonth' => '<string>',
'expirationYear' => '<string>',
'cvv' => '<string>',
'installments' => 123,
'threeDSecure' => [
'cavv' => '<string>',
'eci' => '<string>',
'xid' => '<string>',
'version' => '<string>',
'referenceId' => '<string>',
'authenticationId' => '<string>'
]
],
'antifraud' => [
'sessionId' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.holdinglegacy.io/payin"
payload := strings.NewReader("{\n \"paymentMethod\": \"<string>\",\n \"amount\": 123,\n \"referenceId\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"isPhysicalProduct\": true,\n \"payerIp\": \"<string>\",\n \"customer\": {\n \"name\": \"<string>\",\n \"document\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"address\": {\n \"street\": \"<string>\",\n \"number\": \"<string>\",\n \"complement\": \"<string>\",\n \"zipCode\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n }\n },\n \"items\": [\n {\n \"title\": \"<string>\",\n \"quantity\": 123,\n \"unitPrice\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"card\": {\n \"token\": \"<string>\",\n \"holderName\": \"<string>\",\n \"number\": \"<string>\",\n \"expirationMonth\": \"<string>\",\n \"expirationYear\": \"<string>\",\n \"cvv\": \"<string>\",\n \"installments\": 123,\n \"threeDSecure\": {\n \"cavv\": \"<string>\",\n \"eci\": \"<string>\",\n \"xid\": \"<string>\",\n \"version\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"authenticationId\": \"<string>\"\n }\n },\n \"antifraud\": {\n \"sessionId\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.holdinglegacy.io/payin")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"paymentMethod\": \"<string>\",\n \"amount\": 123,\n \"referenceId\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"isPhysicalProduct\": true,\n \"payerIp\": \"<string>\",\n \"customer\": {\n \"name\": \"<string>\",\n \"document\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"address\": {\n \"street\": \"<string>\",\n \"number\": \"<string>\",\n \"complement\": \"<string>\",\n \"zipCode\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n }\n },\n \"items\": [\n {\n \"title\": \"<string>\",\n \"quantity\": 123,\n \"unitPrice\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"card\": {\n \"token\": \"<string>\",\n \"holderName\": \"<string>\",\n \"number\": \"<string>\",\n \"expirationMonth\": \"<string>\",\n \"expirationYear\": \"<string>\",\n \"cvv\": \"<string>\",\n \"installments\": 123,\n \"threeDSecure\": {\n \"cavv\": \"<string>\",\n \"eci\": \"<string>\",\n \"xid\": \"<string>\",\n \"version\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"authenticationId\": \"<string>\"\n }\n },\n \"antifraud\": {\n \"sessionId\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.holdinglegacy.io/payin")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"paymentMethod\": \"<string>\",\n \"amount\": 123,\n \"referenceId\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"isPhysicalProduct\": true,\n \"payerIp\": \"<string>\",\n \"customer\": {\n \"name\": \"<string>\",\n \"document\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"address\": {\n \"street\": \"<string>\",\n \"number\": \"<string>\",\n \"complement\": \"<string>\",\n \"zipCode\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n }\n },\n \"items\": [\n {\n \"title\": \"<string>\",\n \"quantity\": 123,\n \"unitPrice\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"card\": {\n \"token\": \"<string>\",\n \"holderName\": \"<string>\",\n \"number\": \"<string>\",\n \"expirationMonth\": \"<string>\",\n \"expirationYear\": \"<string>\",\n \"cvv\": \"<string>\",\n \"installments\": 123,\n \"threeDSecure\": {\n \"cavv\": \"<string>\",\n \"eci\": \"<string>\",\n \"xid\": \"<string>\",\n \"version\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"authenticationId\": \"<string>\"\n }\n },\n \"antifraud\": {\n \"sessionId\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_bodyPayins (Recebimentos)
Criar Payin
Cria uma nova requisição de pagamento (Payin) usando Cartão de Crédito, Boleto ou PIX.
POST
/
payin
Criar Payin
curl --request POST \
--url https://api.holdinglegacy.io/payin \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"paymentMethod": "<string>",
"amount": 123,
"referenceId": "<string>",
"webhookUrl": "<string>",
"isPhysicalProduct": true,
"payerIp": "<string>",
"customer": {
"name": "<string>",
"document": "<string>",
"email": "<string>",
"phone": "<string>",
"address": {
"street": "<string>",
"number": "<string>",
"complement": "<string>",
"zipCode": "<string>",
"city": "<string>",
"state": "<string>"
}
},
"items": [
{
"title": "<string>",
"quantity": 123,
"unitPrice": 123,
"description": "<string>"
}
],
"card": {
"token": "<string>",
"holderName": "<string>",
"number": "<string>",
"expirationMonth": "<string>",
"expirationYear": "<string>",
"cvv": "<string>",
"installments": 123,
"threeDSecure": {
"cavv": "<string>",
"eci": "<string>",
"xid": "<string>",
"version": "<string>",
"referenceId": "<string>",
"authenticationId": "<string>"
}
},
"antifraud": {
"sessionId": "<string>"
}
}
'import requests
url = "https://api.holdinglegacy.io/payin"
payload = {
"paymentMethod": "<string>",
"amount": 123,
"referenceId": "<string>",
"webhookUrl": "<string>",
"isPhysicalProduct": True,
"payerIp": "<string>",
"customer": {
"name": "<string>",
"document": "<string>",
"email": "<string>",
"phone": "<string>",
"address": {
"street": "<string>",
"number": "<string>",
"complement": "<string>",
"zipCode": "<string>",
"city": "<string>",
"state": "<string>"
}
},
"items": [
{
"title": "<string>",
"quantity": 123,
"unitPrice": 123,
"description": "<string>"
}
],
"card": {
"token": "<string>",
"holderName": "<string>",
"number": "<string>",
"expirationMonth": "<string>",
"expirationYear": "<string>",
"cvv": "<string>",
"installments": 123,
"threeDSecure": {
"cavv": "<string>",
"eci": "<string>",
"xid": "<string>",
"version": "<string>",
"referenceId": "<string>",
"authenticationId": "<string>"
}
},
"antifraud": { "sessionId": "<string>" }
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
paymentMethod: '<string>',
amount: 123,
referenceId: '<string>',
webhookUrl: '<string>',
isPhysicalProduct: true,
payerIp: '<string>',
customer: {
name: '<string>',
document: '<string>',
email: '<string>',
phone: '<string>',
address: {
street: '<string>',
number: '<string>',
complement: '<string>',
zipCode: '<string>',
city: '<string>',
state: '<string>'
}
},
items: [{title: '<string>', quantity: 123, unitPrice: 123, description: '<string>'}],
card: {
token: '<string>',
holderName: '<string>',
number: '<string>',
expirationMonth: '<string>',
expirationYear: '<string>',
cvv: '<string>',
installments: 123,
threeDSecure: {
cavv: '<string>',
eci: '<string>',
xid: '<string>',
version: '<string>',
referenceId: '<string>',
authenticationId: '<string>'
}
},
antifraud: {sessionId: '<string>'}
})
};
fetch('https://api.holdinglegacy.io/payin', 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.holdinglegacy.io/payin",
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([
'paymentMethod' => '<string>',
'amount' => 123,
'referenceId' => '<string>',
'webhookUrl' => '<string>',
'isPhysicalProduct' => true,
'payerIp' => '<string>',
'customer' => [
'name' => '<string>',
'document' => '<string>',
'email' => '<string>',
'phone' => '<string>',
'address' => [
'street' => '<string>',
'number' => '<string>',
'complement' => '<string>',
'zipCode' => '<string>',
'city' => '<string>',
'state' => '<string>'
]
],
'items' => [
[
'title' => '<string>',
'quantity' => 123,
'unitPrice' => 123,
'description' => '<string>'
]
],
'card' => [
'token' => '<string>',
'holderName' => '<string>',
'number' => '<string>',
'expirationMonth' => '<string>',
'expirationYear' => '<string>',
'cvv' => '<string>',
'installments' => 123,
'threeDSecure' => [
'cavv' => '<string>',
'eci' => '<string>',
'xid' => '<string>',
'version' => '<string>',
'referenceId' => '<string>',
'authenticationId' => '<string>'
]
],
'antifraud' => [
'sessionId' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.holdinglegacy.io/payin"
payload := strings.NewReader("{\n \"paymentMethod\": \"<string>\",\n \"amount\": 123,\n \"referenceId\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"isPhysicalProduct\": true,\n \"payerIp\": \"<string>\",\n \"customer\": {\n \"name\": \"<string>\",\n \"document\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"address\": {\n \"street\": \"<string>\",\n \"number\": \"<string>\",\n \"complement\": \"<string>\",\n \"zipCode\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n }\n },\n \"items\": [\n {\n \"title\": \"<string>\",\n \"quantity\": 123,\n \"unitPrice\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"card\": {\n \"token\": \"<string>\",\n \"holderName\": \"<string>\",\n \"number\": \"<string>\",\n \"expirationMonth\": \"<string>\",\n \"expirationYear\": \"<string>\",\n \"cvv\": \"<string>\",\n \"installments\": 123,\n \"threeDSecure\": {\n \"cavv\": \"<string>\",\n \"eci\": \"<string>\",\n \"xid\": \"<string>\",\n \"version\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"authenticationId\": \"<string>\"\n }\n },\n \"antifraud\": {\n \"sessionId\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.holdinglegacy.io/payin")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"paymentMethod\": \"<string>\",\n \"amount\": 123,\n \"referenceId\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"isPhysicalProduct\": true,\n \"payerIp\": \"<string>\",\n \"customer\": {\n \"name\": \"<string>\",\n \"document\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"address\": {\n \"street\": \"<string>\",\n \"number\": \"<string>\",\n \"complement\": \"<string>\",\n \"zipCode\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n }\n },\n \"items\": [\n {\n \"title\": \"<string>\",\n \"quantity\": 123,\n \"unitPrice\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"card\": {\n \"token\": \"<string>\",\n \"holderName\": \"<string>\",\n \"number\": \"<string>\",\n \"expirationMonth\": \"<string>\",\n \"expirationYear\": \"<string>\",\n \"cvv\": \"<string>\",\n \"installments\": 123,\n \"threeDSecure\": {\n \"cavv\": \"<string>\",\n \"eci\": \"<string>\",\n \"xid\": \"<string>\",\n \"version\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"authenticationId\": \"<string>\"\n }\n },\n \"antifraud\": {\n \"sessionId\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.holdinglegacy.io/payin")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"paymentMethod\": \"<string>\",\n \"amount\": 123,\n \"referenceId\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"isPhysicalProduct\": true,\n \"payerIp\": \"<string>\",\n \"customer\": {\n \"name\": \"<string>\",\n \"document\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\",\n \"address\": {\n \"street\": \"<string>\",\n \"number\": \"<string>\",\n \"complement\": \"<string>\",\n \"zipCode\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n }\n },\n \"items\": [\n {\n \"title\": \"<string>\",\n \"quantity\": 123,\n \"unitPrice\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"card\": {\n \"token\": \"<string>\",\n \"holderName\": \"<string>\",\n \"number\": \"<string>\",\n \"expirationMonth\": \"<string>\",\n \"expirationYear\": \"<string>\",\n \"cvv\": \"<string>\",\n \"installments\": 123,\n \"threeDSecure\": {\n \"cavv\": \"<string>\",\n \"eci\": \"<string>\",\n \"xid\": \"<string>\",\n \"version\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"authenticationId\": \"<string>\"\n }\n },\n \"antifraud\": {\n \"sessionId\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_bodyAutorização
Você deve obrigatoriamente fornecer sua credencial no cabeçalho.string
required
Use o Basic Auth base64 de suas chaves de produção. Ex:
Basic cGtf...Body
string
required
Os valores aceitos são:
"CREDIT_CARD", "PIX" ou "BOLETO"integer
required
Valor total da transação em centavos. Exemplo: para R$100,00 envie
10000string
required
ID único ou número do pedido dentro do banco de dados da sua aplicação associada à cobrança.
string
Opcional. Uma URL do seu backend (
https://...) que deverá ser notificada quando o status deste pagamento mudar (Ex: o Pix for pago).boolean
required
Indica se o item cobrado exige entrega física (
true) ou se é digital ou serviço (false).string
required
Endereço de IPv4 de quem está efetuando o pagamento originário (Necessário para a prevenção de Fraudes e Anti-Chargeback).
Customer (Cliente)
Objeto encapsulando quem está comprando de você.object
required
Hide propriedades
Hide propriedades
string
required
Nome completo.
string
required
CPF ou CNPJ válido apenas em números.
string
required
E-mail autêntico do pagador.
string
required
DDD + Número (Ex: 11999999999).
Items (Carrinho)
Array de objetos especificando o que está sendo comprado e taxado.array
required
Card (Cartão de Crédito)
Se opaymentMethod escolhido foi "CREDIT_CARD", o objeto card é obrigatório. Para PIX e Boleto, omita este objeto por inteiro.
Recomendado: envie apenas
card.token (gerado pelo SDK LegacyPay — veja Tokenização). Com o token, os campos de PAN bruto (number, cvv, etc.) são preenchidos com segurança pela plataforma e podem ser omitidos. Quando a tokenização é exigida, PAN bruto é rejeitado com 400 INVALID_DATA.object
Show propriedades do cartão
Show propriedades do cartão
string
Token opaco do cartão (
cvt_*) gerado pelo SDK. Quando presente, substitui os campos de PAN bruto abaixo.string
Nome impresso no plástico do cartão. Obrigatório quando não houver
token.string
Os dezesseis dígitos do cartão. Obrigatório quando não houver
token.string
Exemplo:
08. Obrigatório quando não houver token.string
Exemplo:
2027 ou 27. Obrigatório quando não houver token.string
Três ou quatro dígitos de trás. Pode ser exigido mesmo com
token (veja capabilities.tokenization.cvvRequired).integer
required
Quantidade de parcelas sem juros (Ex: 1 a 12).
object
Opcional. Dados de autenticação 3D Secure. Normalmente preenchido automaticamente pelo SDK (
prepareCardPayment()).Show propriedades 3DS
Show propriedades 3DS
string
Cardholder Authentication Verification Value retornado pelo banco.
string
Electronic Commerce Indicator (Ex:
05).string
Transaction identifier do fluxo 3DS.
string
Versão do protocolo 3DS (Ex:
2.2.0).string
Identificador da sessão 3DS (ex.:
operationSessionId retornado pela sessão de 3DS).string
ID de autenticação emitido pelo provedor de 3DS.
Antifraud (Antifraude)
Opcional. Identificador da sessão de device fingerprint coletada pelo SDK. Veja Antifraude.Response
A resposta varia ligeiramente dependendo do método de pagamento escolhido. A API sempre tentará devolver um201 Created.
Sucesso: Criação de PIX
{
"id": "payin_12345",
"externalId": "tx_998877",
"referenceId": "meu-pedido-1234",
"status": "PENDING",
"amount": 10000,
"paymentMethod": "PIX",
"createdAt": "2026-03-02T12:00:00.000Z",
"pix": {
"qrcode": "00020101021126360014br.gov.bcb.pix0114+5511999999999520400005303986540510.0058..."
}
}
Sucesso: Criação de Boleto
{
"id": "payin_12346",
"externalId": "tx_998878",
"referenceId": "meu-pedido-1235",
"status": "PENDING",
"amount": 10000,
"paymentMethod": "BOLETO",
"createdAt": "2026-03-02T12:05:00.000Z",
"boleto": {
"barcode": "34191.09008 00000.000004 00000.000006 1 800000000010000",
"url": "https://adquirente.holdinglegacy.io/boleto/12346"
}
}
Sucesso: Cartão de Crédito
{
"id": "payin_12347",
"externalId": "tx_998879",
"referenceId": "meu-pedido-1236",
"status": "APPROVED",
"amount": 10000,
"paymentMethod": "CREDIT_CARD",
"createdAt": "2026-03-02T12:10:00.000Z"
}
Pendente: Desafio 3DS (pós-ordem)
Quando a adquirente exige um desafio 3D Secure após a criação do payin, a resposta vem comstatus: "PENDING_3DS" e os campos do desafio. Use o SDK (client.handlePendingThreeDS()) para concluir.
{
"id": "payin_12348",
"externalId": "tx_998880",
"referenceId": "meu-pedido-1237",
"status": "PENDING_3DS",
"amount": 10000,
"paymentMethod": "CREDIT_CARD",
"threeDSecurePending": true,
"threeDSecureSession": "eyJhbGciOiJIUzI1NiJ9...",
"threeDSecureTransactionId": "05a1f7e4-d8c9-4c5e-b2a3-1f2e3d4c5b6a",
"threeDSecureSdkUrl": "https://cdn.provider.com/3ds-sdk.min.js",
"createdAt": "2026-03-02T12:15:00.000Z"
}
status: "APPROVED" na resposta do /payin não garante liquidação. Confirme sempre a venda final via webhook ou GET /payin/{id}.Exemplo de request com cartão tokenizado
{
"paymentMethod": "CREDIT_CARD",
"amount": 29900,
"referenceId": "pedido-003",
"isPhysicalProduct": false,
"payerIp": "200.100.50.3",
"customer": { "name": "João Oliveira", "document": "12345678900", "email": "joao@email.com", "phone": "5511988887777" },
"items": [{ "title": "Plano Mensal", "quantity": 1, "unitPrice": 29900 }],
"card": {
"token": "cvt_live_5XY8...",
"installments": 1,
"threeDSecure": { "cavv": "jJ2CBDUHAA0CAwECBQYGBAECBAE=", "eci": "05" }
},
"antifraud": { "sessionId": "mfp_live_abc123xyz" }
}
Was this page helpful?