Skip to main content
POST
/
transactions
Criar Transação
curl --request POST \
  --url https://api.example.com/transactions \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: <idempotency-key>' \
  --data '
{
  "amount": 123,
  "method": "<string>",
  "customer": {
    "customer.name": "<string>",
    "customer.email": "<string>",
    "customer.phone": "<string>",
    "customer.documentType": "<string>",
    "customer.document": "<string>",
    "customer.externalRef": "<string>"
  },
  "items": [
    {
      "items[].title": "<string>",
      "items[].amount": 123,
      "items[].quantity": 123,
      "items[].tangible": true,
      "items[].externalRef": "<string>"
    }
  ],
  "installments": 123,
  "card": {
    "card.number": "<string>",
    "card.holderName": "<string>",
    "card.holderDocument": "<string>",
    "card.expirationMonth": 123,
    "card.expirationYear": 123,
    "card.cvv": "<string>",
    "card.currency": "<string>",
    "card.sessionId": "<string>"
  },
  "postbackUrl": "<string>",
  "metadata": {},
  "description": "<string>",
  "expiration": 123,
  "merchantOrderId": "<string>",
  "hasQrCode": true,
  "returnQrCode": true,
  "global": true
}
'
{
  "status": true,
  "data.id": "<string>",
  "data.amount": 123,
  "data.method": "<string>",
  "data.status": "<string>",
  "data.pix": {},
  "data.pix.qrcode": "<string>",
  "data.pix.copyPaste": "<string>",
  "data.pix.expiresAt": "<string>",
  "data.boleto": {},
  "data.boleto.url": "<string>",
  "data.boleto.barcode": "<string>"
}
Cria uma nova transação de pagamento. O header Idempotency-Key e obrigatório e garante que retries não criem transações duplicadas.
  • PIX: resposta inclui QR Code (base64) e código Copia e Cola
  • Boleto: resposta inclui URL de impressão e código de barras
  • Cartão de Crédito: autorização síncrona com captura
Authorization
string
required
API Key no formato Bearer sk_live_... ou Bearer sk_test_...
Idempotency-Key
string
required
Chave única para esta requisicao (UUID v4 recomendado, max 128 chars). Retries com a mesma chave retornam a resposta original sem criar duplicatas.Exemplo: 550e8400-e29b-41d4-a716-446655440000
amount
integer
required
Valor total da transação em centavos. Mínimo: 100 (R1,00).Maˊximo:100000000(R 1,00). Máximo: 100000000 (R 1.000.000,00).Exemplos: R150,00=15000R 150,00 = `15000` | R 10,00 = 1000
method
string
required
Método de pagamento. Valores aceitos: PIX, BOLETO, CREDIT_CARD.
  • PIX: pagamento instantaneo via QR Code
  • BOLETO: boleto bancario com vencimento em 3 dias úteis
  • CREDIT_CARD: cartão de crédito (requer objeto card)
customer
object
required
Dados do comprador. Obrigatório para todos os métodos.
items
array
required
Lista de itens da transação. Mínimo 1 item. A soma de amount * quantity deve corresponder ao amount total.
installments
integer
Número de parcelas. Obrigatório para CREDIT_CARD. Mínimo: 1. Máximo: 12.
card
object
Dados do cartão de crédito. Obrigatório quando method = CREDIT_CARD. O CVV nunca e persistido após a autorizacao (PCI DSS).
postbackUrl
string
URL HTTPS do seller para receber notificações de mudanca de status. Deve ser HTTPS.Exemplo: https://meusite.com.br/webhooks/pagamentos
metadata
object
Objeto JSON livre para dados do seu sistema (ex: ID do pedido). Max 10 chaves recomendado.Exemplo: {"pedidoId": "ORD-2024-001", "canal": "app"}
description
string
Descrição da transação. Aparece no comprovante PIX e no boleto.
expiration
integer
Tempo de expiração em segundos. PIX padrão: 3600s (1 hora). Boleto: 3 dias úteis. Mínimo: 1.
merchantOrderId
string
Referência do pedido no sistema do seller. Max 128 chars.
hasQrCode
boolean
Se deve gerar QR Code PIX na resposta. Aplicavel apenas para PIX.
returnQrCode
boolean
default:"true"
Se false, omite o campo pix.qrcode da resposta (útil para reduzir payload).
global
boolean
default:"false"
Indica transação de cartão internacional. Quando true, card.currency não pode ser BRL.

Resposta

status
boolean
true quando a transação foi criada com sucesso. false quando recusada.
data.id
string
Identificador único da transação (CUID).
data.amount
integer
Valor em centavos.
data.method
string
Método de pagamento: PIX, BOLETO ou CREDIT_CARD.
data.status
string
Status inicial da transação. Para PIX e Boleto: PENDING. Para cartão: PENDING, AUTHORIZED ou REFUSED.
data.pix
object
Presente quando method = PIX.
data.pix.qrcode
string
QR Code em base64 (data:image/png;base64,...). Presente quando returnQrCode = true.
data.pix.copyPaste
string
Código Copia e Cola PIX (EMV payload).
data.pix.expiresAt
string
Data/hora de expiração do QR Code (ISO 8601).
data.boleto
object
Presente quando method = BOLETO.
data.boleto.url
string
URL para impressao do boleto.
data.boleto.barcode
string
Código de barras do boleto.
curl -X POST https://api.linka.com/transactions \
  -H "Authorization: Bearer <token>" \
  -H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 15000,
    "method": "PIX",
    "customer": {
      "name": "Maria Fernanda Costa",
      "email": "[email protected]",
      "phone": "11998765432",
      "documentType": "CPF",
      "document": "12345678900"
    },
    "items": [
      {
        "title": "Curso de Programação",
        "amount": 15000,
        "quantity": 1,
        "tangible": false
      }
    ],
    "metadata": {"pedidoId": "ORD-2024-001"}
  }'

Exemplo de resposta — PIX

{
  "status": true,
  "data": {
    "id": "clxyz1234abcdef",
    "amount": 15000,
    "method": "PIX",
    "status": "PENDING",
    "createdAt": "2026-03-06T10:00:00.000Z",
    "pix": {
      "qrcode": "data:image/png;base64,...",
      "copyPaste": "00020101021226870014br.gov.bcb.pix...",
      "expiresAt": "2026-03-06T11:00:00.000Z"
    }
  }
}