Alterar dados bancários via API

Quando um vendedor cadastra dados bancários incorretos, mesmo que plataforma tenha avisos para garantir que o vendedor cadastre os dados corretos, normalmente o vendedor pode realizar a alteração pelo próprio formulário.

5ff91341-02de-4ded-b074-2171d7e31b2c

Contudo, se o vendedor já estiver com saldo pendente de recebimento, os gateways não permitem que a conta seja alterada, por questões de segurança. E, por isso, a única maneira de alterar os dados nessas situações é através de requisições à API dos gateways, por exemplo, via Postman.

Antes de mais nada, se o erro foi porque a conta do vendedor termina em: "X" basta manter em 0, pois nossa versão dos gateways (moip e pagar.me) não aceitam letras como parâmetro no digito verificador.


Como alterar esses dados por API? Verifique o passo a baixo abaixo para a Wirecard e na sequencia na Pagar.me.


1º - WIRECARD (MOIP)

1 - Acesse a tabela dbo.Person no banco de dados ou acesse na plataforma como administrador e busque pelo vendedor especifico, ao clicar em seu perfil, obtenha na URL o SellerID:

7e9a9c16-3e6c-4776-b51b-e24c2645c8c8

2 - Acesse o banco de dados, preferencialmente em uma copia local por garantias (bacpac), e execute a seguinte Query (substituindo o 'SELLER_ID'):

SELECT *
FROM [dbo].[GatewayRegistrationLog]
Where SellerId = 'SELLER_ID'

Exemplo:

cf01bdd5-2cdc-465e-abe4-63c635d5f275


Obtenha o "GatewayApiToken", busque sempre o token mais atual, pois essa tabela é um histórico de alterações, então podem haver várias para o mesmo usuário, conforme atualiza os dados bancários manualmente ou se o houve troca de gateway na plataforma.


2 - Esse código GatewayApiToken será utilizado como autenticação (OAuth 2.0) no Postman, para você poder enviar a requisição.

76a5421f-f107-4dac-bde4-30c3c4a6d136

3 - Em seguida, obtenha o código da conta bancária "GatewayBankAccountId" desse usuário nessa mesma tabela dbo.GatewayRegistrationLog (para a Wirecard, é um código que inicia com 'BKA-')


4 - Utilize o endpoint "https://api.moip.com.br/v2/bankaccounts/BKA-##########" alterando a parte "/BKA-##########" pelo "GatewayBankAccountId"


Recomendamos utilizar o verbo GET antes do PUT para guardar as informações (JSON) em um arquivo de texto (backup).


6 - Em seguida, montar um objeto JSON conforme o modelo abaixo e enviar um PUT com os novos dados para realizar a atualização dos dados.

7 - Antes de seguir valide se o tipo de conta bancária confere (CHECKING para contas correntes ou SAVING para poupanças), bem como se é conta jurídica ou física (se for jurídica, vc deve alterar o 'taxDocument' de CPF para CNPJ).

8 - Valide tudo o que puder validar, para ter certeza que os dados estão corretos conforme o que deve ser, no caso da wirecard, estar atento ao formato do número da agência e conta (zeros a esquerda), referência:

Como cadastrar corretamente dados bancários na Conta da Wirecard?

Se necessário, você pode validar se a conta bancária é válida: Validação de contas bancárias

Se a conta não tiver digito verificador, utilize aspas duplas sem espaço.

Modelo:

{
"bankNumber": "001",
"agencyNumber": "1234",
"agencyCheckNumber": "9",
"accountNumber": "12345",
"accountCheckNumber": "8",
"type": "CHECKING",
"holder": {
"taxDocument": {
"type": "CPF",
"number": "123.456.789-01"
},
"fullname": "NOME COMPLETO DA PESSOA"
}
}

0898bec5-a37d-4a88-b806-ae6b8149770b

2º - Pagar.me

1 - Acesse a tabela dbo.Person no banco de dados o acesse na plataforma como administrador e busque pelo vendedor especifico, ao clicar em seu perfil, obtenha na URL o SellerID:

7e9a9c16-3e6c-4776-b51b-e24c2645c8c8

2 - Acesse o banco de dados, preferencialmente em uma copia local por garantias (bacpac), e execute a seguinte Query (substituindo o 'SELLER_ID'):

SELECT *
FROM [dbo].[GatewayRegistrationLog]
Where SellerId = 'SELLER_ID'

Exemplo:

cf01bdd5-2cdc-465e-abe4-63c635d5f275


Obtenha o GatewayRecipientId mais atual (pode ser verificado na coluna CreatedAt), pois esta tabela é um histórico de alterações, então podem haver várias para o mesmo usuário:

9c39aa47-ea5a-4faf-a167-1373e3f1afa7

2 - Utilize esse modelo de endpoint para consulta: https://api.pagar.me/1/recipients/re_#####
Substitua o "re_#####" pelo GatewayRecipientId copiado anteriormente.

Feita a URL insira no Postman no verbo GET.

7f7492ac-ca0e-4f43-95b3-4205a0fe137a

3 - Clique em Authorization e mude o Type para Basic Auth.
Username: ApiKey da plataforma
Senha: x

91977fc7-0cec-4154-af9f-e6f84db65995

Para saber a apiKey você pode obter em seu gateway de pagamento ou na plataforma, acessando em Configuração >> payment/pagarMe:

6fbdc5e2-b24e-4a15-8d2d-940620859bd4

4 - Finalizado a requisição clique em Send no verbo GET e copie o resultado em um bloco de notas (Control+A/ Control+C):

e4b014c0-9df9-4187-b96d-86212430dcbb

5 - Agora você deve copiar os parâmetros necessário para o arquivo JSON.

Utilizando as referencia que copiou no bloco de notas para a nova request.
Encontre no bloco de notas o campo que inicia com "bank_account", copie todo o campo até a chave "}" depois de "date_created" :

daca7e27-473b-44df-8611-5df5ed059b2f


**Opcional:
caso queira criar ou entender o código por completo use esse artigo em "Atualizando um recebedor" e insira os parâmetros que copiou no bloco de notas.


6 - Monte a request conforme o modelo abaixo.
Insira uma chave "{" antes de "bank_account" e mais uma chave de fechamento ao final "}"

Obs.: em "date_created", utilize a data e hora atual que está alterando os dados:

{
"bank_account":{
"object":"bank_account",
"id":111111,
"bank_code":"001",
"agencia":"1234",
"agencia_dv":"0",
"conta":"012345678",
"conta_dv":"0",
"type":"conta_corrente",
"document_type":"cpf",
"document_number":"123456789",
"legal_name":"Nome Vendedor",
"charge_transfer_fees":true,
"pix_key":null,
"date_created":"2021-07-02T21:34:48.760Z"
}
}

7 - Com os campos copiados, cole no Postman mudando o verbo para PUT, inserindo a nova request em Body → raw → JSON .

cc3fb6bf-cacb-4d8a-b79b-41d79d3d3149

Altere ou mantenha os parâmetros necessários:

f97e385f-1984-45ef-af85-fca022c52d29