Yuupe Pay API v1
Todos os endpoints, campos e respostas, gerados da mesma especificação que valida as chamadas. O que está aqui é o que a API aceita.
https://yuupe.me/api/v1/pay- Autenticação:
Authorization: Bearer yp_test_…(sandbox) ouyp_live_…(produção). Veja Autenticação. - Valores em centavos; datas em ISO 8601; corpo e respostas em JSON.
- Erros sempre no mesmo formato, com
erro.codigoestável. Veja Erros e mensagens. - Especificação OpenAPI 3.1 para importar no Postman/Insomnia: openapi.json.
Criar e cobrar um pedido
/pedidosCria o pedido e cobra. Cartão passa sempre pelo 3DS 2.0: envie comprador.documento, comprador.endereco, o dispositivo do pay.js e o IP do comprador no cabeçalho X-Yuupe-IP-Comprador. O cartão responde sempre aguardando_autenticacao com autenticacao, que o navegador passa para YuupePay.autenticar(): o pay.js coleta os dados do dispositivo, o banco aprova direto ou pede confirmação, e só então a cobrança é feita. O resultado final chega pelo webhook e pelo GET /pedidos/{id}. Pix (com comprador.documento e comprador.endereco) responde aguardando_pagamento com o QR. Repetir o mesmo numero_pedido devolve o pedido existente (200) sem nova cobrança.
Cabeçalhos
| Campo | Descrição |
|---|---|
X-Yuupe-IP-Compradorstring | IP (IPv4) do navegador do comprador. Obrigatório no cartão. |
Corpo (NovoPedido)
| Campo | Descrição |
|---|---|
numero_pedidoobrigatóriostring | Seu número do pedido. Único por loja e ambiente: repetir devolve o mesmo pedido, sem cobrar de novo. mín. 1 · máx. 60 · padrão ^[A-Za-z0-9._\-:/#]+$ |
metodoobrigatórioenum | cartaopix |
parcelasinteger | Só cartão. Respeita o máximo e a parcela mínima definidos pela loja. ≥ 1 · ≤ 12 |
token_cartaostring | Gerado no navegador pelo pay.js (YuupePay.tokenizarCartao). Obrigatório no cartão. Vale 5 minutos. mín. 8 · máx. 200 |
dispositivoDispositivo | Devolvido por YuupePay.tokenizarCartao no navegador. Repasse como veio. Obrigatório no cartão (3DS). |
user_agentobrigatóriostring | mín. 1 · máx. 1000 |
idiomastring | máx. 20 |
tela_largurainteger | |
tela_alturainteger | |
profundidade_corinteger | |
fuso_horasnumber | |
javaboolean | |
compradorobrigatórioComprador | |
nomeobrigatóriostring | mín. 2 · máx. 120 |
emailobrigatóriostring (email) | máx. 160 |
documentostring | CPF ou CNPJ, com ou sem pontuação. Obrigatório no cartão e no Pix (exigência da operadora). máx. 20 |
telefonestring | Recomendado no cartão: o banco usa na autenticação 3DS. máx. 20 |
enderecoEndereco | Endereço de cobrança. Obrigatório no cartão e no Pix (exigência da operadora). |
logradouroobrigatóriostring | mín. 1 · máx. 120 |
numeroobrigatóriostring | mín. 1 · máx. 20 |
complementostring | máx. 60 |
bairroobrigatóriostring | mín. 1 · máx. 80 |
cidadeobrigatóriostring | mín. 1 · máx. 80 |
ufobrigatóriostring | mín. 2 · máx. 2 |
cepobrigatóriostring | mín. 8 · máx. 9 |
itensobrigatóriolista de Item | |
descricaoobrigatóriostring | mín. 1 · máx. 200 |
quantidadeobrigatóriointeger | ≥ 1 · ≤ 10000 |
valor_unitario_centavosobrigatóriointeger | ≥ 1 |
skustring | máx. 60 |
metadadosobject | Até 20 pares chave/valor devolvidos no pedido e no webhook. |
idiomaenum | Idioma do comprador para motivo.mensagem_comprador. Padrão: pt-BR.pt-BRpt-PTenes |
Respostas
| 200 | Pedido já existia (idempotência) · Pedido |
| 201 | Pedido criado · Pedido |
| 400 | Requisição inválida · Erro |
| 401 | Chave ausente, inválida ou revogada · Erro |
| 422 | A operadora recusou os dados · Erro |
| 429 | Limite de requisições · Erro |
| 503 | Loja sem configuração para cobrar (ex.: 3DS indisponível) · Erro |
curl -X POST "https://yuupe.me/api/v1/pay/pedidos" \
-H "Authorization: Bearer yp_test_SUA_CHAVE" \
-H "Content-Type: application/json" \
-H "X-Yuupe-IP-Comprador: 203.0.113.10" \
-d '{
"numero_pedido": "NIC-2026-000123",
"metodo": "pix",
"comprador": {
"nome": "Maria Souza",
"email": "maria@exemplo.com",
"documento": "529.982.247-25",
"telefone": "+5561999990000",
"endereco": {
"logradouro": "Rua das Flores",
"numero": "123",
"complemento": "Apto 45",
"bairro": "Asa Sul",
"cidade": "Brasília",
"uf": "DF",
"cep": "70000-000"
}
},
"itens": [
{
"descricao": "Combo Família",
"quantidade": 1,
"valor_unitario_centavos": 15118,
"sku": "COMBO-FAM"
}
],
"metadados": {},
"idioma": "pt-BR"
}'{
"id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"numero_pedido": "texto",
"ambiente": "sandbox",
"status": "criado",
"metodo": "cartao",
"parcelas": 1,
"valor_centavos": 1,
"valor_estornado_centavos": 1,
"comprador": {
"nome": "Maria Souza",
"email": "maria@exemplo.com",
"documento": "529.982.247-25",
"telefone": "+5561999990000",
"endereco": {
"logradouro": "Rua das Flores",
"numero": "123",
"complemento": "Apto 45",
"bairro": "Asa Sul",
"cidade": "Brasília",
"uf": "DF",
"cep": "70000-000"
}
},
"itens": [
{
"descricao": "Combo Família",
"quantidade": 1,
"valor_unitario_centavos": 15118,
"sku": "COMBO-FAM"
}
],
"metadados": {},
"cartao": {
"bandeira": "texto",
"ultimos4": "texto"
},
"pix": {
"qr_code": "texto",
"qr_code_imagem": "texto",
"expira_em": "texto"
},
"autenticacao": {
"pedido_id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"etapa": "coleta",
"url": "texto",
"token": "texto",
"continuar_url": "texto",
"expira_em": "texto"
},
"verificacao_3ds": {
"resultado": "texto",
"responsabilidade_do_emissor": true
},
"motivo_recusa": "texto",
"motivo": {
"codigo": "cartao_sem_limite",
"mensagem_comprador": "Seu cartão não tem limite disponível para esta compra. Tente outro cartão ou pague com Pix.",
"tentar_novamente": "sim",
"detalhe_operadora": {
"codigo": "texto",
"mensagem": "texto"
}
},
"criado_em": "texto",
"pago_em": "texto"
}comprador.documento e comprador.endereco são obrigatórios. No cartão, também token_cartao, dispositivo e o cabeçalho X-Yuupe-IP-Comprador.Listar pedidos
/pedidosParâmetros da URL
| Campo | Descrição |
|---|---|
statusenum | |
desdestring | ISO 8601 |
atestring | |
limiteinteger | |
antes_destring | Cursor: criado_em do último item da página anterior. |
Respostas
| 200 | Página de pedidos, mais novos primeiro · JSON |
| 400 | Requisição inválida · Erro |
| 401 | Chave ausente, inválida ou revogada · Erro |
| 429 | Limite de requisições · Erro |
curl -X GET "https://yuupe.me/api/v1/pay/pedidos?status=aprovado&desde=2026-10-01T00%3A00%3A00-03%3A00&limite=20" \
-H "Authorization: Bearer yp_test_SUA_CHAVE"{
"pedidos": [
{
"id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"numero_pedido": "texto",
"ambiente": "sandbox",
"status": "criado",
"metodo": "cartao",
"parcelas": 1,
"valor_centavos": 1,
"valor_estornado_centavos": 1,
"comprador": {
"nome": "Maria Souza",
"email": "maria@exemplo.com",
"documento": "529.982.247-25",
"telefone": "+5561999990000",
"endereco": {
"logradouro": "Rua das Flores",
"numero": "123",
"complemento": "Apto 45",
"bairro": "Asa Sul",
"cidade": "Brasília",
"uf": "DF",
"cep": "70000-000"
}
},
"itens": [
{
"descricao": "Combo Família",
"quantidade": 1,
"valor_unitario_centavos": 15118,
"sku": "COMBO-FAM"
}
],
"metadados": {},
"cartao": {
"bandeira": "texto",
"ultimos4": "texto"
},
"pix": {
"qr_code": "texto",
"qr_code_imagem": "texto",
"expira_em": "texto"
},
"autenticacao": {
"pedido_id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"etapa": "coleta",
"url": "texto",
"token": "texto",
"continuar_url": "texto",
"expira_em": "texto"
},
"verificacao_3ds": {
"resultado": "texto",
"responsabilidade_do_emissor": true
},
"motivo_recusa": "texto",
"motivo": {
"codigo": "cartao_sem_limite",
"mensagem_comprador": "Seu cartão não tem limite disponível para esta compra. Tente outro cartão ou pague com Pix.",
"tentar_novamente": "sim",
"detalhe_operadora": {
"codigo": "texto",
"mensagem": "texto"
}
},
"criado_em": "texto",
"pago_em": "texto"
}
],
"proximo": "texto"
}Consultar um pedido
/pedidos/{id}Se o pedido estiver aguardando, a Yuupe confere o estado na operadora antes de responder. Use numero_pedido no lugar do id com GET /pedidos/por-numero/{numero_pedido}.
Parâmetros do caminho
| Campo | Descrição |
|---|---|
idobrigatóriostring (uuid) | id do pedido na Yuupe Pay |
Respostas
| 200 | Pedido · Pedido |
| 400 | Requisição inválida · Erro |
| 401 | Chave ausente, inválida ou revogada · Erro |
| 404 | Não encontrado · Erro |
| 429 | Limite de requisições · Erro |
curl -X GET "https://yuupe.me/api/v1/pay/pedidos/3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90" \
-H "Authorization: Bearer yp_test_SUA_CHAVE"{
"id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"numero_pedido": "texto",
"ambiente": "sandbox",
"status": "criado",
"metodo": "cartao",
"parcelas": 1,
"valor_centavos": 1,
"valor_estornado_centavos": 1,
"comprador": {
"nome": "Maria Souza",
"email": "maria@exemplo.com",
"documento": "529.982.247-25",
"telefone": "+5561999990000",
"endereco": {
"logradouro": "Rua das Flores",
"numero": "123",
"complemento": "Apto 45",
"bairro": "Asa Sul",
"cidade": "Brasília",
"uf": "DF",
"cep": "70000-000"
}
},
"itens": [
{
"descricao": "Combo Família",
"quantidade": 1,
"valor_unitario_centavos": 15118,
"sku": "COMBO-FAM"
}
],
"metadados": {},
"cartao": {
"bandeira": "texto",
"ultimos4": "texto"
},
"pix": {
"qr_code": "texto",
"qr_code_imagem": "texto",
"expira_em": "texto"
},
"autenticacao": {
"pedido_id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"etapa": "coleta",
"url": "texto",
"token": "texto",
"continuar_url": "texto",
"expira_em": "texto"
},
"verificacao_3ds": {
"resultado": "texto",
"responsabilidade_do_emissor": true
},
"motivo_recusa": "texto",
"motivo": {
"codigo": "cartao_sem_limite",
"mensagem_comprador": "Seu cartão não tem limite disponível para esta compra. Tente outro cartão ou pague com Pix.",
"tentar_novamente": "sim",
"detalhe_operadora": {
"codigo": "texto",
"mensagem": "texto"
}
},
"criado_em": "texto",
"pago_em": "texto"
}Consultar pelo seu número do pedido
/pedidos/por-numero/{numero_pedido}Parâmetros do caminho
| Campo | Descrição |
|---|---|
numero_pedidoobrigatóriostring |
Respostas
| 200 | Pedido · Pedido |
| 400 | Requisição inválida · Erro |
| 401 | Chave ausente, inválida ou revogada · Erro |
| 404 | Não encontrado · Erro |
| 429 | Limite de requisições · Erro |
curl -X GET "https://yuupe.me/api/v1/pay/pedidos/por-numero/NIC-2026-000123" \
-H "Authorization: Bearer yp_test_SUA_CHAVE"{
"id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"numero_pedido": "texto",
"ambiente": "sandbox",
"status": "criado",
"metodo": "cartao",
"parcelas": 1,
"valor_centavos": 1,
"valor_estornado_centavos": 1,
"comprador": {
"nome": "Maria Souza",
"email": "maria@exemplo.com",
"documento": "529.982.247-25",
"telefone": "+5561999990000",
"endereco": {
"logradouro": "Rua das Flores",
"numero": "123",
"complemento": "Apto 45",
"bairro": "Asa Sul",
"cidade": "Brasília",
"uf": "DF",
"cep": "70000-000"
}
},
"itens": [
{
"descricao": "Combo Família",
"quantidade": 1,
"valor_unitario_centavos": 15118,
"sku": "COMBO-FAM"
}
],
"metadados": {},
"cartao": {
"bandeira": "texto",
"ultimos4": "texto"
},
"pix": {
"qr_code": "texto",
"qr_code_imagem": "texto",
"expira_em": "texto"
},
"autenticacao": {
"pedido_id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"etapa": "coleta",
"url": "texto",
"token": "texto",
"continuar_url": "texto",
"expira_em": "texto"
},
"verificacao_3ds": {
"resultado": "texto",
"responsabilidade_do_emissor": true
},
"motivo_recusa": "texto",
"motivo": {
"codigo": "cartao_sem_limite",
"mensagem_comprador": "Seu cartão não tem limite disponível para esta compra. Tente outro cartão ou pague com Pix.",
"tentar_novamente": "sim",
"detalhe_operadora": {
"codigo": "texto",
"mensagem": "texto"
}
},
"criado_em": "texto",
"pago_em": "texto"
}Configuração do checkout para um valor
/checkout-configDevolve a chave pública para o pay.js e as opções de parcelamento que a loja aceita para o valor do carrinho.
Parâmetros da URL
| Campo | Descrição |
|---|---|
valor_centavosobrigatóriointeger |
Respostas
| 200 | Configuração · CheckoutConfig |
| 400 | Requisição inválida · Erro |
| 401 | Chave ausente, inválida ou revogada · Erro |
| 429 | Limite de requisições · Erro |
curl -X GET "https://yuupe.me/api/v1/pay/checkout-config?valor_centavos=15980" \
-H "Authorization: Bearer yp_test_SUA_CHAVE"{
"ambiente": "sandbox",
"chave_publica": "texto",
"pix_ativo": true,
"pix_validade_min": 1,
"opcoes_parcelamento": [
{
"parcelas": 1,
"valor_parcela_centavos": 15118
},
{
"parcelas": 3,
"valor_parcela_centavos": 5040
}
]
}Estornar (total ou parcial)
/pedidos/{id}/estornosCartão: total ou parcial, vários parciais até o valor pago. Pix: cancela antes da liquidação; depois, até 5 dias (estorno_em_processamento). O cabeçalho Idempotency-Key é obrigatório: repetir a chave devolve o mesmo estorno.
Parâmetros do caminho
| Campo | Descrição |
|---|---|
idobrigatóriostring (uuid) | id do pedido na Yuupe Pay |
Cabeçalhos
| Campo | Descrição |
|---|---|
Idempotency-Keyobrigatóriostring |
Corpo (NovoEstorno)
| Campo | Descrição |
|---|---|
valor_centavosinteger | Sem valor = estorno total do saldo estornável. ≥ 1 |
motivostring | máx. 250 |
Respostas
| 201 | Estorno registrado · JSON |
| 400 | Requisição inválida · Erro |
| 401 | Chave ausente, inválida ou revogada · Erro |
| 409 | Estorno não permitido · Erro |
| 429 | Limite de requisições · Erro |
curl -X POST "https://yuupe.me/api/v1/pay/pedidos/3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90/estornos" \
-H "Authorization: Bearer yp_test_SUA_CHAVE" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: estorno-NIC-2026-000123-1" \
-d '{
"valor_centavos": 5039,
"motivo": "Cliente desistiu da visita"
}'{
"estorno": {
"id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"valor_centavos": 1,
"motivo": "texto",
"status": "solicitado",
"criado_em": "texto",
"concluido_em": "texto"
},
"pedido": {
"id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"numero_pedido": "texto",
"ambiente": "sandbox",
"status": "criado",
"metodo": "cartao",
"parcelas": 1,
"valor_centavos": 1,
"valor_estornado_centavos": 1,
"comprador": {
"nome": "Maria Souza",
"email": "maria@exemplo.com",
"documento": "529.982.247-25",
"telefone": "+5561999990000",
"endereco": {
"logradouro": "Rua das Flores",
"numero": "123",
"complemento": "Apto 45",
"bairro": "Asa Sul",
"cidade": "Brasília",
"uf": "DF",
"cep": "70000-000"
}
},
"itens": [
{
"descricao": "Combo Família",
"quantidade": 1,
"valor_unitario_centavos": 15118,
"sku": "COMBO-FAM"
}
],
"metadados": {},
"cartao": {
"bandeira": "texto",
"ultimos4": "texto"
},
"pix": {
"qr_code": "texto",
"qr_code_imagem": "texto",
"expira_em": "texto"
},
"autenticacao": {
"pedido_id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"etapa": "coleta",
"url": "texto",
"token": "texto",
"continuar_url": "texto",
"expira_em": "texto"
},
"verificacao_3ds": {
"resultado": "texto",
"responsabilidade_do_emissor": true
},
"motivo_recusa": "texto",
"motivo": {
"codigo": "cartao_sem_limite",
"mensagem_comprador": "Seu cartão não tem limite disponível para esta compra. Tente outro cartão ou pague com Pix.",
"tentar_novamente": "sim",
"detalhe_operadora": {
"codigo": "texto",
"mensagem": "texto"
}
},
"criado_em": "texto",
"pago_em": "texto"
}
}Estornos de um pedido
/pedidos/{id}/estornosParâmetros do caminho
| Campo | Descrição |
|---|---|
idobrigatóriostring (uuid) | id do pedido na Yuupe Pay |
Respostas
| 200 | Lista · JSON |
| 400 | Requisição inválida · Erro |
| 401 | Chave ausente, inválida ou revogada · Erro |
| 429 | Limite de requisições · Erro |
curl -X GET "https://yuupe.me/api/v1/pay/pedidos/3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90/estornos" \
-H "Authorization: Bearer yp_test_SUA_CHAVE"{
"estornos": [
{
"id": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
"valor_centavos": 1,
"motivo": "texto",
"status": "solicitado",
"criado_em": "texto",
"concluido_em": "texto"
}
]
}POSTEvento de pedido (webhook)
Enviado quando o status do pedido muda. Assinado: X-Yuupe-Signature: t=<unix>,v1=<hex> = HMAC-SHA256 de <t>.<corpo> com o segredo do webhook. Reenvio por até 24 h até receber 2xx.
Eventos: pedido.aprovado, pedido.recusado, pedido.expirado, pedido.estornado, pedido.estorno_parcial, pedido.contestado. Veja Webhooks.
nullObjetos
Os objetos que a API recebe e devolve. Campos marcados como obrigatórios precisam vir no corpo da chamada.
Pedido
| Campo | Descrição |
|---|---|
idobrigatóriostring (uuid) | |
numero_pedidoobrigatóriostring | |
ambienteobrigatórioenum | sandboxproducao |
statusobrigatórioenum | criadoaguardando_autenticacaoaguardando_pagamentoem_analiseaprovadorecusadoexpiradoestorno_em_processamentoestorno_parcialestornadocontestadoerro |
metodoobrigatórioenum | cartaopix |
parcelasobrigatóriointeger | |
valor_centavosobrigatóriointeger | |
valor_estornado_centavosobrigatóriointeger | |
compradorobrigatórioComprador | |
nomeobrigatóriostring | mín. 2 · máx. 120 |
emailobrigatóriostring (email) | máx. 160 |
documentostring | CPF ou CNPJ, com ou sem pontuação. Obrigatório no cartão e no Pix (exigência da operadora). máx. 20 |
telefonestring | Recomendado no cartão: o banco usa na autenticação 3DS. máx. 20 |
enderecoEndereco | Endereço de cobrança. Obrigatório no cartão e no Pix (exigência da operadora). |
logradouroobrigatóriostring | mín. 1 · máx. 120 |
numeroobrigatóriostring | mín. 1 · máx. 20 |
complementostring | máx. 60 |
bairroobrigatóriostring | mín. 1 · máx. 80 |
cidadeobrigatóriostring | mín. 1 · máx. 80 |
ufobrigatóriostring | mín. 2 · máx. 2 |
cepobrigatóriostring | mín. 8 · máx. 9 |
itensobrigatóriolista de Item | |
descricaoobrigatóriostring | mín. 1 · máx. 200 |
quantidadeobrigatóriointeger | ≥ 1 · ≤ 10000 |
valor_unitario_centavosobrigatóriointeger | ≥ 1 |
skustring | máx. 60 |
metadadosobrigatórioobject · pode ser nulo | |
cartaoobrigatórioobject · pode ser nulo | |
bandeiraobrigatóriostring · pode ser nulo | |
ultimos4obrigatóriostring · pode ser nulo | |
pixobrigatórioobject · pode ser nulo | |
qr_codeobrigatóriostring · pode ser nulo | |
qr_code_imagemobrigatóriostring · pode ser nulo | |
expira_emobrigatóriostring · pode ser nulo | |
autenticacaoobrigatórioobject · pode ser nulo | Só com status = aguardando_autenticacao (todo cartão começa assim): passe este objeto, como veio, para YuupePay.autenticar() no navegador. O comprador tem 5 minutos. |
pedido_idobrigatóriostring (uuid) | |
etapaobrigatórioenum | coleta: o pay.js coleta os dados do dispositivo e segue sozinho para o desafio, se o banco pedir. desafio: já na confirmação do banco.coletadesafio |
urlobrigatóriostring | |
tokenobrigatóriostring · pode ser nulo | |
continuar_urlobrigatóriostring · pode ser nulo | |
expira_emobrigatóriostring | |
verificacao_3dsobrigatórioobject · pode ser nulo | |
resultadoobrigatóriostring · pode ser nulo | Como a Vindi devolve: authenticated_with_challenge, authenticated_frictionless, not_verified_unsupported, not_verified_auth_failed… |
responsabilidade_do_emissorobrigatórioboolean · pode ser nulo | true = em caso de contestação por fraude, a responsabilidade é do banco emissor (liability shift). |
motivo_recusaobrigatóriostring · pode ser nulo | Texto técnico da recusa, para log. Para o comprador, use motivo.mensagem_comprador. |
motivoobrigatórioMotivo · pode ser nulo | Com recusado, expirado ou erro: o que mostrar ao comprador e se vale tentar de novo. |
codigoobrigatóriostring | Código estável do motivo (ex.: cartao_sem_limite, cartao_dados_invalidos, autenticacao_falhou, pix_expirado, pagamento_indisponivel). |
mensagem_compradorobrigatóriostring | Mostre esta frase ao comprador, como está. Vem no idioma do pedido. |
tentar_novamenteobrigatórioenum | sim: pode tentar de novo com o mesmo meio. outro_meio: ofereça outro cartão ou Pix. nao: não adianta tentar de novo.simoutro_meionao |
detalhe_operadoraobrigatórioobject · pode ser nulo | O que a operadora respondeu, para o seu log e o suporte. Não mostre ao comprador. |
codigoobrigatóriostring · pode ser nulo | |
mensagemobrigatóriostring · pode ser nulo | |
criado_emobrigatóriostring | |
pago_emobrigatóriostring · pode ser nulo |
NovoPedido
| Campo | Descrição |
|---|---|
numero_pedidoobrigatóriostring | Seu número do pedido. Único por loja e ambiente: repetir devolve o mesmo pedido, sem cobrar de novo. mín. 1 · máx. 60 · padrão ^[A-Za-z0-9._\-:/#]+$ |
metodoobrigatórioenum | cartaopix |
parcelasinteger | Só cartão. Respeita o máximo e a parcela mínima definidos pela loja. ≥ 1 · ≤ 12 |
token_cartaostring | Gerado no navegador pelo pay.js (YuupePay.tokenizarCartao). Obrigatório no cartão. Vale 5 minutos. mín. 8 · máx. 200 |
dispositivoDispositivo | Devolvido por YuupePay.tokenizarCartao no navegador. Repasse como veio. Obrigatório no cartão (3DS). |
user_agentobrigatóriostring | mín. 1 · máx. 1000 |
idiomastring | máx. 20 |
tela_largurainteger | |
tela_alturainteger | |
profundidade_corinteger | |
fuso_horasnumber | |
javaboolean | |
compradorobrigatórioComprador | |
nomeobrigatóriostring | mín. 2 · máx. 120 |
emailobrigatóriostring (email) | máx. 160 |
documentostring | CPF ou CNPJ, com ou sem pontuação. Obrigatório no cartão e no Pix (exigência da operadora). máx. 20 |
telefonestring | Recomendado no cartão: o banco usa na autenticação 3DS. máx. 20 |
enderecoEndereco | Endereço de cobrança. Obrigatório no cartão e no Pix (exigência da operadora). |
logradouroobrigatóriostring | mín. 1 · máx. 120 |
numeroobrigatóriostring | mín. 1 · máx. 20 |
complementostring | máx. 60 |
bairroobrigatóriostring | mín. 1 · máx. 80 |
cidadeobrigatóriostring | mín. 1 · máx. 80 |
ufobrigatóriostring | mín. 2 · máx. 2 |
cepobrigatóriostring | mín. 8 · máx. 9 |
itensobrigatóriolista de Item | |
descricaoobrigatóriostring | mín. 1 · máx. 200 |
quantidadeobrigatóriointeger | ≥ 1 · ≤ 10000 |
valor_unitario_centavosobrigatóriointeger | ≥ 1 |
skustring | máx. 60 |
metadadosobject | Até 20 pares chave/valor devolvidos no pedido e no webhook. |
idiomaenum | Idioma do comprador para motivo.mensagem_comprador. Padrão: pt-BR.pt-BRpt-PTenes |
Comprador
| Campo | Descrição |
|---|---|
nomeobrigatóriostring | mín. 2 · máx. 120 |
emailobrigatóriostring (email) | máx. 160 |
documentostring | CPF ou CNPJ, com ou sem pontuação. Obrigatório no cartão e no Pix (exigência da operadora). máx. 20 |
telefonestring | Recomendado no cartão: o banco usa na autenticação 3DS. máx. 20 |
enderecoEndereco | Endereço de cobrança. Obrigatório no cartão e no Pix (exigência da operadora). |
logradouroobrigatóriostring | mín. 1 · máx. 120 |
numeroobrigatóriostring | mín. 1 · máx. 20 |
complementostring | máx. 60 |
bairroobrigatóriostring | mín. 1 · máx. 80 |
cidadeobrigatóriostring | mín. 1 · máx. 80 |
ufobrigatóriostring | mín. 2 · máx. 2 |
cepobrigatóriostring | mín. 8 · máx. 9 |
Endereco
Endereço de cobrança. Obrigatório no cartão e no Pix (exigência da operadora).
| Campo | Descrição |
|---|---|
logradouroobrigatóriostring | mín. 1 · máx. 120 |
numeroobrigatóriostring | mín. 1 · máx. 20 |
complementostring | máx. 60 |
bairroobrigatóriostring | mín. 1 · máx. 80 |
cidadeobrigatóriostring | mín. 1 · máx. 80 |
ufobrigatóriostring | mín. 2 · máx. 2 |
cepobrigatóriostring | mín. 8 · máx. 9 |
Item
| Campo | Descrição |
|---|---|
descricaoobrigatóriostring | mín. 1 · máx. 200 |
quantidadeobrigatóriointeger | ≥ 1 · ≤ 10000 |
valor_unitario_centavosobrigatóriointeger | ≥ 1 |
skustring | máx. 60 |
Motivo
Com recusado, expirado ou erro: o que mostrar ao comprador e se vale tentar de novo.
| Campo | Descrição |
|---|---|
codigoobrigatóriostring | Código estável do motivo (ex.: cartao_sem_limite, cartao_dados_invalidos, autenticacao_falhou, pix_expirado, pagamento_indisponivel). |
mensagem_compradorobrigatóriostring | Mostre esta frase ao comprador, como está. Vem no idioma do pedido. |
tentar_novamenteobrigatórioenum | sim: pode tentar de novo com o mesmo meio. outro_meio: ofereça outro cartão ou Pix. nao: não adianta tentar de novo.simoutro_meionao |
detalhe_operadoraobrigatórioobject · pode ser nulo | O que a operadora respondeu, para o seu log e o suporte. Não mostre ao comprador. |
codigoobrigatóriostring · pode ser nulo | |
mensagemobrigatóriostring · pode ser nulo |
Erro
| Campo | Descrição |
|---|---|
erroobrigatórioobject | |
codigoobrigatórioenum | nao_autenticadochave_revogadaconta_inativaconta_nao_configuradarequisicao_invalidavalor_invalidoparcelas_nao_permitidasmetodo_indisponiveltoken_cartao_obrigatoriopedido_nao_encontradoidempotency_key_obrigatoriavalor_acima_do_estornavelestorno_nao_permitidodados_recusadosautenticacao_indisponivelvalor_abaixo_minimo_3dserro_gatewaylimite_de_requisicoeserro_interno |
mensagemobrigatóriostring | |
campostring | |
motivoany |
Estorno
| Campo | Descrição |
|---|---|
idobrigatóriostring (uuid) | |
valor_centavosobrigatóriointeger | |
motivoobrigatóriostring · pode ser nulo | |
statusobrigatórioenum | solicitadoem_processamentoconcluidofalhou |
criado_emobrigatóriostring | |
concluido_emobrigatóriostring · pode ser nulo |
NovoEstorno
| Campo | Descrição |
|---|---|
valor_centavosinteger | Sem valor = estorno total do saldo estornável. ≥ 1 |
motivostring | máx. 250 |
CheckoutConfig
| Campo | Descrição |
|---|---|
ambienteobrigatórioenum | sandboxproducao |
chave_publicaobrigatóriostring · pode ser nulo | Passe para o pay.js no navegador (YuupePay.tokenizarCartao). Não é segredo. |
pix_ativoobrigatórioboolean | |
pix_validade_minobrigatóriointeger | |
opcoes_parcelamentoobrigatóriolista de object | |
parcelasobrigatóriointeger | |
valor_parcela_centavosobrigatóriointeger |
Dispositivo
Devolvido por YuupePay.tokenizarCartao no navegador. Repasse como veio. Obrigatório no cartão (3DS).
| Campo | Descrição |
|---|---|
user_agentobrigatóriostring | mín. 1 · máx. 1000 |
idiomastring | máx. 20 |
tela_largurainteger | |
tela_alturainteger | |
profundidade_corinteger | |
fuso_horasnumber | |
javaboolean |