Docs
Cartões

Crie a cobrança com cartão

Envie a cobrança de crédito com o cartão, a sessão 3DS, o comprador e o split, e trate os quatro desfechos possíveis.

POST/api/v1/paymentintents

Crie a cobrança no servidor depois que a coleta do dispositivo terminar. Exemplo de R$ 100,00 em três parcelas:

cartao.json
{
  "amount": 10000,
  "currency": "BRL",
  "paymentMethods": [{
    "type": "CreditCard",
    "amount": 10000,
    "card": {
      "number": "5555555555554444",
      "expMonth": 12,
      "expYear": 2030,
      "cvc": "123",
      "holderName": "MARIA SOUZA"
    }
  }],
  "paymentMethodOptions": {
    "creditCard": {
      "installments": 3,
      "threeDSecure": "automatic",
      "threeDs": { "sessionToken": "3ds_sess_9J4W2C7X5N8QK2R4T6Y8V0H2M4P6A1B3" }
    }
  },
  "customer": {
    "name": "Maria Souza",
    "email": "maria@example.com",
    "document": "12345678909",
    "address": { "zipCode": "01310100", "country": "BR" }
  },
  "split": {
    "rules": [{
      "recipientId": "ID_DO_RECEBEDOR",
      "type": "percentage",
      "amount": 100,
      "options": { "isPrincipal": true, "chargeMdr": true, "chargebackLiability": true }
    }]
  },
  "postbackUrl": "https://loja.example.com/webhooks/dm",
  "metadata": { "orderId": "pedido-card-1001" }
}
Terminal
curl -X POST "$DM_API_BASE/api/v1/paymentintents" \
  -H "Authorization: $DM_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-card-1001-tentativa-1" \
  --data-binary @cartao.json

O número e o código de segurança acima são dados de teste. Para cobrar com um cartão tokenizado, troque o bloco card por { "token": "ctok_…" }; o resto continua igual.

Trate o desfecho

201 Created confirma que a cobrança foi criada. Para saber se a compra foi paga, leia status. Um cartão recusado também volta 201, com status: "Failed".

statusAção
SucceededAprovado e capturado. Registre o sucesso no servidor, de forma idempotente.
FailedLeia lastPaymentError e mostre ao comprador uma orientação adequada ao motivo.
ProcessingMantenha o pedido em processamento e acompanhe por consulta ou webhook.
RequiresActionMostre o desafio 3DS indicado em nextAction.
201 Created com recusa (trecho)
{
  "id": "e092c6cc-8d6f-47d3-8616-df99670286dd",
  "object": "payment_intent",
  "amount": 10000,
  "currency": "BRL",
  "status": "Failed",
  "lastPaymentError": {
    "code": "51",
    "message": "Insufficient funds",
    "category": "issuer_decline"
  }
}

O caminho sem autenticação pode devolver a recusa só na resposta do create. Trate sempre a resposta síncrona e use a consulta para reconciliar; não dependa só do webhook de falha.

Captura

Os exemplos usam captura automática e confirmação imediata, que são o padrão: Succeeded já significa autorizado e capturado. Não há chamada de captura a fazer.

Próximos passos

Nesta página