Compartilhar forma de pagamento
O que você irá aprender com esse artigo?
- Razão para compartilhar forma de pagamento
- Como compartilhar forma de pagamento
Caso de uso
“Ao criar uma subconta no Marketplace, o vendedor informa os dados de Pessoa Física, pois ainda possui um negócio de pequeno porte. Com o passar do tempo, o negócio evolui e esse vendedor se torna Pessoa Jurídica. Nesse cenário, o vendedor deseja migrar os dados que já possui na conta anterior para a nova conta PJ.”
Diagrama de sequência
Razão para compartilhar forma de pagamento
Essa funcionalidade serve para subcontas que foram criadas sob a mesma conta mestre que precisem compartilhar o cartão salvo (forma de pagamento) do cliente. Dessa forma, o comprador não precisa inserir os dados de cartão novamente e salvar, quando for realizar uma compra através de outra subconta, basta finalizar o pedido com a forma de pagamento que já havia sido salvo anteriormente. É importante salientar que só é possível compartilhar o cartão salvo entre subcontas se a forma de pagamento tiver sido criada na conta mestre. Não é possível compartilhar cartão criado na subconta.
Como compartilhar forma de pagamento
O ponto em comum entre as subcontas é quem as criou, ou seja, a conta mestre. Sendo assim, o comprador precisa existir ou ser criado na conta mestre e depois ser compartilhado nas subcontas.
-> Passo 1: criar o cliente na conta Mestre
Se o cliente já existir, avance par o Passo 3.
É necessário que o cliente seja criado na conta mestre. Para isso, é necessário realizar uma chamada do tipo POST na API de Criar cliente.
curl --location --request POST 'https://api.iugu.com/v1/customers' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token_conta_mestre in base64}}' \
--header 'Cookie: __cfruid=2bc467d729024061a6ec8287fa473b9649d1592e-1636131271' \
--data-raw '{
"email": "[email protected]",
"name": "Fulano de Tal",
"phone": "988776655",
"phone_prefix": "011",
"cpf_cnpj": "56081236030",
"zip_code": "01310-100",
"number": "1048",
"street": "Avenida Paulista",
"city": "São Paulo",
"state": "São Paulo",
"district": "Bela Vista",
"complement": "55b"
}'
Modelo de response
-> Passo 2: Criar forma de pagamento
Para criar a forma de pagamento é necessário realizar a tokenização do cartão, veja o artigo sobre isso aqui e depois realizar um POST na API de Criar forma de pagamento.
Modelo de request
curl --location --request POST 'https://api.iugu.com/v1/customers/{{customer_id}}/payment_methods' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token_conta_mestre in base64}}' \
--header 'Cookie: __cfruid=2bc467d729024061a6ec8287fa473b9649d1592e-1636131271' \
--data-raw '{
"description": "Meu Cartão de Crédito",
"token": "{{token do cartão}}",
"set_as_default": true
}'
Modelo de response
-> Passo 3: consultar os dados do cliente na conta Mestre
Esse passo é importante, principalmente para o caso de o cliente ter sido cadastrado em outro momento e só depois que teve a necessidade de compartilhar a forma de pagamento. A consulta do cliente serve para verificar quais os dados foram passados para que sejam informados da mesma forma na criação do cliente na subconta.
Modelo de request
curl --location --request GET 'https://api.iugu.com/v1/customers/{{customer_id}}'\
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token_conta_mestre in base64}}' \
--header 'Cookie: __cfruid=2bc467d729024061a6ec8287fa473b9649d1592e-1636131271'
Modelo de response
-> Passo 4: criar o cliente na subconta
O cliente deve ser criado na subconta exatamente com os MESMOS dados que foram informados no cadastro feito na conta Mestre. Para isso, é necessário realizar uma chamada do tipo POST na API de Criar cliente.
Modelo de request
curl --location --request POST 'https://api.iugu.com/v1/customers' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token_subconta in base64}}' \
--header 'Cookie: __cfruid=2bc467d729024061a6ec8287fa473b9649d1592e-1636131271' \
--data-raw '{
"email": "[email protected]",
"name": "Fulano de Tal",
"phone": "988776655",
"phone_prefix": "011",
"cpf_cnpj": "56081236030",
"zip_code": "01310-100",
"number": "1048",
"street": "Avenida Paulista",
"city": "São Paulo",
"state": "São Paulo",
"district": "Bela Vista",
"complement": "55b"
}'
Modelo de response
-> Passo 5: compartilhar a forma de pagamento
Nesse passo é que o cartão salvo do cliente, criado na conta mestre, será compartilhado com a subconta. Para essa chamada é necessário realizar um PUT na API de Alterar cliente informando o api token e o id do cliente da subconta no endpoint da requisição e no body informar o id do cliente criado na conta mestre.
Modelo de request
curl --location --request PUT 'https://api.iugu.com/v1/customers/94D77F4FA21E4A009398E32CA2231042' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token_subconta in base64}}' \
--header 'Cookie: __cfruid=2bc467d729024061a6ec8287fa473b9649d1592e-1636131271' \
--data-raw '{
"proxy_payments_from_customer_id": "B43CF8B4BB90479E8B2C346975460BE5"
}'
Onde:
94D77F4FA21E4A009398E32CA2231042: id do cliente na subconta
B43CF8B4BB90479E8B2C346975460BE5: id do cliente na conta mestre
Modelo de response
Perceba que nesse momento, o campo proxy_payments_from_customer_id
do retorno da requisição, foi preenchido com o identificador do cliente da conta mestre. Informando que há um compartilhamento de dados.
Updated 11 months ago