A Jornada de Iniciação de Pagamentos da Finansystech possui como grande característica a flexibilidade para se adequar, de forma inteligente, às necessidades e contextos do seu negócio!
Com ela, a experiência do seu cliente será moldada de acordo com os parâmetros que você dispõe, o que nos permite atender a todos os contextos existentes no mercado.
Ao conduzir o seu cliente para o momento de fechamento da compra, será necessário informar entre os métodos de pagamento PIX Via Open Finance, entre as demais opções convencionais do seu canal de vendas. O formato no qual a jornada será chamada, fica a cargo da estratégia que a sua empresa definir, podendo utilizar, por exemplo, QR Code ou link de acionamento da jornada, via botão.
Para que uma empresa contratante da solução Open Keys possa chamar a Jornada de Iniciação de Pagamentos é necessário gerar um token no qual devem ser indicados client_id e client_secret da operação, que você encontra no painel da sua aplicação, menu configurações.
URL de geração do Token - Sandbox
URL de geração do Token - Sandbox
curl --location 'https://keycloak.celcoin.shared.fsapps.io/auth/realms/smart-keys/protocol/openid-connect/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'scopes=openid' \ --data-urlencode 'client_id=${CLIENT_ID} \ --data-urlencode 'client_secret=${CLIENT_SECRET}' |
URL de geração do Token - Produção
URL de geração do Token - Produção
curl --location 'https://keycloak.celcoin.shared.fsapps.io/auth/realms/smart-keys-prd/protocol/openid-connect/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'scopes=openid' \ --data-urlencode 'client_id=${CLIENT_ID} \ --data-urlencode 'client_secret=${CLIENT_SECRET}' |
cURL para geração do Token
cURL para geração do Token
curl --location '${TOKEN_URL}' \ --header 'Content-Type: application/json' \ --data '{ "client_id":"...-2567-....-ace9-...", "client_secret": "...8136-....-42ce-..." }' |
Response
Response
{ "access_token": "...iJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...", "expires_in": 3600, "refresh_expires_in": 0, "token_type": "Bearer", "not-before-policy": 0, "scope": "email profile" } |
O token retornado no campo “access_token“ tem validade padrão de 1 hora e deve ser utilizado para realizar as chamadas subsequentes. Ele deve ser incluído no parâmetro Authentication do header da requisição, precedido da palavra “Bearer “, conforme exemplo abaixo. |
'Authorization': 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...' |
Com o token gerado, é necessário passá-lo no authorization da chamada /consents, para obter o consentimento e informações do usuário que realizará o pagamento.
Este é o momento no qual você poderá informar o máximo de informações necessárias para a abertura do consentimento, como forma de otimizar a experiência do seu cliente.
CPF - Caso seja passada no parâmetro, a jornada apresenta o campo preenchido para o seu cliente.
Valor da transação - Caso seja passada no parâmetro, a jornada apresenta o campo preenchido para o seu cliente.
Paymentview PIX Instantâneo (deposit-confirmation-simple) - Deve ser passada como data o dia da transação e o código reconhecerá que se trata de um PIX Instantâneo.
Você pode utilizar mais de uma conta para recebimento dos pagamentos. Para utilizar sempre a conta cadastrada na aplicação criada com a Finansystech, basta realizar a chamada utilizando, no campo Paymenttype, o parâmetro DICT. Caso a sua escolha seja por utilizar qualquer outra conta em sua operação, basta passar no campo Paymenttype o parâmetro MANU com as informações da conta desejada como campos de Creditor e CreditorAccount. Confira os exemplos abaixo.
Paymenttype via DICT - apresenta os dados cadastrados no Painel da Aplicação, opção Configurar Jornadas, campo Dados de recebimento
Paymenttype via MANU - é necessário passar os blocos “creditor” e “creditorAccount, conforme exemplo no esboço abaixo.
URL de inicialização da jornada digital - utilizando DICT - Sandbox
URL de inicialização da jornada digital - utilizando DICT - Sandbox
|
URL de inicialização da jornada digital - utilizando DICT - Produção
URL de inicialização da jornada digital - utilizando DICT - Produção
|
Formato da Request da inicialização da Jornada Digital - utilizando o DICT
Formato da Request da inicialização da Jornada Digital - utilizando o DICT
curl --location '${JOURNEY_URL}' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...' \ --data '{ "cpf": "**93135***", "name": "Fernando", "amount": "100.00", "paymentview": "deposit-confirmation", "paymenttype": "DICT" }' |
Exemplo de Request com MANU
Exemplo de Request com MANU
curl --location '${JOURNEY_URL}' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...' \ --data '{ "cpf": "***81994***", "name": "Fernando", "amount": "0.15", "paymentview": "deposit-confirmation", "paymenttype": "MANU", "creditor": { "cpfCnpj": "***81564***", "name": "HOMOLOGACAO PIX", "personType": "PESSOA_NATURAL" }, "creditorAccount": { "accountType": "CACC", "ispb": "9289****", "issuer": "00**", "number": "***73*2" } }' |
Exemplo de Response da chamada
Exemplo de Response da chamada
{ "url": "https://smartkeys-wl.celcoin.dev.fsapps.io/select-institution?id=yL79m4Kzc7DI0WfL-QKW_k_2b5..." } |
Para confirmar se o pagamento foi processado com sucesso e o status correspondente, você pode acompanhar via Webhook na Iniciação do Pagamento ou consultando o status do pagamento.
Consulta e registro da operação |
Após receber um retorno de um token dentro da tag “ticket”, você deve inseri-lo na próxima chamada de consulta ao recibo do PIX. Para isso, você pode utilizar o ID do Consentimento, o ID da Jornada ou o ID do Pagamento.
URL Get Payment para consulta via ID do pagamento - Sandbox
URL Get Payment para consulta via ID do pagamento - Sandbox
|
URL Get Payment para consulta via ID do pagamento - Produção
URL Get Payment para consulta via ID do pagamento - Produção
|
Exemplo de Request para API de Get Payment a fim de verificar status do pagamento pelo ID do Pagamento |
curl --location '${PAYMENT_URL}/payment-consumer/v1/pix/payments/0d42f0c8-f5ff-493f-a350-19d5b8b76618' --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...' \ |
Response da chamada |
{ "paymentId": "30ddc97c-90d0-4ba6-b681-...", "status": "ACCEPTED" } |
O parâmetro status pode receber os valores: "ACCEPTED", "AWAITING_APPROVAL" e "REJECTED"
URL Get Consent para consulta via ID do consentimento - Sandbox
URL Get Consent para consulta via ID do consentimento - Sandbox
|
URL Get Consent para consulta via ID do consentimento - Produção
URL Get Consent para consulta via ID do consentimento - Produção
|
Exemplo de Request para API de Get Consent a fim de verificar status do pagamento pelo ID do Consentimento |
curl --location '${CONSENT_URL}/payment-initiation/v1/consents/SIizFZDGOdzW6JNxTa-r9hZ6sWVmbtX5PHmKhEvG36c' --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...' \ |
Response da chamada |
{ "paymentId": "30ddc97c-90d0-4ba6-b681-...", "status": "ACCEPTED" } |
O parâmetro status pode receber os valores: "ACCEPTED", "AWAITING_APPROVAL" e "REJECTED"