PSP FISERV - API Pix

PSP FISERV - API Pix 💰#

Introdução#

Esta documentação detalha as APIs do PSP Fiserv, projetadas para integração com os integradores, possibilitando a gestão de operações relacionadas a clientes, contas, cobranças e pagamentos via Pix. As principais funcionalidades incluem:

  • Autenticação: Obtenção de token para todas as operações
  • Gestão de Clientes: Adicione, atualize, consulte e detele clientes
  • Gestão de Contas: Adicione, atualize, consulte e delete contas.
  • Geração de pagamentos e devoluções Pix: Criação de cobranças e devoluções Pix de forma eficiente e segura, permitindo que seus clientes realizem pagamentos via Pix.
  • Consulta de Pagamentos Pix: Consulta de status e detalhes de pagamentos realizados via Pix para maior controle e transparência.
  • Saques manuais: Solicite saques manuais em vez de aguardar o saque automático.
  • Gestão de Webhooks: Registre webhooks para receber notificações automáticas sobre eventos importantes como credenciamento de clientes, confirmações de pagamento ou solicitações de estorno.
  • Relatórios: Gere relatórios detalhados das transações Pix, facilitando o acompanhamento das operações e relatório das liquidações relacionadas as contas.

Primeiros passos#

Credenciais#

Para começar consumir a API, serão disponibilizadas os acessos do integrador: client_id e client_secret e app_key e app_secret. O client_id e client_secret devem ser utilizados para obtenção do token e o app_key e app_secret devem ser utilizados para a geração do HMAC. Ambos etapas estão detalhadas nos tópicos a seguir desta documentação. Serão disponibilizadas credenciais diferentes para cada um dos ambientes.


/token#

POST#

Obter o token de autenticação

Parâmetros#
NomeLocalizaçãoDescriçãoObrigatórioType
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
Responses#
CodeDescription
200Retorna o token de acesso e informações de expiração

/v1/webhook#

Gestão do endereço onde para onde serão enviadas as notificações referentes à conclusão do cadastro de cliente (processo de Know Your Customer) e confirmações das transações de cobrança e devolução realizadas.

PUT#

Cadastra o Webhook do integrador.

Parâmetros#
NomeLocalizaçãoDescriçãoObrigatórioTipo
webhookUrlbodyUrl a ser chamada no callbacksimstring
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)

Exemplo de requisição#

{
"webhookUrl": "https://pix.example.com/api/webhook/"
}
Responses#
Response 204: Sucesso - Sem conteúdo a ser devolvido#
Response 400: Requisição com formato inválido.#
Response 503: Serviço indisponível#
* A atualização do webhook se dá por solicitação ao time técnico#

GET#

Exibir a url cadastrada do webhook do integrador.

Parâmetros#
NomeLocalizaçãoDescriçãoObrigatórioTipo
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
webhookUrlbodyUrl a ser chamada no callbacksimstring
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
Responses#
Response 200: Sucesso - Dados do webhook#
Response 503: Serviço indisponível#

DELETE#

Exclusão do webhook do integrador.

Parâmetros#
NomeLocalizaçãoDescriçãoObrigatórioTipo
webhookUrlbodyUrl a ser chamada no callbacksimstring
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
Responses#
Response 204: Sucesso - Sem conteúdo a ser devolvido#
Response 503: Serviço indisponível#

CALLBACKS#

POST/client#

Após o cadastro do cliente e o processo de KYC ser finalizado, a URL cadastrada para o webhook recebe a notificação no formato abaixo:

{
"protocolId":"347acdf2-7b01-4191-acff-36bd23639e43",
"externalProtocolId":"8dd562ee4a7a",
"omniClientId":"f932d207-573c-439c-b444-6ca26afff066",
"document":{
"type":"CNPJ",
"number":"60664745000187"
},
"status":"DONE",
"errors ":[ {
"code":"FEP_123",
"message":"string"
}
]
}

Quando Status = DONE, indica que o processamento foi finalizado e o status final do KYC e a consulta de cliente pode ser consultada.

POST /v1/apm/pix/charges e PUT /v1/apm/pix/{endToEndId}/reverse/{txid}#

Após a finalização da transação de cobrança ou devolução, a URL cadastrada no webhook recebe a notificação abaixo:

{
"Pix": {
"endToEndId":"D13207930202410252046wrzeq7wrQZ8",
"txid":"D13207930202410252034KgylGnIt2T3",
"chave":"ac2ce947-fa51-4dd1-a4f9-52181bcc971f",
"Status":1,
"OperationType":2
}
}
CampoTipoDescrição
Pix.endToEndIdstringEnd to End da confirmação de pagamento
Pix.txidstringId da transação
Pix.chavestringChave Pix da conta
Pix.StatusstringStatus da Transação
Pix.OperationTypestringTipo da Transação (0 – Cobrança, 1- Devolução Parcial, 2 – Estorno)

POST /v2/apm/pix/cashout and POST /v2/apm/pix/cashout/confirm#

Após solicitar uma operação de saque, algumas validações serão realizadas de forma assíncrona, e a solicitação ainda pode ser negada. O resultado dessa validação, juntamente com a chave de confirmação necessária para a solicitação de confirmação, será enviado ao webhook em um payload como no seguinte exemplo:

{
"pix": [
{
"txid": "bec7e05d-484e-4814-a432-dde637f84408",
"endToEndId": null,
"createdAt": "2025-01-16 09:33:01.573Z",
"confirmedAt": null,
"pixKey": "883f75da-1f69-48c4-9444-c32b4bcb3553",
"receiverDocument": "3626416467",
"receiverPixKey": "pix-key-receiver@mail.com",
"amount": 99.99,
"confirmationKey": "4826e6ec-9bd2-4045-b030-f10e519d584a",
"status": 2,
"operationType": 6
}
]
}
CampoTipoDescrição
Pix.txidstringIdentificador único do cash-out
Pix.endToEndIdstringEnd to nd da transação. Neste momento sempre será nulo.
Pix.createdAtDateTime (ISO 8601)Data e hora da solicitação
Pix.confirmedAtDateTime (ISO 8601)Data e hora da confirmação
Pix.pixKeystringChave Pix da conta Fiserv (origem)
Pix.receiverDocumentstringDocumento da conta destino
Pix.receiverPixKeystringChave Pix da conta destino
Pix.amountdecimalValor do cash-out
Pix.confirmationKeystringChave aleatória para a confirmação do saque
Pix.Statusint (enum)Status da transação
Pix.OperationTypeint (enum)Tipo da transação:
Valores possíveis:
6 - PixOrderManual

Status da transação#

CódigoStatus
0Pendente (Aguardando confirmação)
2Confirmado (pago)
3Falhou (Pagamento falhou)

Uma vez que a chave de confirmação é recebida da notificação, a solicitação de confirmação (/cashout/confirm) deve ser chamada para confirmar o saque. Após a confirmação, o saque ainda pode falhar em alguns cenários, portanto, uma nova notificação será enviada para o webhook configurado para informar se o saque foi concluído com sucesso (status 1) ou se falhou (status 2). O payload de confirmação tem a mesma estrutura que o payload da solicitação de saque, a única diferença principal será no "status".


/v1/client#

POST#

Adiciona um cliente

Parâmetros#
NomeLocalizaçãoTipoDescriçãoObrigatório
Authorizationheaderstring (bearerToken)Token de autorizaçãoSim
apikeyheaderstringChave de Apisim
x-timestampheaderstringdata/hora do request(utilizado para evitar ataque de replay)sim
x-request-idheaderstringID aleatório para identificar o requestsim
x-hmac-signatureheaderstringAssinatura HMAC gerada com combinação dos parâmetros do request.sim
address.citybodystringCidade do clienteSim
address.countrybodystringPaís do clienteSim
address.localitybodystringDistrito, vila, bairro colônia do clientesim
address.numberbodystringNúmero do endereçonão
address.postalCodebodystringCEPsim
address.provincebodystringEstadosim
address.streetbodystringRuasim
address.subNumberbodystringComplementomnão
document.numberbodystringNúmero do documentosim
document.typebodyenumCNPJsim
contact.emailbodystringE-mail do clientesim
contact.phonebodystringTelefone do clientesim
legalNamebodystringRazão socialsim
tradeNamebodystringNome Fantasiasim
averageTicketbodydecimalTicket médiosim
Exemplo de Requisição#
{
"address": {
"city": "string",
"country": "str",
"locality": "string",
"number": "153",
"postalCode": "string",
"province": "string",
"street": "string",
"subNumber": "string"
},
"document": {
"number": "60.664.745/0001-87",
"type": "CNPJ"
},
"contact": {
"email": "user@example.com",
"phone": "string"
},
"legalName": "Fiserv Inc",
"tradeName": "Fiserv",
"averageTicket": 100.00
}
Responses#
Response 200:#
NomeDescriçãoTipo
clientIdId único do clientestring
protocolIdprotocolo da requisiçãostring
Exemplo de response#
{
"clientId": "bb41c1e6-654f-4263-83f4-36e37678f548",
"protocolId": "Request protocol"
}
Response 400: Requisição com formato inválido.#
Response 401: Não autorizado#
Response 403: Proibido#
Response 404: Não localizado#
Response 500: Erro#
Response 503: Serviço indisponível#

/v1/client/{clientId}#

GET#

Busca a informação sobre o status de "Know Your Customer" do cliente

Parâmetros#
NomeLocalizaçãoDescriçãoObrigatórioTipo
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
clientIdrotaclient idsimstring
Responses#
Response 200:#
{
"kycStatus": "Approved"
}

O KycSytatus pode ser um dos seguintes: 🔸 APPROVED 🔸 REFUSED 🔸 PROCESSING 🔸 PENDING 🔸 ERROR

Somente o status APPROVED permite a continuação do processo de credenciamento e a criação de uma Conta Pix

Response 400: Requisição com formato inválido.#
Response 401: Não autorizado#
Response 403: Proibido#
Response 404: Não localizado#
Response 500: Erro#
Response 503: Serviço indisponível#

/v1/client/{clientId}/apm/pix/account#

Informações gerais sobre a gestão de contas#

pixFee#

Pix fee, ou taxa do Pix, é a taxa que é cobrada a cada transação realizada. Ela pode ser do tipo valor fixo (amount) ou MDR - Merchant Discount Rate (percentage) quando o modelo comercial for comissionamento. Ou não possui valor nenhum quando o modelo comercial for faturamento.

Exemplo modelo comercial comissionamento com valor fixo#

Taxa cadastrada para conta: R$ 0,85

Cobrança realizada: R$ 30,00

Taxa na cobranca: R$ 0,85

Valor líquido: R$ 29,15

Exemplo modelo comercial comissionamento com valor MDR#

Taxa cadastrada para conta: 1%

Cobrança realizada: R$ 22,00

Taxa na cobranca: R$ 0,22

Valor líquido: R$ 21,78


POST#

Adicionar uma conta pix

Parâmetros#
CampoLocalizaçãoTipoObrigatórioDescrição
Authorizationheaderstring (bearerToken)simBearer token para autenticação
apikeyheaderstringsimChave de Api
x-timestampheaderstringsimdata/hora do request(utilizado para evitar ataque de replay)
x-request-idheaderstringsimID aleatório para identificar o request
x-hmac-signatureheaderstringsimAssinatura HMAC gerada com combinação dos parâmetros do request.
clientIdrotastringsimClient Id
Settlement.pixKeybodystringsimSomente a chave domicílio ou os dados1 da conta devem ser informados, nunca ambos
Settlement.bankAccount.typebodyintegersim(enum) 0. Conta Corrente, 1. Conta Depósito 2. Conta de Pagamento 3. Poupança
Settlement.bankAccount.BankCompeCodebodystringsimCódigo COMPE (Sistema de Compensação de Cheques e Outros Papéis)
Settlement.bankAccount.agencybodystringsimNúmero da agência
Settlement.bankAccount.accountNumberbodystringsimNúmero da Conta
Settlement.bankAccount.document.numberbodystringsimCNPJ da conta. Deve ter a mesma raiz do CNPJ cadastrado
Settlement.bankAccount.document.typebodystringsimInformar sempre “CNPJ”
pixFee.amountbodydecimalnãoNão pode ser menor que 0 se a porcentagem for informada
pixFee.percentagebodydecimalnãoNão pode ser menor que 0 e maior que 100 se o valor for informado
pixFee.minbodydecimalnãoPode ser zero; Não pode ser negativo
pixFee.maxbodydecimalnãoSó pode ser enviado caso exista o min; Não pode ser zero; Não pode ser negativo Nunca poderá ser menor ou igual ao min
userTermsAccept.number.numberbodystringsimCPF da pessoa que está realizando o aceite
userTermsAccept.document.typebodystringsimSempre “CPF”
userTermsAccept.ipbodystringsimIP da máquina que deu o termo de aceite
Settlement.bankAccount.BankCompeCodebodystringsimCódigo COMPE (Sistema de Compensação de Cheques e Outros Papéis)
Settlement.bankAccount.agencybodystringsimNúmero da agência
Settlement.bankAccount.accountNumberbodystringsimNúmero da Conta
Settlement.bankAccount.document.numberbodystringsimCNPJ da conta. Deve ter a mesma raiz do CNPJ cadastrado
Settlement.bankAccount.document.typebodystringsimInformar sempre “CNPJ”
pixFee.amountbodydecimalnãoNão pode ser maior que 0 se a porcentagem for informada
pixFee.percentagebodydecimalnãoNão pode ser maior que 0 se o valor for informado
pixFee.minbodydecimalnãoPode ser zero; Não pode ser negativo
pixFee.maxbodydecimalnãoSó pode ser enviado caso exista o min; Não pode ser zero; Não pode ser negativo; Nunca poderá ser menor ou igual ao min
userTermsAccept.number.numberbodystringsimCPF da pessoa que está realizando o aceite
userTermsAccept.document.typebodystringsimSempre “CPF”
userTermsAccept.ipbodystringsimIP da máquina que deu o termo de aceite
Exemplo de requisição#
{
"settlement": {
"bankAccount": {
"accountNumber": "12341",
"agency": "00001",
"bankCompeCode": "001",
"document": {
"number": "56011706000103",
"type": "CNPJ"
},
"type": 0
},
"pixKey": null
},
"userTermsAccept": {
"document": {
"number": "372.706.938-46",
"type": "CPF"
},
"ip": "0.0.0.0"
},
"pixFee": {
"amount": null,
"max": null,
"min": 0.12,
"percentage": 0.39
}
}

Responses#

Response 200:#
NomeDescriçãoTipo
pixKeyChave Pix da contastring
Exemplo de response#
{
"pixKey": "495f16cd-b4ba-4ae3-8810-72a23f4ca2c6"
}
Response 400: Requisição com formato inválido.#
Response 401: Não autorizado#
Response 500: Erro#
Possiveis erros:#
ErrorCodeError
149O CNPJ da account é inválido
154A taxa deve ter um único valor
158Conta não encontrada.
161A conta não está ativa
162A chave PixKey deve ser diferente da chave AddressPixKey
169A conta domicílio informada é inválida
170A conta domicílio é obrigatória
171Não é possível informar duas contas domicílio
174O CNPJ da conta de liquidação é inválido
176Não é possível alterar as informações para liquidação desta conta
177Não é possível alterar a taxa desta conta
178O código ISPB ou o código COMPE deve ser preenchido.
187A taxa máxima deve ser maior que a taxa mínima.
188A taxa mínima deve ser informada devido à taxa máxima ter sido informada.
189A taxa mínima deve ser maior ou igual a zero.
190A taxa máxima deve ser maior que zero.
191A taxa mínima e máxima só devem ser informadas em caso de taxa MDR.

/v1/client/{clientId}/apm/pix/account/{pixKey}#

GET#

Consulta uma conta com base na chave PIX.

Parâmetros#
NameLocated inDescriptionRequiredType
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
pixKeypathChave PIX da contaYesstring
clientIdpathclient idYesstring
Responses#
Response 200:#
{
"name": "Store Name",
"documentNumber": "14821268000107",
"status": 1,
"settlement": {
"pixKey": "26770318000145",
"bankAccount": {
"accountNumber": "12345-1",
"agency": "1234",
"bankCompeCode": "341",
"document": {
"number": "60.664.745/0001-87",
"type": "CNPJ"
},
"type": 1
},
"holdSettlement": true
},
"pixFee": {
"amount": 0,
"percentage": 2,
"max": 0,
"min": 0
}
}
Response 400: Requisição com formato inválido.#
Response 401: Não autorizado#
Response 500: Erro#

PUT#

Alterar uma conta pix

Description:#

Endpoint para alterar uma conta pix

Parâmetros#
NameLocated inDescriptionRequiredType
authorizationheaderBearer token para autenticaçãosimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
pixKeypathChave PIX da contasimstring
clientIdpathclient idsimstring
Exemplo de requisição#
{
"settlement": {
"pixKey": "string",
"bankAccount": {
"type": 0,
"ispb": "string",
"agency": "string",
"accountNumber": "string",
"document": {
"number": "07.934.103/0001-78",
"type": "CNPJ"
}
}
},
"pixFee": {
"amount": 100,
"percentage": 100
}
}
Responses#
Response 204: Sucesso - Sem conteúdo a ser exibido#
Response 400: Requisição com formato inválido.#
Response 401: Não autorizado#
Response 500: Erro#
ErrorCodeError
154A taxa deve ter um único valor
158Conta não encontrada.
161A conta não está ativa
162A chave PixKey deve ser diferente da chave AddressPixKey
169A conta domicílio informada é inválida
170A conta domicílio é obrigatória
171Não é possível informar duas contas domicílio
174O CNPJ da conta de liquidação é inválido
176Não é possível alterar as informações para liquidação desta conta
177Não é possível alterar a taxa desta conta
178O código ISPB ou o código COMPE deve ser preenchido.
187A taxa máxima deve ser maior que a taxa mínima.
188A taxa mínima deve ser informada devido à taxa máxima ter sido informada.
189A taxa mínima deve ser maior ou igual a zero.
190A taxa máxima deve ser maior que zero.
191A taxa mínima e máxima só devem ser informadas em caso de taxa MDR.

DELETE#

Excluir uma conta pix

Description:#

Endpoint para excluir uma conta pix

Parâmetros#
NameLocated inDescriptionRequiredType
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
pixKeypathChave PIX da contasimstring
clientIdpathclient idsimstring
Responses#
Response 204: Sucesso - Sem conteúdo a ser exibido#
Response 400: Requisição com formato inválido.#
Response 401: Não autorizado#
Response 500: Erro#

/v1/client/{clientId}/apm/pix/accounts#

GET#

Consultar as contas de um cliente.

Parâmetros#
NomeLocalizaçãoDescriçãoObrigatórioTipo
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
clientIdrotaclient idsimstring
paginaAtualqueryPágina a ser consultadanãoint
itensPorPaginaqueryQuantidade de itens por páginanãoint
Responses#
Response 200:#
{
"content": [
{
"name": "Store name",
"pixFee": {
"amount": 0,
"percentage": 2,
"max": 0,
"min": 0
},
"settlement": {
"bankAccount": {
"accountNumber": "12345-1",
"agency": "1234",
"bankCompeCode": "123",
"document": {
"number": "60.664.745/0001-87",
"type": "CNPJ"
},
"ispb": "00000000",
"type": 1
},
"pixKey": "b57c7b3c-976b-41f6-a5f6-7cccd86549bd"
},
"status": "string"
}
],
"totalElements": 10
}
Response 400: Requisição com formato inválido.#
Response 401: Não autorizado#
Response 500: Erro#

/v1/apm/pix/accounts#

GET#

Consulta contas de um integrador.

Parâmetros#
NomeLocalizado emDescriçãoObrigatórioTipo
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
pagination.currentPagequeryPágina a ser consultadanãoint
pagination.pageSizequeryQuantidade de itens por páginanãoint
Responses#
Response 200:#
{
"content": [
{
"name": "Store name",
"pixFee": {
"amount": 0,
"percentage": 2,
"max": 0,
"min": 0
},
"settlement": {
"bankAccount": {
"accountNumber": "12345-1",
"agency": "1234",
"bankCompeCode": "123",
"document": {
"number": "60.664.745/0001-87",
"type": "CNPJ"
},
"ispb": "00000000",
"type": 1
},
"pixKey": "b57c7b3c-976b-41f6-a5f6-7cccd86549bd"
},
"status": "string"
},
{
"name": "Store name 2",
"pixFee": {
"amount": 0,
"percentage": 2,
"max": 0,
"min": 0
},
"settlement": {
"bankAccount": {
"accountNumber": "12345-2",
"agency": "1234",
"bankCompeCode": "124",
"document": {
"number": "60.664.745/0001-87",
"type": "CNPJ"
},
"ispb": "00000000",
"type": 1
},
"pixKey": "b57c7b3c-976b-41f6-a5f6-7cccd86549bd"
},
"status": "string"
}
],
"totalElements": 10
}
Response 400: Requisição com formato inválido.#
Response 401: Não autorizado#
Response 500: Erro#

/v1/apm/pix/charge#

POST#

Criar cobrança imediata.

Description:#

Endpoint para criar uma cobrança imediata.

Parâmetros#
NomeLocalizado emDescriçãoObrigatórioTipo
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
amountbodyValor da cobrançasimdecimal
pixKeybodyChave pix da contasimstring
returnQrCodeImagebodyIndicador para retornar a imagem do qrCode ou não (false default)nãobool
expirationbodyTempo de expiração do QRcode em segundossimint
Responses#
Response 200:#
CampoTipoObservações
txidstringId da transação gerada
locationstringLocalização do QRCode gerado
qrCodeImageboolImagem em base64 do QRcode (Apenas quando informado returnQrCodeImage= true)
statusstringStatus da transação
amountdecimalValor da transação
pixCopyPastestringCódigo copia e cola do pix
pixKeystringChave pix utilizada para a transação
Response 400: Requisição com formato inválido.#
Response 401: Não autorizado#
Response 500: Erro#
ErroDescrição
157Essa cobrança não possui um valor de taxa
96A data de agendamento da liquidação é menor que a data atual.
153A conta para essa chave pix não está ativa
157Essa cobrança não possui um valor de taxa
158Conta não encontrada.
167Conta suspensa para processamento de cobranças.
193A cobrança não pode ser nula ou negativa.

/v1/apm/pix/charge/{txid}#

GET#

Consultar cobrança imediata através de um determinado txid.

Parâmetros#
NomeLocalizado emDescriçãoObrigatórioTipo
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
txidpathId da transaçãosimstring
returnQrCodeImagequeryIndicador se deve ser gerado QrCode em base64 ou nãonãoboolean
Responses#
Response 200:#
{
"txid": "string",
"amount": 99.99,
"status": "status",
"location": "string",
"pixCopyAndPaste": "string",
"qrCodeImage": "string"
}
Response 400: Requisição com formato inválido.#
Response 404: Não localizado#
Response 500: Erro#

/v1/apm/pix/charge/cancel/{txid}#

PATCH#

Cancelar cobrança imediata.

Parâmetros#
NomeLocalizaçãoDescriçãoObrigatórioTipo
txidrotaid da transaçãosimstring
Responses#
Response 204: Sucesso - Sem conteúdo a ser devolvido.#
Response 400: Requisição com formato inválido.#
Response 404: Não localizado#
Response 500: Erro#

/v1/apm/pix/charges#

GET#

Consultar lista de cobranças imediatas através de parâmetros como início, fim, cpf, cnpj e status

Parâmetros#
NameLocated inDescriptionRequiredType
AuthorizationheaderBearer token para autenticaçãoSimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
startDatequeryData de início para filtrar a consultaSimtimezone (ISO 8601)
endDatequeryData de fim para filtrar a consultaSimtimezone (ISO 8601)
pixKeyqueryChave Pix da contaNãostring
documentNumberqueryNúmero do CNPJNãostring
statusqueryNãostring
pagination.currentPagequeryNãoint
pagination.pageSizequeryNãoint
Responses#
Response 200: Sucesso - Lista de cobranças imediatas.#
Response 500: Erro#

/v1/apm/pix/{endToEndId}/reverse/{txid}#

PUT#

Solicitar devolução.

Parâmetros#
NameLocated inDescriptionRequiredType
AuthorizationheaderBearer token para autenticaçãoYesstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
endToEndIdpathCódigo end to end da transaçãoYesstring
txidpathId da transaçãoYesstring
Responses#
Response 200:#
{
"txid": "DLzljVvS6DWp9ubnflS3nnCdeVBg7AxVt2h",
"endToEndId": "D12345678202009091000abcde123456",
"amount": "231.39",
"confirmedAt": "2025-03-11T12:07:12.395Z",
"status": "PENDING"
}
Response 400: Requisição com formato inválido.#
Response 404: Não localizado#
Response 500: Erro#

GET#

Consultar devolução através de um End To End ID do Pix e do ID da devolução

Parâmetros#
NomeLocalizado emDescriçãoObrigatórioTipo
AuthorizationheaderBearer token para autenticaçãoYesstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
endToEndIdrotaCódigo End To End do pagamentoYesstring
txidrotaId da transaçãoYesstring
Responses#
Response 200:#
{
"txid": "DLzljVvS6DWp9ubnflS3nnCdeVBg7AxVt2h",
"endToEndId": "D12345678202009091000abcde123456",
"amount": "231.39",
"confirmedAt": "2025-03-11T12:07:12.395Z",
"status": "PENDING"
}
Response 400: Requisição com formato inválido.#
Response 404: Não localizado#
Response 500: Erro#

PATCH /v1/apm/pix/charge/settlement/hold{txid}#

Travar a cobrança para que o valor da mesma não seja liquidado na próxima janela de liquidação.

Request parameters#

CampoTipoObservações
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
txidrotaId da transação a ter a liquidação travada (rota)simstring

Responses#

Response 204: Sucesso - Sem conteúdo a ser devolvido#
Response 400: Requisição com formato inválido.#

PATCH /v1/apm/pix/charge/settlement/release{txid}#

Liberar o valor da cobrança para que seja liquidado na próxima janela de liquidação.

Request parameters#

CampoTipoObservações
AuthorizationheaderBearer token para autenticaçãoYesstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
txidrotaId da transação a ter a liquidação liberada (rota)simstring

Responses#

Response 204: Sucesso - Sem conteúdo a ser devolvido#
Response 400: Requisição com formato inválido.#

Cashouts (saque manual)#

/v2/apm/pix/cashout#

POST#

Cria a solicitação de cash-out (saque manual)

Request parameters#

CampoLocalizaçãoDescriçãoObrigatórioTipo
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
amountbodyValor do cashout (BRL)simdecimal
pixKeybodyChave pix da conta origemsimstring
receiverPixKeybodyChave pix do recebedorsimbool
receiverDocumentbodyDocumento do recebedor. Será validado e deve ser da mesma titularidade da chave pixsimstring

Responses#

Response 200:#
CampoTipoDescrição
txidstringIndentificador do cashout
Response 400: Requisição com formato inválido.#

Após solicitar com sucesso a operação de saque, algumas validações serão realizadas de forma assíncrona, e o saque ainda pode ser negado. O resultado dessa validação, juntamente com a chave de confirmação necessária para a solicitação de confirmação (próximo endpoint), será enviado para o webhook, conforme detalhado na parte de webhooks.

/v2/apm/pix/cashout/confirm#

POST#

Confirm a pix cashout request with the confirmation key.

Request parameters#

CampoLocalizaçãoDescriçãoObrigatórioTipo
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
txidbodyIndentificador do cashoutsimstring
confirmationKeybodyChave aleatória para a confirmação do saquesimstring

Responses#

Response 204: Sucesso - Sem conteúdo a ser devolvido#
Response 400: Requisição com formato inválido.#

Após a confirmação, o saque ainda pode falhar em alguns cenários, portanto, uma nova notificação será enviada para o webhook configurado para informar se o saque foi concluído com sucesso, conforme descrito na parte de webhooks.

GET /v2/apm/pix/cashout/{txid}#

Recupera os dados do saque com o txid. Em caso de atraso ou falha na notificação do webhook, este endpoint pode ser utilizado para verificar o status do saque.

Request parameters#

CampoLocalizaçãoDescriçãoObrigatórioTipo
AuthorizationheaderBearer token para autenticaçãosimstring (bearerToken)
apikeyheaderChave de Apisimstring
x-timestampheaderdata/hora do request(utilizado para evitar ataque de replay)simstring
x-request-idheaderID aleatório para identificar o requestsimstring
x-hmac-signatureheaderAssinatura HMAC gerada com combinação dos parâmetros do request.simstring
txidrotaIndentificador do cashoutsimstring

Responses#

Response 200:#
CampoTipoDescrição
txidstringIndentificador do cashout
endToEndIdstringEnd To End da transação, Será sempre nulo até a confirmação
createdAtDateTime (ISO 8601)Data e hora da solicitação de saque
confirmedAtDateTime (ISO 8601)Data e hora da confirmação do saque
pixKeystringChave pix da conta Fiserv (origem)
receiverDocumentstringDocumento da conta destino
receiverPixKeystringChave Pix da conta destino
amountdecimalValor do saque (BRL)
statusint (enum)Status do Cash-out
Response 400: Requisição com formato inválido.#

/v2/apm/pix/cashouts#

GET#

Localiza solicitações de saques manuais

Request parameters#

PropertyTypeDescription
pixKeystringChave Pix da conta
startDateDateTime (ISO 8601)Data Inicial do filtro
endDateDateTime (ISO 8601)Data final do filtro
statusint (enum)Status do Cash-out

Responses#

Response 200:#

PropertyTypeDescription
result.txidstringUnique identifier of the cashout operation
result.endToEndIdstringEnd To End da transação, Será sempre nulo até a confirmação
result.createdAtDateTime (ISO 8601)Data e hora da solicitação de saque
result.confirmedAtDateTime (ISO 8601)Data e hora da confirmação de saque
result.pixKeystringChave pix da conta Fiserv (origem)
result.receiverDocumentstringDocumento da conta destino
result.receiverPixKeystringChave Pix da conta destino
result.amountdecimalValor do saque (BRL)
result.statusint (enum)Status do Cash-out
criteria.pixKeystringChave Pix da conta utilizada nos filtros
criteria.startDateDateTime (ISO 8601)Data inicial utilizada para os filtros
criteria.endDateDateTime (ISO 8601)Data final utilizada para os filtros
criteria.statusint (enum)Status do Cash-out
pagination.currentPageintPágina atual
pagination.pageSizeintTamanho da página
pagination.totalPagesintTotal de páginas
pagination.totalItemsintTotal itens

Status do cash-out#

CódigoStatus
0Pendente (Aguardando confirmação)
1Processando (Processando pagamento)
2Confirmado (pago)
3Falhou (Pagamento falhou)
4Expirado (Confirmação expirada)

Response 400: Requisição com formato inválido.#


/v1/apm/pix/report/transactions#

GET#

Consultar lista de cobranças

Parametros#
NomeLocalizado emDescriçãoObrigatórioTipo
AuthorizationheaderBearer token para autenticaçãoYesstring (bearerToken)
pixKeyqueryChave PixNostring
documentNumberqueryclient idNostring
startDatequeryData e hora de início da cobrançaNotimezone (ISO 8601)
endDatequeryData e hora de fim da cobrançaNotimezone (ISO 8601)
settlementStartDatequeryData e hora de início da liquidaçãoNotimezone (ISO 8601)
settlementEndDatequeryData e hora de fim da liquidaçãoNotimezone (ISO 8601)
txidqueryId da transaçãoNostring
endToEndqueryCódigo End to End da confirmaçãoNostring
pagination.currentPagequeryPágina atualYesinteger
pagination.pageSizequeryQuantidade de itens por páginaYesinteger
Responses#
Exemplo#
{
"criteria": {
"startDate": "2020-04-01T00:00:00Z",
"endDate": "2020-04-01T17:00:00Z",
"pixKey": "string",
"documentNumber": "string",
"status": "string"
},
"results": [
{
"expiration": 3600,
"amount": "2221.39",
"returnQrCodeImage": true,
"pixKey": "string",
"additionalInfo": [
{
"name": "string",
"value": "string"
}
],
"txid": "69xWbpREB9fvZ5oUr7HPNSlm5r6cclBy3Gk0",
"location": "pix.example.com/qr/v2/2353c790eefb11eaadc10242ac120002",
"qrCodeImage": "string",
"status": "ATIVA",
"pixCopyPaste": "string",
"createdAt": "2024-12-17T19:42:50.414Z",
"pix": [
{
"endToEndId": "jt86OxM1YwTvUuMsZpjGIhZlcodBS8GD",
"amount": "52.34",
"pixKey": "string",
"confirmedAt": "2024-12-17T19:42:50.414Z",
"reverses": [
{
"txid": "kXrK2W2mFxOQ8NEXH",
"endToEndId": "D12345678202009091000abcde123456",
"amount": "7163749810.26",
"confirmedAt": "2024-12-17T19:42:50.414Z",
"status": "EM_PROCESSAMENTO"
}
]
}
]
}
],
"pagination": {
"currentPage": 0,
"pageSize": 1,
"totalPages": 1,
"totalItems": 0
}
}
Responses#
Response 200: Sucesso#
Response 400: Requisição com formato inválido.#
Response 401: Não autorizado#
Response 404: Não localizado#
Response 500: Erro#

/v1/apm/pix/report/settlements#

GET#

Consultar lista de liquidações

Parâmetros#
NameLocated inDescriptionRequiredType
AuthorizationheaderBearer token para autenticaçãoYesstring (bearerToken)
pixKeyqueryChave Pix da contaNostring
documentNumberqueryNúmero do CNPJNostring
startDatequeryData de início para a consultaNotimezone (ISO 8601)
endDatequeryData de fim para a consultaNotimezone (ISO 8601)
statusqueryNoStatus da liquidação
pagination.currentPagequeryPágina atualYesinteger
pagination.pageSizequeryItems por páginaNointeger

Status da liquidação#

CódigoStatus
0Pendente
1Confirmado
2Falha
Responses#
Response 200:#
Exemplo#
{
"criteria": {
"pixKey": "string",
"documentNumber": "string",
"startDate": "string",
"endDate": "string",
"status": "string"
},
"results": [
{
"totalAmount": 0,
"totalGrossAmount": 0,
"totalFeeAmount": 0,
"status": 0,
"errorMessage": "string",
"createdAt": "2024-12-17T20:17:24.421Z",
"endToEnd": "string",
"settlement": {
"pixKey": "string",
"bankAccount": {
"accountNumber": "12345-1",
"agency": "1234",
"bankCompeCode": "341",
"document": {
"number": "60.664.745/0001-87",
"type": "CNPJ"
},
"type": 1
}
}
}
],
"pagination": {
"currentPage": 0,
"pageSize": 1,
"totalPages": 1,
"totalItems": 0
}
}
Response 400:#
Response 401:#
Response 500:#

/v2/apm/pix/report/transactions#

GET#

Localiza as operações de entrada e saída

Request parameters#

PropertyTypeDescription
pixKeystringChave Pix
documentNumberstringDocumento da conta
startDateDateTime (ISO 8601)Data inicial de filtro
endDateDateTime (ISO 8601)Data final de filtro
txidStringId da transação a ser filtrado
endToEndIdStringEnd to end da transação a ser filtrado
pagination.currentPageIntegerPágina a ser buscada
pagination.pageSizeIntegerTamanho de página para a busca

Responses#

Response 200:#
PropertyTypeDescription
result.txidstringId da transação
result.amountdecimalValor da transação (BRL)
result.movementTypeint (enum)Tipo do movimento Possible values: 0 - Débito 1 - Crédito
result.transactionTypeintTipo da Transação
result.accountCnpjstringCNPJ da conta
result.createdAtDateTime (ISO 8601)Data e hora
result.endToEndIdstringEnd to end
result.thirdPartyNamestringNome da outra parte (externa) envolvida na transação
pagination.currentPageintPágina atual
pagination.pageSizeintTamanho da página
pagination.totalPagesintTotal de páginas
pagination.totalItemsintTotal de itens
criteria.startDateDateTime (ISO 8601)Filtro de data inicial utilizado
criteria.endDateDateTime (ISO 8601)Filtro de data final utilizado
criteria.pixKeystringFiltro de chave pix utilizado
criteria.documentNumberstringFiltro de documento utilizado
criteria.txidstringFiltro de Tx Id utilizado
criteria.endToEndIdstringFiltro de end to end utilizado
summary.sumAmountCreditsdecimalTotal de créditos
summary.sumAmountDebitsdecimalTotal de débitos

Tipo de transação#

CódigoStatus
0Cobrança
1Devolução Parcial
2Estorno
3Saque Automático
4Movimento de Devolução Especial
5Estorno de Movimento de Devolução Especial
6Saque manual
7Taxa
8Devolução de Taxa
9Saldo bloqueado por MED
10Saldo desbloqueado (MED)
Response 400: requisição com formato inválido.#

Informações Adicionais#

Header Padrão#

Algumas informações são necessárias em todas as requisições, sendo elas:

HeaderDetalhes
AuthorizationToken de autenticação.
apikeyDisponibilizado pela Fiserv após o credenciamento do integrador
x-timestampTimestamp da requisição. Também utilizado para a geração do HMAC signature.
x-hmac-signatureHMAC gerado.
x-request-idId aleatório da requisição.

Objeto padrão de erros#

Todos os erros tratados são devolvidos em um formato padrão, sendo ele o seguinte:

{
"message": "Mensagem de erro",
"details": [
{
"errorCode": 0,
"error": "Descrição do erro"
}
]
}