Autenticação
A API usa duas camadas que trabalham juntas: um certificado de cliente (mTLS) que garante quem está de cada lado e um token que você gera e envia em toda chamada.
A autenticação da API Cartão acontece em duas camadas que trabalham juntas:
- Mutual TLS (mTLS): toda conexão com a API usa um certificado de cliente emitido pela PayZu, garantindo a identidade tanto do servidor quanto do cliente durante a comunicação.
- Token JWT: sobre a conexão mTLS, você obtém um
access_tokenviaPOST /tokene o envia no headerAuthorization: Bearerem todas as demais rotas.
Ambientes
| Ambiente | URL base |
|---|---|
| Produção | https://api.payzu.io/v1 |
| Sandbox | https://api.sandbox.payzu.io/v1 |
Mutual TLS
Antes de qualquer chamada, instale o certificado de cliente fornecido pela equipe PayZu e configure seu sistema para utilizá-lo em todas as chamadas à API, sempre por HTTPS.
No curl, o certificado entra pelas flags --cert (certificado do cliente), --key (chave privada) e --cacert (cadeia da autoridade certificadora):
curl --request GET \
--url https://api.sandbox.payzu.io/v1/charges \
--header 'accept: application/json' \
--cert cliente.crt \
--key cliente.key \
--cacert ca.pemObter o token
A rota POST /token retorna um token JWT para autenticação das rotas. Ela usa Basic Auth (seu client_id como usuário e client_secret como senha), sempre sobre a conexão mTLS, e recebe o grant_type client_credentials no corpo:
curl --request POST \
--url https://api.sandbox.payzu.io/v1/token \
--user "$CLIENT_ID:$CLIENT_SECRET" \
--header 'content-type: application/json' \
--cert cliente.crt \
--key cliente.key \
--cacert ca.pem \
--data '{ "grant_type": "client_credentials" }'Em produção, troque a base URL para https://api.payzu.io/v1.
A resposta traz o token e o tempo de expiração:
{
"access_token": "string",
"token_type": "string",
"expires_in": 0
}| Campo | Para que serve |
|---|---|
access_token | Token JWT usado no header Authorization das demais rotas |
token_type | Tipo do token retornado |
expires_in | Tempo de validade do token, em segundos |
Chamadas autenticadas
Depois de obter o token, toda rota da API recebe o header Authorization: Bearer, sempre sobre a mesma configuração de mTLS:
curl --request GET \
--url https://api.sandbox.payzu.io/v1/charges \
--header 'accept: application/json' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--cert cliente.crt \
--key cliente.key \
--cacert ca.pemNunca exponha o client_secret nem a chave privada do certificado de cliente. Não os envie ao front-end, não os suba em repositório e guarde-os em um cofre de segredos. Se houver suspeita de comprometimento, entre em contato com a equipe PayZu para substituição.