Postar reembolsos

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Introdução

A monetização permite que você poste reembolsos para desenvolvedores de "transações de compra". Suponha que você seja um operador de telefonia móvel e ofereça aos desenvolvedores uma API de pagamento para cobrar dos assinantes de dispositivos móveis pela compra de um aplicativo ou conteúdo dentro dele. Cada vez que um assinante usa a API para fazer uma compra, é uma transação de compra.

As transações de compra podem resultar em reembolsos. Por exemplo, o conteúdo pode não ser entregue, ou o terceiro pode não estar satisfeito com a compra. Nesses casos, o desenvolvedor emite um reembolso para o terceiro. A monetização permite que você faça um reembolso análogo. Isso é especialmente pertinente para planos de participação na receita.

Imagine que o desenvolvedor que emitiu o reembolso para o assinante de dispositivos móveis comprou um plano de participação na receita para o produto de API. Suponha que o plano exija que o desenvolvedor receba 70% do preço líquido/bruto da transação de compra. Ao postar um reembolso, você, na verdade, reverte a transação de compra, ou seja, deduz 70% do pagamento devido ao desenvolvedor pelo mês em que o reembolso foi aplicado (o mês pode ser diferente daquele em que a transação de compra real ocorreu).

Postar um reembolso usando a interface clássica do Edge (somente para o Edge para nuvem privada)

É possível postar um reembolso para qualquer transação de compra "bem-sucedida", ou seja, em que a API cobrou o terceiro e para a qual você ainda não emitiu um reembolso total. A postagem de um reembolso resulta na criação de uma transação de reembolso com um ID de transação pai, em que o ID da transação é o ID da transação de compra.

É possível postar um reembolso pelo valor total da transação de compra original ou por um valor parcial. Também é possível postar vários reembolsos parciais, mas o valor total dos reembolsos não pode ser maior que o montante da compra original.

Para postar um reembolso:

  1. Na guia "Monetização", selecione "Reembolsos".

    Isso abre a página "Reembolsos".

  2. No menu suspenso "Mês de faturamento", selecione o mês em que a transação de compra ocorreu. Em seguida, clique em "+ Reembolsos".

    Isso mostra uma lista de todas as transações de compra bem-sucedidas do mês selecionado.

    É possível filtrar a lista de reembolsos pelo nome do desenvolvedor ou pesquisando a transação real.

    Para filtrar por desenvolvedor, selecione o desenvolvedor no menu suspenso "Desenvolvedor". Isso mostra uma lista apenas das transações relacionadas ao desenvolvedor selecionado.

    Para filtrar por ID da transação, insira o ID da transação da compra original que você quer reembolsar. Isso retorna a transação para esse ID.

  3. Marque a caixa "Selecionar" nas linhas das transações que você quer reembolsar.
  4. Selecione "Total" ou "Parcial" no menu suspenso "Tipo".

    Se você selecionar "Total", o valor total da compra será reembolsado. Se você selecionar "Parcial", um valor parcial da compra será reembolsado.

    Se você selecionar "Parcial", insira o valor do reembolso parcial no campo "Valor". Só é possível reembolsar até o valor total da compra. Se você já postou um reembolso parcial, só poderá inserir um valor até o valor restante da compra. Além disso, se a transação de compra original tiver preços brutos e líquidos, você também precisará declarar se o valor parcial que você quer reembolsar é bruto ou líquido.

  5. Clique em "Salvar" para processar o reembolso (ou "Cancelar" para cancelar).

    O reembolso é postado no mês da compra original se o mês de faturamento ainda estiver aberto. Caso contrário, o reembolso será postado na data atual.

    Para um reembolso parcial, o reembolso é processado pelo valor parcial, e qualquer participação na receita é deduzida com base na proporção do valor parcial em relação ao valor total. No exemplo de reembolso parcial acima, o valor parcial é 0,50/1,12 = 45% do preço bruto. Portanto, 45% da participação na receita do desenvolvedor serão deduzidos.

Verificar na interface se um reembolso foi processado

Para determinar se um reembolso foi processado, selecione o mês de faturamento na parte de cima de a página "Reembolsos". Esse é o mês da compra se o mês de faturamento ainda estiver aberto ou o mês atual se o mês de faturamento estiver fechado. Isso mostra uma lista de todos os reembolsos que foram postados no mês.

Postar um reembolso usando a API

Para postar um reembolso, emita uma solicitação POST para /organizations/{org_name}/monetization-packages/{package_id}/refund-transactions, em que {package_id} é a identificação do pacote de API a que o reembolso se aplica.

Ao emitir a solicitação, é necessário especificar como parâmetros de consulta:

  • A identificação da transação de compra que está sendo reembolsada.
  • O tipo de receita (GROSS ou NET) da transação de compra.
  • O valor do reembolso.
  • Uma observação que descreve o motivo do reembolso.

Opcionalmente, é possível identificar como um parâmetro de URL um pacote de API a que o reembolso se aplica.

Consulte Configurações de reembolso para uma lista completa dos parâmetros de URL que podem ser especificados em uma solicitação de reembolso.

Por exemplo, a solicitação a seguir emite um reembolso para uma transação de compra. O valor do reembolso é 50% do valor bruto da transação de compra.

$ curl -H "Content-Type:application/json" -X POST \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/payment/refund-transactions?revenueType=GROSS&refundAmount=0.5&parentTxId=abf50909-2492-4bf5-8704-ade05f4d43b3&transactionNote=Refund for purchase transaction" \
-u email:password

A resposta deve ser semelhante a esta (apenas parte da resposta é exibida):

{
  "application" : {
    ...
    },
    "product" : [ {
      ...
      
     {
      "customAtt1Name" : "user",
      "description" : "Payment",
      "displayName" : "Payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED",
      "transactionSuccessCriteria" : "Status=='200 OK'"
    } ],
    ...
  },
  "currency" : "USD",
  "developer" : {
    ...
    "legalName" : "DEV ONE",
    "name" : "Dev One",
    "organization" : {
      ...
    },
    ...
  },
  "endTime" : "2013-09-01 21:59:59",
  "environment" : "PROD",
  "euroExchangeRate" : 0.8123,
  "gbpExchangeRate" : 0.6910,
  "grossPrice" : 0.5,
  "id" : "61f7eb88-f8cc-4cda-afd8-4a61fba3dd33",
  "isRevOnGrossOrNet" : "NET",
  "isVirtualCurrency" : false,
  "notes" : "Refund for purchase transaction",
  "itemDesc" : "test application",
  "netPrice" : 0.4464,
  "orgRevenueShareAmount" : 0.1339,
  "parentId" : "abf50909-2492-4bf5-8704-ade05f4d43b3",
  "pkgId" : "myorg@@@payment",
  "pkgRatePlanProductName" : "Payment",
  ...
  },
  "ratePlanLevel" : "STANDARD",
  "revenueShareAmount" : 0.3125,
  "startTime" : "2013-09-01 21:59:59",
  "status" : "SUCCESS",
  "tax" : 0.0536,
  "taxModel" : "UNDISCLOSED",
  "txProviderStatus" : "SUCCESS",
  "type" : "REFUND",
  "usdExchangeRate" : 1.0724,
  "utcEndTime" : "2013-09-01 21:59:59",
  "utcStartTime" : "2013-09-01 21:59:59"
}

Configurações de reembolso para a API

Os seguintes parâmetros de consulta podem ser especificados em uma solicitação de reembolso:

Nome Descrição Padrão Obrigatório?
monetizationPackageId

O pacote de API a que o reembolso se aplica.

N/A Não
parentTxId

A transação de compra a ser reembolsada.

N/A Sim
revenueType

O tipo de receita (GROSS ou NET) da transação de compra.

N/A Sim
refundAmount

O valor do reembolso.

N/A Sim
transactionNote

Uma observação de texto que descreve o motivo do reembolso.

N/A Sim

Próximas etapas

Saiba como programar jobs relacionados à monetização e sobre os jobs que são programados automaticamente em Programar jobs de monetização.