A Efí é hoje o gateway mais fraco da biblioteca: 1 de 5 capacidades, só a API de Cobranças (boleto). Mas a Efí tem uma segunda API, a API Pix, em outro host, e ela cobre justamente o que falta.
O que a API Pix oferece
| Capacidade |
Endpoint |
Hoje |
| Chaves Pix |
POST/GET/DELETE /v2/gn/evp |
— |
| Webhooks |
PUT/GET/DELETE /v2/webhook/:chave |
— |
| Assinaturas |
Pix Automático: /v2/rec, /v2/locrec, /v2/cobr |
— |
| Cobrança Pix |
/v2/cob (imediata), /v2/cobv (com vencimento), devolução |
— |
Com isso a Efí vai de 1/5 para 4/5, empatando com Mercado Pago, PagBank e Pagar.me. Clientes continuam fora: a API Pix não tem cadastro de cliente.
Por que é uma mudança de infraestrutura
mTLS é obrigatório em toda requisição da API Pix, inclusive na de autorização, com o certificado .p12/.pem da aplicação. Nenhum gateway atual precisou disso.
Esse é o padrão do BACEN para API Pix de banco, e Inter, BB, Itaú, Sicoob e Sicredi usam o mesmo esquema. Por isso o certificado vira um value object genérico (PHPay\Http\Certificate), e não algo da Efí. Construir isso uma vez abre a categoria inteira de bancos.
Decisões
- Mesmo
EfiGateway, sem quebrar a v2. As credenciais são as mesmas nas duas APIs, e o certificado entra como parâmetro opcional novo. charge() continua sendo boleto (API de Cobranças). A cobrança Pix é pixCharge(), um extra do gateway concreto, como o webhookDeliveries() do Pagar.me.
- Cada API tem o seu token, em cache no gateway e renovado ao expirar. O token Pix dura 1h, e um gateway vivo num worker de fila passaria disso.
- Valor em reais como string (
"123.45", padrão BACEN), diferente da API de Cobranças da Efí, que usa centavos. Por isso entra Money::toDecimal().
- O certificado só é exigido quando a biblioteca monta o próprio client. Os testes injetam o client mockado e não precisam de certificado.
Fontes
- SDK oficial:
efipay/sdk-php-apis-efi, arquivo src/Efi/Endpoints/Pix.php (rotas, métodos e hosts)
- Especificação do BACEN:
bacen/pix-api, arquivo openapi.yaml (RecRevisada.status = CANCELADA, CobRSolicitada, periodicidades)
- https://dev.efipay.com.br/docs/api-pix/credenciais
A Efí é hoje o gateway mais fraco da biblioteca: 1 de 5 capacidades, só a API de Cobranças (boleto). Mas a Efí tem uma segunda API, a API Pix, em outro host, e ela cobre justamente o que falta.
O que a API Pix oferece
POST/GET/DELETE /v2/gn/evpPUT/GET/DELETE /v2/webhook/:chave/v2/rec,/v2/locrec,/v2/cobr/v2/cob(imediata),/v2/cobv(com vencimento), devoluçãoCom isso a Efí vai de 1/5 para 4/5, empatando com Mercado Pago, PagBank e Pagar.me. Clientes continuam fora: a API Pix não tem cadastro de cliente.
Por que é uma mudança de infraestrutura
mTLS é obrigatório em toda requisição da API Pix, inclusive na de autorização, com o certificado
.p12/.pemda aplicação. Nenhum gateway atual precisou disso.Esse é o padrão do BACEN para API Pix de banco, e Inter, BB, Itaú, Sicoob e Sicredi usam o mesmo esquema. Por isso o certificado vira um value object genérico (
PHPay\Http\Certificate), e não algo da Efí. Construir isso uma vez abre a categoria inteira de bancos.Decisões
EfiGateway, sem quebrar a v2. As credenciais são as mesmas nas duas APIs, e o certificado entra como parâmetro opcional novo.charge()continua sendo boleto (API de Cobranças). A cobrança Pix épixCharge(), um extra do gateway concreto, como owebhookDeliveries()do Pagar.me."123.45", padrão BACEN), diferente da API de Cobranças da Efí, que usa centavos. Por isso entraMoney::toDecimal().Fontes
efipay/sdk-php-apis-efi, arquivosrc/Efi/Endpoints/Pix.php(rotas, métodos e hosts)bacen/pix-api, arquivoopenapi.yaml(RecRevisada.status = CANCELADA,CobRSolicitada, periodicidades)