Integração via White Label
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.
Método de pagamento PIX Instantâneo
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.
Como iniciar a jornada
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
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
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 --location '${TOKEN_URL}' \
--header 'Content-Type: application/json' \
--data '{
"client_id":"...-2567-....-ace9-...",
"client_secret": "...8136-....-42ce-..."
}'
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...'
POST Payment Initiantion
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.
Campos presentes na request e personalização da UX
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.
Especificidade para o campo de Paymentttype
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
JOURNEY_URL=https://onboard.smartkeys.celcoin.dev.fsapps.io/api/portal/onboard/v1/payment'
URL de inicialização da jornada digital - utilizando DICT - Produção
JOURNEY_URL=https://onboard.smartkeys.celcoin.dev.fsapps.io/api/portal/onboard/v1/payment'
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
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
{
"url": "https://smartkeys-wl.celcoin.dev.fsapps.io/select-institution?id=yL79m4Kzc7DI0WfL-QKW_k_2b5..."
}
Acompanhe o status da jornada
Acompanhe o status do pagamento
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
PAYMENT_URL=https://api-openkeys.celcoin.dev.fsapps.io/open-keys-itp/api
URL Get Payment para consulta via ID do pagamento - Produção
PAYMENT_URL=https://api-openkeys.celcoin.prd.fsapps.io/open-keys-itp/api
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
CONSENT_URL=https://api-openkeys.celcoin.dev.fsapps.io/open-keys-itp/api
URL Get Consent para consulta via ID do consentimento - Produção
CONSENT_URL=https://api-openkeys.celcoin.prd.fsapps.io/open-keys-itp/api
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"
Continue sua jornada