Collection Open Keys - Jornada de Iniciação de Pagamentos
POST Token
Para iniciar uma jornada é necessário gerar um token no qual devem ser indicados client_id e client_secret, conforme modelo abaixo.
URL de geração do Token
https://onboard.smartkeys.engdev.fsapps.io/api/portal/onboard/v1/token
cURL para geração do Token
curl --location 'https://onboard.smartkeys.engdev.fsapps.io/api/portal/onboard/v1/token' \ --header 'Content-Type: application/json' \ --data '{ "client_id":"e1987ec5-2567-4048-ace9-...", "client_secret": "bb4c8136-874a-42ce-..." }'
Response:
{ "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...", "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 “, exemplo:
'Authorization': 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...'
Uma vez que você conseguiu gerar o Token, conforme o passo a passo da etapa anterior, basta fazer um POST que lhe retornará o link da jornada white label
Request da inicialização da Jornada Digital - utilizando o DICT
curl --location 'https://onboard.smartkeys.celcoin.dev.fsapps.io/api/portal/onboard/v1/payment' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...' \ --data '{ "cpf": "40193135809", "name": "Fernando", "amount": "100.00", "paymentview": "deposit-confirmation", "paymenttype": "DICT" }'
Campos obrigatórios de preenchimento na request:
CPF - campo obrigatório
Valor da transação - campo obrigatório
Paymentview - campo obrigatório
Paymenttype - campo obrigatório
Especificidade para os campos de Paymentview e Paymenttype
Paymentview PIX Instantâneo - deposit-confirmation
Paymentview PIX Agendado - deposit-deposit-scheduling
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.
Exemplo de Request com MANU
curl --location 'https://onboard.smartkeys.celcoin.dev.fsapps.io/api/portal/onboard/v1/payment' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...' \ --data '{ "cpf": "02981994166", "name": "Fernando", "amount": "0.15", "paymentview": "deposit-confirmation", "paymenttype": "MANU", "creditor": { "cpfCnpj": "16781564005", "name": "HOMOLOGACAO PIX", "personType": "PESSOA_NATURAL" }, "creditorAccount": { "accountType": "CACC", "ispb": "92894922", "issuer": "0001", "number": "10173722" } }'
Response da chamada
{ "url": "https://smartkeys-wl.celcoin.dev.fsapps.io/select-institution?id=yL79m4Kzc7DI0WfL-QKW_k_2b5..." }
Obs: caso a chamada seja feita numa request parcial, no modelo AJAX, você deverá capturar o retorno do POST para redirecionar o cliente, via janela.
Como iniciar a jornada digital, utilizando o white label de Compartilhamento de Dados
Uma vez que você conseguiu gerar o Token, conforme o passo a passo da etapa anterior, basta fazer um POST que lhe retornará o link da jornada white label
Request da inicialização da Jornada Digital - Compartilhamento de Dados
curl --location 'https://onboard.smartkeys.celcoin.dev.fsapps.io/api/portal/onboard/v1/reception' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...' \ --data '{ "cpf":"01658698010", "cnpj": "", "name":"fernando" }'
Campos obrigatórios de preenchimento na request:
CPF - campo obrigatório, em todos os contextos
CNPJ - campo obrigatório para um contexto de compartilhamento de dados para pessoa jurídica
Response da chamada
{ "url": "https://smartkeys-wl.celcoin.dev.fsapps.io/?id=BYYPeLTrbfLABZcSeSMsJPFUWWsWBKq0" }
ATENÇÃO: caso a chamada seja feita numa request parcial, no modelo AJAX, você deverá capturar o retorno do POST para redirecionar o cliente, via janela.
Erros conhecidos:
400 - Falha na validação dos campos obrigatórios;
401 - Token de autenticação inválido
Jornada alternativa para início do white label de Iniciação de Pagamento
Ao realizar o inicio da jornada pelo white label, por padrão, o usuário é direcionado para a tela de seleção de bancos. Como parte deste processo há a necessidade do envio por parâmetros do CPF do cliente na chamada de geração do link do white label, porém para nos casos em que o aplicativo que inicia o processo ainda não tenha o CPF do cliente, há a possibilidade de mostrar o campo CPF nesta tela de seleção de bancos, assim como mostrar uma lista de bancos preferenciais nesta tela. Para estes casos, pode-se utilizar a chamada abaixo.
Exemplo de Request com MANU
curl --location 'https://onboard.smartkeys.celcoin.dev.fsapps.io/api/portal/onboard/v1/payment' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...' \ --data '{ "amount": "100.00", "paymentview": "deposit-confirmation-simple", "paymenttype": "MANU", "preferredbanks": ["b0e14b00-9686-4764-bdac-5fe415b1dc1a", "c8f0bf49-4744-4933-8960-7add6e590841", "95dd24d2-902e-49e1-ad0d-e02d938447ba"], "creditor": { "cpfCnpj": "16781564005", "name": "HOMOLOGACAO PIX", "personType": "PESSOA_NATURAL" }, "creditorAccount": { "accountType": "CACC", "ispb": "92894922", "issuer": "0001", "number": "10173722" } }'
Response da chamada
{ "url": "https://smartkeys-wl.celcoin.dev.fsapps.io/select-institution?id=yL79m4Kzc7DI0WfL-QKW_k_2b5..." }
Página de Callback (Retorno do fluxo de Iniciação de Pagamento pelo White Label)
Após a execução do fluxo de consentimento e aprovação do pagamento o usuário é direcionado para a página de callback cadastrada no momento do onboarding, esta página pode verificar o status do pagamento aprovado e mostrar uma mensagem de obrigado/falha.
Como verificar a atualização do status do pagamento aprovado
A mudança de status do pagamento iniciado pode ser realizado de 2 maneiras, cadastrando um Webhook na aplicação ou consultando o status deste consentimento por API (Polling)
Exemplo de Request para Cadastro de um WebHook
curl --location 'https://api-smartkeys.celcoin.dev.fsapps.io/api/smart-keys/interceptor' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUV96OE...' \ --data '{ "endpoint": "", "isAuthenticated": true, "user": "", "password": "" }'
Exemplo de Request para API de Pet Payment a fim de verificar status do pagamento pelo ID do Pagamento
curl --location 'https://api-smartkeys.celcoin.dev.fsapps.io/api/smart-keys/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"
Exemplo de Request para API de Pet Payment a fim de verificar status do pagamento pelo ID do Consentimento
curl --location 'https://api-smartkeys.celcoin.dev.fsapps.io/api/smart-keys/payment-consumer/v1/pix/consents/yfPdbpcWgHQo1VL5vrYzd0xIRuxEUJqPO5ufvEN2esA' --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"