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.