curl --request POST \
--url https://sandbox.4seletpay.com.br/api/v2/orders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"currency": "BRL",
"customer": {
"name": "João Silva",
"email": "joao@exemplo.com.br",
"phone": {
"ddi": "55",
"ddd": "11",
"number": "999999999"
},
"document": {
"type": "cpf",
"number": "12345678909"
}
},
"payments": [
{
"type": "card",
"amount": 10000,
"capture_method": "manual",
"card": {
"number": "4111111111111111",
"holder_name": "João Silva",
"exp_month": "12",
"exp_year": "2030",
"cvc": "123",
"installments": 1
}
}
],
"items": [
{
"code": "SKU-1",
"description": "Camiseta Premium",
"quantity": 1,
"amount": 10000
}
],
"metadata": {
"pedido_loja": "1024"
}
}
'{
"id": "482913",
"object": "order",
"status": "requires_capture",
"currency": "brl",
"amount": 10000,
"payments": [
{
"id": "cha_8Kq2Lm9XvB3nT7pZ",
"object": "payment_intent",
"status": "requires_capture",
"amount": 10000,
"amount_refunded": 0,
"currency": "brl",
"payment_method_details": {
"type": "card",
"card": {
"brand": "visa",
"last_four": "1111",
"holder_name": "João Silva"
}
}
}
],
"next_action": null
}Criar pedido
Cria um pedido com um ou mais pagamentos (payments), como um cartão, dois cartões ou cartão + PIX. A soma de items[].amount × items[].quantity precisa ser igual à soma de payments[].amount. Todos os valores são em centavos.
Captura. Um pagamento com cartão sem capture_method usa manual: o valor é autorizado e o pedido fica em requires_capture até você chamar POST /v2/orders/{id}/capture. Com capture_method: automatic, a venda é direta, mas só em pedidos com um único pagamento. Em pedidos com dois ou mais pagamentos, todo cartão é pré-autorizado. Em cartão + PIX, o cartão é capturado automaticamente quando o PIX é pago.
201 não significa pago. A resposta traz o resultado da autorização: requires_capture, requires_action (QR Code PIX ou verificação por código em next_action), processing (venda aceita, aguardando confirmação) ou failed (HTTP 402, com failure_reason). A confirmação do pagamento chega por webhook (order.paid, charge.paid).
Tudo ou nada. Se um dos pagamentos for recusado, os pagamentos já autorizados são desfeitos e o pedido falha.
curl --request POST \
--url https://sandbox.4seletpay.com.br/api/v2/orders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"currency": "BRL",
"customer": {
"name": "João Silva",
"email": "joao@exemplo.com.br",
"phone": {
"ddi": "55",
"ddd": "11",
"number": "999999999"
},
"document": {
"type": "cpf",
"number": "12345678909"
}
},
"payments": [
{
"type": "card",
"amount": 10000,
"capture_method": "manual",
"card": {
"number": "4111111111111111",
"holder_name": "João Silva",
"exp_month": "12",
"exp_year": "2030",
"cvc": "123",
"installments": 1
}
}
],
"items": [
{
"code": "SKU-1",
"description": "Camiseta Premium",
"quantity": 1,
"amount": 10000
}
],
"metadata": {
"pedido_loja": "1024"
}
}
'{
"id": "482913",
"object": "order",
"status": "requires_capture",
"currency": "brl",
"amount": 10000,
"payments": [
{
"id": "cha_8Kq2Lm9XvB3nT7pZ",
"object": "payment_intent",
"status": "requires_capture",
"amount": 10000,
"amount_refunded": 0,
"currency": "brl",
"payment_method_details": {
"type": "card",
"card": {
"brand": "visa",
"last_four": "1111",
"holder_name": "João Silva"
}
}
}
],
"next_action": null
}201 Created não significa pago. O pedido pode voltar em requires_capture, requires_action ou processing. A confirmação chega pelos webhooks order.paid e charge.paid. Um pagamento recusado responde 402, com o pedido completo e o motivo em failure_reason.payments. Um pedido com vários pagamentos é tudo ou nada: se um for recusado, os demais são desfeitos.capture_method, um pagamento com cartão usa captura manual e o pedido fica em requires_capture até você chamar /capture. Com capture_method: "automatic", a venda é direta só quando o pedido tem um único pagamento. Em cartão + PIX, o cartão é capturado automaticamente quando o PIX é pago. Veja Captura.card.token com o id do cartão no lugar dos dados do cartão.amount × quantity) precisa ser igual à soma dos pagamentos. Com cartão no pedido, o pix_expiration pode ser de no máximo 86400 segundos. Pular a análise de fraude (fraud_analysis) exige permissão da conta.429 rate_limit_exceeded). Envie o header Idempotency-Key para reenviar com segurança. Veja Idempotência e limites.Authorizations
Chave de API (secret key) da conta, no formato sk_live_... (produção) ou sk_test_... (Dev mode). Envie no header Authorization: Bearer <chave>. Autentica todas as rotas da API v2 e as rotas de Análise de Fraude. A chave identifica a conta, então a API v2 não usa o header account. Uma chave só é aceita no ambiente em que foi criada. Gere a sua no dashboard em Configurações → Chaves de API.
Headers
Chave de idempotência opcional e recomendada. Tem até 128 caracteres e vale por 24 horas, por conta. A mesma chave com o mesmo corpo devolve a resposta original (mesmo status e mesmo corpo), sem processar de novo. Só respostas 2xx ficam guardadas: depois de um erro, a mesma chave pode ser reutilizada. A mesma chave com um corpo diferente retorna 422 (idempotency_key_conflict), uma requisição original ainda em andamento retorna 409 (idempotency_key_in_use) e uma chave com mais de 128 caracteres retorna 400 (idempotency_key_invalid).
128"pedido-1024-tentativa-1"
Body
A soma de items[].amount × items[].quantity precisa ser igual à soma de payments[].amount. Todos os valores são em centavos.
Dados do comprador. A API v2 não tem recurso de cliente: envie o comprador em cada requisição.
Show child attributes
Show child attributes
Um ou mais meios de pagamento. Todos são processados juntos, no mesmo pedido
1Show child attributes
Show child attributes
1Show child attributes
Show child attributes
BRL, USD Pula a análise de fraude. Exige permissão da conta — sem ela, a requisição retorna 422 (fraud_bypass_not_allowed). Todo pulo precisa de um motivo, que fica registrado.
Show child attributes
Show child attributes
Dados livres da sua integração
{ "pedido_loja": "1024" }
Response
Pedido criado. Confira o status: requires_capture (cartão autorizado, aguardando captura), requires_action (PIX aguardando pagamento ou verificação por código, veja next_action) ou processing (venda aceita, aguardando confirmação). 201 não significa pago.
Pedido. O status é a agregação dos seus pagamentos. processing: em processamento. requires_capture: cartão autorizado, aguardando captura. requires_action: PIX aguardando pagamento ou verificação por código (veja next_action). paid: pago. failed: recusado (veja failure_reason). canceled: cancelado. refunded e partially_refunded: estornado. chargeback: contestado.
Código do pedido
"482913"
order processing, requires_capture, requires_action, paid, failed, canceled, refunded, partially_refunded, chargeback "brl"
Valor total, em centavos
10000
Show child attributes
Show child attributes
O que precisa acontecer para o pagamento seguir. pix_display_qr_code: exiba o QR Code para o pagador. otp_confirmation: a análise de fraude pediu verificação — nada é cobrado até o código ser confirmado na rota /confirm.
Show child attributes
Show child attributes
Motivo da recusa. Presente só quando o status é failed
Show child attributes
Show child attributes
