Buck
APITransações

Criar transação

POST /api/transactions - Criar uma nova transação PIX, cartão ou boleto.

POST /api/transactions

Cria uma nova transação. Suporta os métodos de pagamento pix, card e boleto.

Atenção: Enviar duas requisições com o mesmo external_id para o mesmo vendedor retorna 400 com transaction_already_exists. O external_id deve ser único por vendedor.

Headers

NomeObrigatórioDescrição
AuthorizationSimBearer <token> (token de 40 caracteres)
User-AgentSimValor fornecido pelo gerente de contas
Content-TypeSimapplication/json

Body (JSON)

NomeObrigatórioTipoDescrição
external_idSimStringIdentificador externo (1–255 caracteres; apenas letras, números, hífens e underscores)
payment_methodSimString"pix", "card" ou "boleto"
amountSimNumberValor em centavos. Mínimo: 600 (R$ 6,00). Máximo: 300000 (R$ 3.000,00). Inteiro.
buyerNãoObjectDados do comprador (recomendado para envio à UTMify)
↳ nameSim*StringNome e sobrenome (3–100 caracteres; apenas letras, espaços, hífens, apóstrofos). *Obrigatório se buyer for enviado.
↳ emailSim*StringE-mail válido (máx. 100 caracteres). *Obrigatório se buyer for enviado.
↳ documentNãoStringCPF ou CNPJ, apenas números (11 ou 14 dígitos)
↳ phoneNãoStringTelefone apenas números, 12–13 caracteres (ex.: 55 + DDD + número)
productNãoObjectEnviado para a UTMify. Deve ser enviado junto com offer, ou ambos omitidos.
↳ idSimStringID do produto
↳ nameSimStringNome do produto
offerNãoObjectEnviado para a UTMify. Deve ser enviado junto com product, ou ambos omitidos.
↳ idSimStringID da oferta
↳ nameSimStringNome da oferta
↳ quantitySimNumberQuantidade (1–100, inteiro)
trackingNãoObjectDados de rastreamento/UTM
↳ refNãoString | nullMáx. 255 caracteres
↳ srcNãoString | nullMáx. 255 caracteres
↳ sckNãoString | nullMáx. 255 caracteres
↳ utm_sourceNãoString | nullMáx. 255 caracteres
↳ utm_mediumNãoString | nullMáx. 255 caracteres
↳ utm_campaignNãoString | nullMáx. 255 caracteres
↳ utm_idNãoString | nullMáx. 255 caracteres
↳ utm_termNãoString | nullMáx. 255 caracteres
↳ utm_contentNãoString | nullMáx. 255 caracteres
postbackUrlNãoStringURL válida para webhook de postback (máx. 500 caracteres). Se informada, um webhook é criado/atualizado para o evento transaction-processed.
cardNãoObjectObrigatório quando payment_method é "card". Dados do cartão.
↳ numberSimString16 dígitos, apenas números
↳ holderNameSimStringNome no cartão (3–100 caracteres)
↳ expirationMonthSimStringMês 01–12 (2 dígitos)
↳ expirationYearSimStringAno (4 dígitos, válido)
↳ cvvSimString3 dígitos

Exemplo de request (PIX)

{
  "external_id": "pedido-123",
  "payment_method": "pix",
  "amount": 3590,
  "buyer": {
    "name": "João Silva",
    "email": "joao@email.com",
    "document": "12345678901",
    "phone": "5511123456789"
  },
  "product": {
    "id": "prod-1",
    "name": "Produto Exemplo"
  },
  "offer": {
    "id": "offer-1",
    "name": "Oferta 1",
    "quantity": 1
  },
  "tracking": {
    "ref": null,
    "src": null,
    "sck": null,
    "utm_source": null,
    "utm_medium": null,
    "utm_campaign": null,
    "utm_id": null,
    "utm_term": null,
    "utm_content": null
  }
}

Resposta de sucesso (201 Created)

Para pix, a resposta inclui o código PIX e o QR Code em base64. Gerar um QR Code a partir de pix.code também funciona.

{
  "data": {
    "id": "390b5525-4629-4463-a32a-e0cd432d939b",
    "status": "pending",
    "payment_method": "pix",
    "pix": {
      "code": "00020126870014br.gov.bcb.pix...",
      "qrcode_base64": "iVBORw0KGgo..."
    },
    "total_amount": 3590,
    "net_amount": 3195.959,
    "created_at": "2025-05-24T17:45:19.084Z"
  }
}

Erros

400 Bad Request – Validação

Corpo quando há erro de validação nos campos:

{
  "error": {
    "message": "Invalid request body.",
    "detail": {
      "payment_method": ["O campo 'payment_method' é obrigatório."],
      "amount": ["O campo 'amount' precisa ser um número."]
    }
  }
}

400 Bad Request – external_id duplicado

Quando já existe uma transação com o mesmo external_id para o mesmo vendedor:

{
  "error": {
    "message": "transaction_already_exists",
    "detail": "Transaction with 'external_id' already exists"
  }
}

401 Unauthorized

Token ausente ou inválido. Ver Autenticação.

403 Forbidden

Conta do vendedor pendente ou rejeitada:

{
  "error": {
    "message": "account_status_blocked",
    "detail": "Não é possível realizar vendas enquanto sua conta estiver pendente ou rejeitada"
  }
}

500 Internal Server Error

Erro ao chamar a adquirente ou erro inesperado:

{
  "error": {
    "message": "Internal server error.",
    "detail": "Um erro inesperado ocorreu. Contate o suporte para mais informações."
  }
}

On this page