Apple Pay: Gestão de certificados
Geração, upload e rotação de certificados do Apple Pay: passo a passo, erros comuns e ambiente de sandbox.
Geração, upload e rotação de certificados do Apple Pay: passo a passo, erros comuns e ambiente de sandbox.
Este guia orienta a geração, upload e rotação de certificados para o Apple Pay de forma autônoma. Para detalhes sobre a integração no checkout e requisitos de domínio, consulte nossa Documentação Geral do Apple Pay.
Este é um passo obrigatório para que o Pagarme consiga descriptografar os dados de pagamento enviados pela Apple no seu ecommerce. Sem o certificado ativo, as transações não podem ser processadas.
A integração de certificados é composta por duas etapas principais executadas em conjunto com a Stone (Pagarme) e o Apple Developer Portal:
Para gerar o .CSR, faça a chamada abaixo com sua chave de autenticação (sk em base64), conforme detalhado na Documentação do Pagar.me. Caso esteja utilizando a sk_test de sua conta de testes, verificar os detalhes na sessão de Ambiente de Testes
Endpoint: POST https://api.stone.com.br/core/v5/apple-pay/key-pairs
Chamada via cURL:
curl --request POST \
--url https://api.stone.com.br/core/v5/apple-pay/key-pairs \
--header 'Authorization: Basic {SUA_SK_EM_BASE64}' \
--output ecccertreq.csr
--output já cria automaticamente um arquivo com o conteúdo da resposta. O nome ecccertreq.csr é apenas um exemplo, você pode alterá-lo.Sucesso (200 OK)
-----BEGIN CERTIFICATE REQUEST-----
MIIBATCBpwIBADBFMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMY
SW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEip+qly3a
NGNf82e2OSIB7guP+AAlameXfbjubTUDK3cTN09yMzpA8HA8lHUKEvX5SmewsZirt0CL/Dfdg5oq
I6AAMAoGCCqGSM49BAMCA0kAMEYCIQCy8ksvlhvoLfthVqB1EO5e32OhjDbiEz+JGvtepeq+0wIh
AOpn4Bv92r0cuZN4QjyIudWvj1qj/j1d6sP9+9ntkRRr
-----END CERTIFICATE REQUEST-----
Este passo deve ser feito dentro do Portal da AppleDeveloper, para mais informações sobre a criação de conta consulte este link. Feito o cadastro, siga os passos abaixo:
1- Localize e clique na seção Apple Pay Payment Processing Certificate no portal da Apple Developer, inserido na página Certificates, Identifiers & Profiles.

2- Escolha a opção No em Edit or Configure Merchant ID

3- Na caixa de diálogo, clique em Choose File e faça o upload do arquivo .CSR gerado no passo anterior e clique em Continue

4- Clique em Download para baixar o arquivo .CER

Após baixar o certificado .CER no portal da Apple utilizando o .CSR gerado anteriormente, você deve enviá-lo para a Pagarme para habilitar a descriptografia das transações.
Endpoint: POST https://api.stone.com.br/core/v5/apple-pay/certificates
Chamada via cURL:
curl --request POST \
--url https://api.stone.com.br/core/v5/apple-pay/certificates \
--header 'Authorization: Basic {SUA_SK_EM_BASE64}' \
--form 'certificate=@"/caminho/seu/arquivo/apple_pay.cer"'
certificate deve apontar para o caminho local onde o certificado está salvo.Sucesso (200 OK): A resposta conterá um externalId (ex: cert_xpto). Guarde este ID, pois ele é necessário para gerenciar ou deletar o certificado futuramente.
Exemplo:
{
"externalId": "cert_xpto",
"createdAt": "2026-02-04T15:15:04.4849894Z",
"accountId": "acc_test",
"merchantIdentifier": "merchant.com.test",
"certificateName": "teste.cer",
"expiresDate": "2027-02-04T00:00:00+00:00"
}
Os certificados da Apple expiram a cada 25 meses. Recomendamos iniciar a rotação antes do vencimento.
Para verificar datas de expiração e obter o externalId:
Endpoint: GET https://api.stone.com.br/core/v5/apple-pay/certificates
Chamada via cURL:
`curl --request GET \
--url https://api.stone.com.br/core/v5/apple-pay/certificates \
--header 'Authorization: Basic {SUA_SK_EM_BASE64}'
Sucesso (200 OK)
[
{
"externalId": "cert_xpto",
"createdAt": "2026-02-04T15:15:04.4849894Z",
"accountId": "acc_test",
"merchantIdentifier": "merchant.com.test",
"certificateName": "teste.cer",
"expiresDate": "2027-02-04T00:00:00+00:00"
}
]
Após confirmar que o novo certificado está funcionando, remova o antigo para manter sua conta organizada:
Endpoint: DELETEhttps://api.stone.com.br/core/v5/apple-pay/certificates/{externalId}
Chamada via cURL:
curl --request DELETE \
--url https://api.stone.com.br/core/v5/apple-pay/certificates/{externalId} \
--header 'Authorization: Basic {SUA_SK_EM_BASE64}'
Sucesso (204 No Content)
| Etapa | Código de Erro | Mensagem | O que fazer? |
|---|---|---|---|
| Geração do Certificate Signing Request (.CSR) | 400 Bad Request | Could not create new key. Account already reached maximum number of certificates allowed. | Você já possui 2 .CSRs gerados. Delete um certificado antigo para gerar um novo |
| Upload do Certificado Digital (.CER) para a Pagarme | 400 Bad Request | The certificate field is required. | Você precisa popular o campo Certificate com o .CER |
| Upload do Certificado Digital (.CER) para a Pagarme | 412 Precondition Failed | This certificate was already registered | Você tentou fazer o upload de um certificado já cadastrado |
| Upload do Certificado Digital (.CER) para a Pagarme | 412 Precondition Failed | Merchant identifier not present | Merchant Identifier ausente. Isso pode identificar que houve algum erro no fluxo de geração do certificado do lado da Apple |
| Upload do Certificado Digital (.CER) para a Pagarme | 412 Precondition Failed | Limit of 2 certificates reached. Account over limit: acc_xpto | Limite de certificados atingido, exclua um antigo para gerar um novo |
| Upload do Certificado Digital (.CER) para a Pagarme | 412 Precondition Failed | The certificate publicKeyHash does not match with the private key for this account | Chave pública não corresponde à conta. Isso pode significar que o .CER foi gerado no portal da Apple com outro .CSR incorreto |
| Deleção de Certificado | 404 Not Found | Apple private key not found for the specified account. | Chave não encontrada |
| Consulta de Certificado | 404 Not Found | Apple certificate not found | A conta não possui certificados cadastrados |
Ao utilizar chaves de teste (sk_test_), você deve obrigatoriamente ajustar as URLs dos endpoints. O uso de URLs de produção com chaves de teste resultará em falhas no fluxo.
https://sdx.api.stone.com.br/core/v5/apple-pay/sk_test_ convertida para Base64.Jornada: Cobrar um cliente
Etapa 20 de 22