PSPs

Para: Dev · Fin — Conferido em 2026-10-18.

O PSP é quem move o PIX de verdade. O Dracma escolhe o PSP de cada operação e de cada direção (depósito ou saque); você não escolhe PSP por chamada. Esta página mostra quais PSPs existem, em que tipo de operação cada um roda, o que isso muda para o seu conector e o que o Dracma nunca faz.

O que é

PSP Depósito Saque Tipo de operação
Simulador Sim (PIX sintético) Sim Só Teste
MaximaxPay Sim Sim Só Real
Mercado Pago Sim Não Só Real

Regras fixas separam os ambientes:

  • Uma operação Teste usa sempre o simulador. Nenhum PSP real é chamado e nenhum dinheiro se move. O simulador é recusado em operação Real.
  • Uma operação Real usa PSP real e move dinheiro real, em qualquer instância (hml ou prd). Os PSPs reais são recusados em operação Teste.
  • Na instância de produção (prd) o simulador não existe: todas as operações são Reais.
  • Na instância de homologação (hml), o PSP real só é usado numa operação Real que o Dracma habilitou para isso. Sem a habilitação, uma operação Real em hml não tem por onde mover dinheiro: o depósito falha e o saque fica approved.

Dinheiro real

Uma operação Real move dinheiro de verdade, inclusive no hml. Combine com o Dracma, no onboarding, qual PSP a sua operação Real usa em cada instância antes de criar depósitos reais. Veja Ambientes, tipos de operação e hosts.

O Mercado Pago não tem API pública de pagamento PIX para chave de terceiros. Por isso ele só atende depósitos. Uma operação que usa Mercado Pago para depositar precisa de outro PSP para sacar (hoje, a MaximaxPay).

Quando usar

Leia esta página:

  • no onboarding, para saber qual PSP a sua operação usa em cada direção e o que ele exige do seu conector;
  • ao ver muitos depósitos em under_review com PAYER_UNKNOWN;
  • ao ver saques parados em approved por falta de PSP de saque.

Como funciona

Quem escolhe o PSP

O Dracma guarda, por operação, uma lista de conexões de PSP, cada uma com direção (cash_in, cash_out ou ambas) e prioridade. O cadastro é feito pelo time do Dracma; o operador vê o resultado em Painel: gateways.

flowchart TD A["Novo depósito ou novo saque"] --> B{"Há conexão ativa<br/>para a direção?"} B -->|"sim"| C["Usa a de menor prioridade<br/>que suporta a direção"] B -->|"não"| D{"Operação Teste?"} D -->|"sim"| E["Simulador"] D -->|"não"| F["Recusado antes de sair:<br/>depósito falha, saque fica approved"]
  • A escolha é fixa por tentativa. O depósito fica no PSP escolhido na criação da cobrança. O saque usa o PSP escolhido na criação da tentativa.
  • Não há failover de saque. O Dracma nunca troca o PSP de um saque no meio do caminho nem manda o mesmo pedido a dois PSPs: isso poderia pagar duas vezes. Se o PSP de saque ficar indisponível, os saques esperam (veja Ciclo do saque).
  • A queda de um PSP não derruba a operação. A API do Dracma continua no ar. O depósito afetado vai a failed (psp_unavailable); o saque afetado espera.

O que cada PSP muda para o seu conector

Tema Mercado Pago MaximaxPay
Campos exigidos no depósito player.name e player.email player.name
Pagador real informado Não garantido. O Dracma trata o pagador como não confirmado O Dracma usa o pagador quando o PSP o informa
Efeito no paid Muitos depósitos vão a under_review com PAYER_UNKNOWN Segue para paid quando o pagador informado confere; sem pagador informado, também vai a revisão
Prazo da cobrança De 31 minutos a cerca de 30 dias (veja Ciclo do depósito) Definido pelo PSP
Saque Não faz Faz. Exige o IP do titular (player.ip)

Consequências práticas:

  • Mercado Pago: planeje equipe de revisão para os depósitos em PAYER_UNKNOWN, ou aceite que eles demorem. GET /v1/currencies avisa isso com a nota payer_identity_unavailable em method_details.
  • Sempre mande player.name e player.email do cadastro do jogador (lido do seu servidor), mesmo que a operação use MaximaxPay. Fora de produção, o e-mail precisa ser de um domínio reservado (.test, .invalid, .example).
  • Saque com MaximaxPay: sempre mande o IP do jogador em player.ip. Sem ele, o saque nunca sai no automático.
  • A confirmação do pagamento chega ao Dracma por uma notificação assinada do PSP, mas ela só dispara uma conferência: o Dracma consulta o PSP antes de levar o depósito a paid ou o saque a paid. Notificação sem assinatura válida é descartada sem efeito.
  • Valide com valores mínimos. Em operação Real, a primeira transação de depósito e de saque deve ser de valor mínimo e acompanhada dos dois lados (veja Checklist de go-live).

Confira as exigências da sua operação

Os campos exigidos de cada operação vêm em GET /v1/currencies, em method_details[].deposit_requirements. Se a lista vier vazia e o seu PSP de depósito for o Mercado Pago, peça ao Dracma para conferir a configuração antes do go-live: sem player.email, a cobrança no Mercado Pago falha. Veja Ping e moedas.

O caixa é seu, mesmo com conta compartilhada

O PSP pode guardar o dinheiro de várias operações em uma mesma conta, ou dar uma conta própria à sua operação. Isso é escolha do Dracma e o operador não vê a diferença. Em qualquer dos casos, o caixa da sua operação é separado: GET /v1/balances mostra apenas a sua posição, calculada pelo livro do Dracma, e os saques da sua operação só consomem o seu caixa. Nunca existe saldo "da conta do PSP" visível na API (veja Saldos e caixa livre).

O que você não controla

  • Qual PSP atende a sua operação e em que ordem.
  • As credenciais do PSP. Elas ficam sob guarda do Dracma e não passam pelo seu conector.
  • A configuração das notificações do PSP. O endereço de callback do PSP é do Dracma e é diferente do seu webhook.
  • O prazo e as regras próprias de cada PSP.

Exemplos

Exigências de uma operação Real que usa Mercado Pago para depósitos, como o conector as lê em GET /v1/currencies:

{
  "data": [
    {
      "code": "BRL",
      "kind": "fiat",
      "exponent": 2,
      "methods": ["pix"],
      "method_details": [
        {
          "method": "pix",
          "deposit_requirements": ["player.name", "player.email"],
          "psp_notes": ["payer_identity_unavailable"]
        }
      ]
    }
  ]
}

Erros e casos de borda

Situação O que você vê O que fazer
Depósito: PSP indisponível failed com failure_code psp_unavailable Crie um depósito novo (external_id novo). Não repita o mesmo.
Depósito: PSP recusou failed com psp_rejected Confira os campos exigidos da operação.
Depósito: ambiente recusa o PSP failed com environment_guard Chame o suporte: a operação e o PSP não combinam (por exemplo, simulador em operação Real).
Saque: sem PSP de saque na operação Real O saque fica approved e o Dracma alerta Chame o suporte. Veja Ciclo do saque.
Saque: o PSP escolhido não faz saque failed com psp_unsupported, antes de qualquer envio O dinheiro não saiu: devolva a reserva e chame o suporte.
Quer usar Mercado Pago numa operação Real O Dracma habilita por operação Peça no onboarding.

Não disponível

O Dracma não oferece escolha de PSP por chamada nem failover automático de saque entre PSPs. Para trocar de PSP, peça ao Dracma. A troca vale para as próximas cobranças e tentativas, não para as que já saíram.

Veja também