Skip to main content
POST
/
api
/
v1
/
charges
/
orders
Criar Pedido
curl --request POST \
  --url https://zeus-sandbox.autorizou.dev/api/v1/charges/orders \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "description": "<string>",
  "code": "<string>",
  "mcc": "<string>",
  "notification_url": "<string>",
  "customer": {
    "customer.id": 123,
    "customer.name": "<string>",
    "customer.email": "<string>",
    "customer.documents": [
      {
        "customer.documents[].type": "<string>",
        "customer.documents[].value": "<string>"
      }
    ],
    "customer.addresses": [
      {
        "customer.addresses[].type": "<string>",
        "customer.addresses[].postal_code": "<string>",
        "customer.addresses[].line_1": "<string>",
        "customer.addresses[].line_2": "<string>",
        "customer.addresses[].number": "<string>",
        "customer.addresses[].neighborhood": "<string>",
        "customer.addresses[].city": "<string>",
        "customer.addresses[].state": "<string>",
        "customer.addresses[].country": "<string>"
      }
    ],
    "customer.phone": {
      "customer.phone.type": "<string>",
      "customer.phone.ddi": "<string>",
      "customer.phone.ddd": "<string>",
      "customer.phone.number": "<string>"
    }
  },
  "payment": {
    "payment.amount": 123,
    "payment.currency": "<string>",
    "payment.payment_method": "<string>",
    "payment.installments": 123,
    "payment.discount": 123,
    "payment.interest": 123,
    "payment.metadata": {}
  },
  "payment.credit_card": {
    "payment.credit_card.id": 123,
    "payment.credit_card.statement_descriptor": "<string>",
    "payment.credit_card.capture": true,
    "payment.credit_card.capture_delay_hours": 123,
    "payment.credit_card.processing_model": "<string>"
  },
  "payment.pix": {
    "payment.pix.expires_at": "<string>"
  },
  "payment.bank_slip": {
    "payment.bank_slip.due_at": "<string>"
  },
  "payment.google_pay": {
    "payment.google_pay.google_pay_token": "<string>",
    "payment.google_pay.statement_descriptor": "<string>",
    "payment.google_pay.capture": true,
    "payment.google_pay.capture_delay_hours": 123
  },
  "payment.apple_pay": {
    "payment.apple_pay.apple_pay_token": "<string>",
    "payment.apple_pay.digital_wallet_uuid": "<string>",
    "payment.apple_pay.statement_descriptor": "<string>",
    "payment.apple_pay.capture": true,
    "payment.apple_pay.capture_delay_hours": 123
  },
  "payment.split": [
    {
      "payment.split[].recipient_id": 123,
      "payment.split[].amount": 123,
      "payment.split[].type": "<string>",
      "payment.split[].allow_charge_processing_fee": true,
      "payment.split[].allow_charge_remainder_fee": true,
      "payment.split[].is_liable": true
    }
  ],
  "authentication_data": {
    "authentication_data.attempt_authentication": "<string>",
    "authentication_data.browser_info": {
      "authentication_data.browser_info.accept_header": "<string>",
      "authentication_data.browser_info.color_depth": "<string>",
      "authentication_data.browser_info.java_enabled": true,
      "authentication_data.browser_info.language": "<string>",
      "authentication_data.browser_info.screen_height": "<string>",
      "authentication_data.browser_info.screen_width": "<string>",
      "authentication_data.browser_info.timezone_offset": "<string>",
      "authentication_data.browser_info.user_agent": "<string>"
    },
    "authentication_data.origin": "<string>",
    "authentication_data.ip_address": "<string>"
  },
  "items": [
    {
      "items[].name": "<string>",
      "items[].description": "<string>",
      "items[].quantity": 123,
      "items[].amount": 123
    }
  ]
}
'
Este endpoint permite criar pedidos e processar pagamentos usando diferentes métodos (cartão, PIX, boleto, Google Pay), com suporte completo a parcelamento, split de pagamento, 3D Secure e Network Tokens.

Parâmetros Obrigatórios

description
string
required
Descrição da transaçãoMáximo: 255 caracteres
code
string
required
Referência única para este pedido no sistema do comercianteExemplo: ORDER-2024-001 | Máximo: 255 caracteres
mcc
string
required
Merchant Category Code (código de categoria do estabelecimento)Formato: 4 dígitos | Exemplo: 5411 (supermercado)

Parâmetros Opcionais

notification_url
string
URL para receber notificações de mudança de status (webhook)Exemplo: https://seusite.com/webhook/autorizou

Dados do Cliente

customer
object
required

Dados do Pagamento

payment
object
required

Pagamento com Cartão de Crédito

payment.credit_card
object
Obrigatório quando: payment_method = "credit_card"

Pagamento PIX

payment.pix
object
Obrigatório quando: payment_method = "pix"

Pagamento com Boleto

payment.bank_slip
object
Obrigatório quando: payment_method = "bank_slip"

Pagamento com Google Pay

payment.google_pay
object
Obrigatório quando: payment_method = "google_pay"

Pagamento com Apple Pay

payment.apple_pay
object
Obrigatório quando: payment_method = "apple_pay"
Novo! Apple Pay agora está disponível. Veja o guia completo de integração para começar.

Split de Pagamento

payment.split
array
Divisão do pagamento entre múltiplos destinatários
Importante sobre validação do Split:
  • Cada split individual não pode ser maior que payment.amount
  • A soma de todos os splits não pode ultrapassar payment.amount
  • A soma pode ser menor que o total (a diferença fica com o merchant principal)

3D Secure (3DS)

authentication_data
object
Dados para autenticação 3D Secure (recomendado para maior segurança)
3D Secure 2.0: Melhora significativamente a taxa de aprovação e reduz fraudes. Altamente recomendado para transações de alto valor.

Itens do Pedido

items
array
Lista de itens/produtos do pedido (opcional mas recomendado)

Estrutura da Resposta

A resposta contém informações completas sobre o pedido e pagamento criados:

Campos do Pedido (Order)

CampoTipoDescrição
idstringUUID único do pedido
hashstringHash único do pedido para referência
statusstringStatus do pedido: pending, paid, failed, canceled
is_closedbooleanIndica se o pedido está fechado/finalizado
paymentobjectObjeto contendo dados do pagamento (ver abaixo)
feeobjectObjeto contendo informações de taxas (ver abaixo)
customerobjectDados do cliente (id, name, email)

Campos do Pagamento (Payment)

CampoTipoDescrição
idstringUUID único do pagamento
hashstringHash único do pagamento
merchant_referencestringReferência do merchant (campo code da requisição)
statusstringStatus do pagamento: pending, authorized, paid, refused, failed
payment_methodstringMétodo usado: credit_card, pix, bank_slip, google_pay, apple_pay
amountintegerValor em centavos
installmentsintegerNúmero de parcelas
currencystringMoeda (ISO 4217): BRL
descriptionstringDescrição da transação
metadataobjectMetadados customizados (se fornecidos)
refused_reasonstringMotivo da recusa (se aplicável)
return_codestringCódigo de retorno do adquirente
created_atstringData/hora de criação (formato: Y-m-d H:i:s)
updated_atstringData/hora da última atualização

Campos Específicos de Cartão (quando payment_method = credit_card)

CampoTipoDescrição
credit_card.idstringUUID do cartão
credit_card.holderstringNome do titular
credit_card.brandstringBandeira: visa, mastercard, elo, etc.
credit_card.first_6stringPrimeiros 6 dígitos (BIN)
credit_card.last_4stringÚltimos 4 dígitos
credit_card.exp_monthintegerMês de expiração (1-12)
credit_card.exp_yearintegerAno de expiração (YYYY)
credit_card.statement_descriptorstringDescrição na fatura
credit_card.capturebooleanSe foi capturado automaticamente
credit_card.three_dsobjectDados do 3D Secure (se autenticado)

Campos Específicos de Apple Pay (quando payment_method = apple_pay)

CampoTipoDescrição
apple_pay.idstringUUID da carteira digital salva (para uso em cobranças recorrentes)
apple_pay.statement_descriptorstringDescrição na fatura
apple_pay.capturebooleanSe foi capturado automaticamente
apple_pay.three_dsobjectDados do 3D Secure (se autenticado)
apple_pay.brandstringBandeira do cartão (ex: visa, mastercard)
apple_pay.last_4stringÚltimos 4 dígitos do cartão
apple_pay.card_typestringTipo do cartão: credit, debit

Campos de Taxas (Fee)

CampoTipoDescrição
fixed_fee_amountintegerTaxa fixa em centavos
platform_fee_percentagefloatPercentual da taxa da plataforma
platform_fee_amountintegerValor da taxa da plataforma em centavos
Objeto 3DS (three_ds): Quando a autenticação 3D Secure é realizada, este objeto conterá informações sobre o resultado da autenticação, incluindo authentication_url caso seja necessário redirecionar o cliente.

Exemplos de Requisição

Pagamento com Cartão

Requisição

curl -X POST https://zeus-sandbox.autorizou.dev/api/v1/charges/orders \
  -H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Compra na Loja Virtual",
    "code": "ORDER-2024-001",
    "mcc": "5411",
    "customer": {
      "name": "João Silva",
      "email": "joao@exemplo.com.br",
      "documents": [
        {
          "type": "CPF",
          "value": "12345678901"
        }
      ],
      "addresses": [
        {
          "type": "billing",
          "postal_code": "01310100",
          "line_1": "Av. Paulista",
          "number": "1000",
          "neighborhood": "Bela Vista",
          "city": "São Paulo",
          "state": "SP",
          "country": "BR"
        }
      ]
    },
    "payment": {
      "amount": 15000,
      "currency": "BRL",
      "payment_method": "credit_card",
      "installments": 3,
      "credit_card": {
        "id": 12345,
        "statement_descriptor": "LOJA*PRODUTO",
        "capture": true,
        "processing_model": "normal"
      }
    }
  }'

Resposta

{
  "id": "pay_abc123def456ghi789",
  "status": "paid",
  "amount": 15000,
  "currency": "BRL",
  "payment_method": "credit_card",
  "description": "Compra na Loja Virtual",
  "merchant_reference": "ORDER-2024-001",
  "card": {
    "id": "card_def456ghi789jkl012",
    "brand": "visa",
    "last_four": "1111",
    "holder_name": "JOAO SILVA",
    "installments": 3,
    "authorization_code": "ABC123",
    "network_token_used": true
  },
  "customer": {
    "id": 12345,
    "name": "João Silva",
    "email": "joao@exemplo.com.br"
  },
  "created_at": "2024-01-15T10:30:00Z",
  "authorized_at": "2024-01-15T10:30:02Z",
  "paid_at": "2024-01-15T10:30:03Z"
}
Autenticação 3D Secure: Se o pagamento requer autenticação 3DS, a resposta terá status: "requires_action" com um campo three_d_secure contendo a authentication_url para onde você deve redirecionar o cliente. Veja a seção 3D Secure (3DS) para mais detalhes.

Pagamento PIX

Requisição

curl -X POST https://zeus-sandbox.autorizou.dev/api/v1/charges/orders \
  -H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Pagamento PIX - Pedido #12345",
    "code": "PIX-ORDER-12345",
    "mcc": "5411",
    "customer": {
      "name": "João Silva",
      "email": "joao@exemplo.com.br",
      "documents": [
        {
          "type": "CPF",
          "value": "12345678901"
        }
      ]
    },
    "payment": {
      "amount": 5000,
      "currency": "BRL",
      "payment_method": "pix",
      "installments": 1,
      "pix": {
        "expires_at": "2024-12-31T23:59:59Z"
      }
    }
  }'

Resposta

{
  "id": "pay_pix789abc012def345",
  "status": "pending",
  "amount": 5000,
  "currency": "BRL",
  "payment_method": "pix",
  "description": "Pagamento PIX - Pedido #12345",
  "merchant_reference": "PIX-ORDER-12345",
  "pix": {
    "qr_code": "00020126580014BR.GOV.BCB.PIX0136123e4567-e12b-12d1-a456-426655440000520400005303986540550.005802BR5913Autorizou Ltda6009SAO PAULO62070503***63041D3D",
    "qr_code_url": "https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=00020126580014BR.GOV.BCB.PIX...",
    "expires_at": "2024-12-31T23:59:59Z"
  },
  "customer": {
    "id": 12347,
    "name": "João Silva",
    "email": "joao@exemplo.com.br"
  },
  "created_at": "2024-01-15T12:00:00Z"
}

Pagamento Apple Pay

Requisição

curl -X POST https://zeus-sandbox.autorizou.dev/api/v1/charges/orders \
  -H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Compra via Apple Pay",
    "code": "APPLE-PAY-ORDER-001",
    "mcc": "5411",
    "customer": {
      "id": 12345,
      "name": "João Silva",
      "email": "joao@exemplo.com.br",
      "documents": [
        {
          "type": "CPF",
          "value": "12345678901"
        }
      ]
    },
    "payment": {
      "amount": 25000,
      "currency": "BRL",
      "payment_method": "apple_pay",
      "installments": 1,
      "apple_pay": {
        "apple_pay_token": "{\"token\":{\"paymentData\":{\"version\":\"EC_v1\",\"data\":\"...\",\"signature\":\"...\",\"header\":{...}},\"paymentMethod\":{\"displayName\":\"Visa 1234\",\"network\":\"Visa\",\"type\":\"credit\"},\"transactionIdentifier\":\"...\"}}",
        "statement_descriptor": "MINHA LOJA",
        "capture": true
      }
    }
  }'

Resposta

{
  "id": "ord_applepay123abc456def",
  "hash": "abc123def456",
  "status": "paid",
  "is_closed": false,
  "payment": {
    "id": "pay_applepay123abc456def",
    "hash": null,
    "merchant_reference": "APPLE-PAY-ORDER-001",
    "status": "paid",
    "payment_method": "apple_pay",
    "amount": 25000,
    "installments": 1,
    "currency": "BRL",
    "description": "Compra via Apple Pay",
    "bank_slip": null,
    "credit_card": null,
    "pix": null,
    "pix_recurring": null,
    "google_pay": null,
    "apple_pay": {
      "statement_descriptor": "MINHA LOJA",
      "capture": true,
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "three_ds": null,
      "brand": "visa",
      "last_4": "1234",
      "card_type": "credit"
    },
    "refused_reason": null,
    "return_code": null,
    "created_at": "2024-01-15 13:30:00",
    "updated_at": "2024-01-15 13:30:03"
  },
  "fee": {
    "fixed_fee_amount": 0,
    "platform_fee_percentage": 0,
    "platform_fee_amount": 0
  },
  "customer": {
    "id": "cus_abc123",
    "name": "João Silva",
    "email": "joao@exemplo.com.br"
  }
}
Integração Apple Pay: Para implementar o Apple Pay em seu frontend e obter o apple_pay_token, consulte o Guia Completo de Integração Apple Pay.
Salvamento Automático: A Autorizou salva automaticamente a carteira digital após o primeiro pagamento bem-sucedido com Apple Pay. O apple_pay.id retornado na resposta pode ser usado como digital_wallet_uuid em cobranças futuras, eliminando a necessidade de solicitar o token Apple Pay novamente.

Venda com Split

Requisição

curl -X POST https://zeus-sandbox.autorizou.dev/api/v1/charges/orders \
  -H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Venda no Marketplace",
    "code": "MARKETPLACE-ORD-789",
    "mcc": "5411",
    "customer": {
      "name": "Cliente Marketplace",
      "email": "cliente@exemplo.com.br",
      "documents": [
        {
          "type": "CPF",
          "value": "98765432100"
        }
      ]
    },
    "payment": {
      "amount": 100000,
      "currency": "BRL",
      "payment_method": "credit_card",
      "installments": 1,
      "credit_card": {
        "id": 67890,
        "statement_descriptor": "MARKETPLACE*VND",
        "capture": true,
        "processing_model": "normal"
      },
      "split": [
        {
          "recipient_id": 100,
          "amount": 10000,
          "type": "flat",
          "allow_charge_processing_fee": false,
          "allow_charge_remainder_fee": false,
          "is_liable": false
        },
        {
          "recipient_id": 200,
          "amount": 90000,
          "type": "flat",
          "allow_charge_processing_fee": true,
          "allow_charge_remainder_fee": true,
          "is_liable": true
        }
      ]
    }
  }'

Resposta

{
  "id": "pay_split123abc456def",
  "status": "paid",
  "amount": 100000,
  "currency": "BRL",
  "payment_method": "credit_card",
  "description": "Venda no Marketplace",
  "merchant_reference": "MARKETPLACE-ORD-789",
  "card": {
    "id": "card_mno345pqr678stu901",
    "brand": "visa",
    "last_four": "4242",
    "installments": 1,
    "authorization_code": "DEF456"
  },
  "split": [
    {
      "recipient_id": 100,
      "amount": 10000,
      "type": "flat"
    },
    {
      "recipient_id": 200,
      "amount": 90000,
      "type": "flat"
    }
  ],
  "customer": {
    "id": 12348,
    "name": "Cliente Marketplace",
    "email": "cliente@exemplo.com.br"
  },
  "created_at": "2024-01-15T13:00:00Z",
  "authorized_at": "2024-01-15T13:00:02Z",
  "paid_at": "2024-01-15T13:00:03Z"
}

Códigos de Erro

Requisição malformada ou parâmetros inválidos
{
  "error": {
    "code": "validation_error",
    "message": "Dados inválidos",
    "details": {
      "payment.amount": ["O valor deve ser maior que 100"],
      "customer.email": ["Email inválido"],
      "payment.split": ["A soma dos splits deve ser igual ao valor total"]
    }
  }
}
Possíveis causas:
  • Parâmetros obrigatórios faltando
  • Tipos de dados incorretos
  • Valores fora dos limites permitidos
  • Soma do split diferente do valor total
Transação recusada pelo processador
{
  "error": {
    "code": "card_declined",
    "message": "Cartão recusado",
    "details": {
      "decline_reason": "insufficient_funds",
      "authorization_code": null
    }
  }
}
Motivos comuns de recusa:
  • insufficient_funds - Saldo insuficiente
  • invalid_card - Cartão inválido ou não existe
  • expired_card - Cartão expirado
  • card_restricted - Cartão bloqueado ou restrito
  • do_not_honor - Emissor recusou sem especificar motivo
  • invalid_cvv - CVV incorreto
  • suspected_fraud - Suspeita de fraude
Recurso não encontrado
{
  "error": {
    "code": "not_found",
    "message": "Recurso não encontrado",
    "details": {
      "resource": "customer",
      "identifier": "12345"
    }
  }
}
Possíveis causas:
  • Cliente não existe
  • Cartão não encontrado
  • Recebedor de split inexistente
Erro no processamento da transação
{
  "error": {
    "code": "processing_error",
    "message": "Erro no processamento",
    "details": {
      "reasons": ["invalid_cvv", "authentication_failed"]
    }
  }
}
Possíveis causas:
  • Falha na autenticação 3DS
  • Problema com o processador de pagamentos
  • Configuração inválida do merchant

Regras de Negócio

Valores e Limites

  • Mínimo: R$ 1,00 (100 centavos)
  • Máximo: Conforme limite do merchant
  • Parcelamento: Até 12x para cartão de crédito
  • Taxa: Calculada automaticamente conforme tabela do merchant
  • Cartão: Captura imediata ou até 5 dias
  • PIX: Expiração configurável (até 24h)
  • Boleto: Vencimento configurável
  • 3DS: Autenticação deve ser concluída em 15 minutos
  • Cartão deve estar ativo e não expirado
  • Split deve somar exatamente o valor total
  • Cliente deve ter cadastro válido
  • MCC deve estar autorizado para o merchant

Split de Pagamentos

Como Funciona

O Split permite dividir o valor de uma transação entre múltiplos destinatários. Ideal para marketplaces, plataformas multi-vendor e agregadores.

Regras de Split

  1. Soma dos valores deve ser igual a payment.amount
  2. Recebedors devem estar previamente cadastrados
  3. Taxas podem ser atribuídas a destinatários específicos
  4. Responsabilidade por chargebacks pode ser configurada

Tipos de Split

Valor fixo em centavos destinado ao recipiente
{
  "recipient_id": 100,
  "amount": 5000, // R$ 50,00 fixo
  "type": "flat"
}
Percentual do valor total
{
  "recipient_id": 100,
  "amount": 10000, // R$ 100,00 (calculado como 10% de R$ 1.000,00)
  "type": "percentage"
}
Nota: Mesmo com type = "percentage", o campo amount deve conter o valor já calculado em centavos.

Configuração de Taxas

Define se o destinatário paga a taxa de processamentoExemplo: Taxa de 3% = R30,00emumavendadeR 30,00 em uma venda de R 1.000,00
  • true: Recebedor recebe R$ 970,00 (desconta a taxa)
  • false: Recebedor recebe R$ 1.000,00 (marketplace paga)
Define se o destinatário paga taxas de ajuste/restoTaxas residuais de arredondamento ou divisões não exatas
Define responsabilidade por chargebacks
  • true: Recebedor é responsável e terá valores descontados em caso de chargeback
  • false: Marketplace/Plataforma assume o risco

Exemplo Prático de Split

// Cenário: Marketplace com comissão de 10%
// Venda de R$ 1.000,00

const splitConfig = [
  {
    recipient_id: 100, // Marketplace
    amount: 10000, // R$ 100,00 (10% de comissão)
    type: 'flat',
    allow_charge_processing_fee: false, // Marketplace não paga taxa
    allow_charge_remainder_fee: false,
    is_liable: false // Marketplace não assume risco
  },
  {
    recipient_id: 200, // Vendedor
    amount: 90000, // R$ 900,00 (90% do valor)
    type: 'flat',
    allow_charge_processing_fee: true, // Vendedor paga taxa de processamento
    allow_charge_remainder_fee: true,
    is_liable: true // Vendedor assume risco de chargeback
  }
];

// Taxa de processamento: 3% = R$ 30,00
// Vendedor receberá: R$ 900,00 - R$ 30,00 = R$ 870,00
// Marketplace receberá: R$ 100,00 (sem desconto)

3D Secure (3DS)

3D Secure é um protocolo de autenticação adicional que aumenta a segurança e taxa de aprovação.

Quando Usar

  • Transações de alto valor (acima de R$ 500)
  • Primeiro uso do cartão
  • Cliente internacional
  • Comportamento suspeito detectado

Implementação Básica

Para usar 3DS, envie o parâmetro authentication_data com informações do navegador:
const order = await fetch('https://zeus-sandbox.autorizou.dev/api/v1/charges/orders', {
  method: 'POST',
  body: JSON.stringify({
    // ... outros parâmetros
    authentication_data: {
      attempt_authentication: 'always',
      browser_info: {
        accept_header: 'text/html',
        color_depth: '24',
        java_enabled: false,
        language: 'pt-BR',
        screen_height: '1080',
        screen_width: '1920',
        timezone_offset: '180',
        user_agent: navigator.userAgent
      },
      origin: window.location.origin,
      ip_address: '192.168.1.100'
    }
  })
});

// Se retornar status 'requires_action', redirecione para authentication_url
if (order.status === 'requires_action') {
  window.location.href = order.three_d_secure.authentication_url;
}

Próximos Passos

Após criar um pedido:
  1. Configurar webhooks para notificações em tempo real
  2. Consultar detalhes do pagamento
  3. Processar estornos quando necessário
  4. Consultar recebedores do split