Planos de tarifas de compra usando a API

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

Esta seção descreve como comprar um plano de taxas publicado e como expirar ou cancelar um plano de taxas comprado , se necessário, usando a API.

Como comprar um plano de taxas publicado usando a API

Depois que um plano de taxas é publicado, um desenvolvedor ou empresa pode comprá-lo (ou "aceitá-lo") emitindo uma solicitação POST para /mint/organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans, em que {org_name} é o nome da organização e {developer_or_company_id} é o ID do desenvolvedor ou da empresa.

Para dispensar as taxas de configuração ao comprar um plano de taxas, defina o waivefees parâmetro de consulta como true. Essa flag é útil ao migrar desenvolvedores para a monetização, conforme descrito em Migrar desenvolvedores para a monetização.

A tabela a seguir resume as propriedades de configuração que podem ser especificadas no corpo da solicitação, os valores padrão e se elas são obrigatórias ou não.

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

Data em que o plano de taxas começa. Por exemplo: 2017-03-24.

N/A Sim
endDate

Data em que o plano de taxas termina. Por exemplo: 2017-09-24.

O plano de taxas estará em vigor até o final do dia em a data especificada. Se você quiser que um plano de taxas expire em 1º de dezembro de 2017, por exemplo, defina o valor de endDate como 2017-11-30. Nesse caso, o plano de taxas vai expirar no final do dia 30 de novembro de 2017. Todas as solicitações em 1º de dezembro de 2017 serão bloqueadas.

N/A Não
developer

Propriedade id que define o ID do desenvolvedor ou da empresa que está comprando o plano de taxas.

N/A Sim
quotaTarget

Número de transações permitidas para o desenvolvedor de apps. É possível configurar se e quando as notificações serão enviadas com base na porcentagem do número de destino que foi atingida, como 90%, 100% ou 150%. Transações adicionais não são bloqueadas após o número de destino ser atingido.

Defina esse valor como um número inteiro positivo ou 0 para desativar as notificações de um desenvolvedor de apps.

0 Não
ratePlan

Propriedade id que define o ID do plano de taxas.

O ID do plano de taxas é diferente do nome de exibição. Para conferir os detalhes do plano de taxas incluindo o ID, consulte Como explorar a página de planos de taxas.

N/A Sim
suppressWarning

Flag que especifica se o erro será suprimido se o desenvolvedor tentar comprar um plano de taxas que se sobrepõe a outro plano de taxas comprado. O valor pode ser um dos seguintes:

  • true : a monetização encerra todos os planos de taxas comprados que o desenvolvedor tem para pacotes de API que contêm os produtos de API conflitantes. Em seguida, ele compra um novo pacote de API para o desenvolvedor.
  • false : um erro é gerado no caso de haver um plano de taxas sobreposto.
N/A Não
waveTerminationCharge

Flag que especifica se as taxas de rescisão são dispensadas quando um plano de taxas ativo é encerrado como parte da ativação do novo plano de taxas. O valor pode ser um dos seguintes:

  • true : dispensa a taxa de rescisão quando um plano de taxas ativo é encerrado como parte da ativação do novo plano de taxas.
  • false : não dispensa a taxa de rescisão quando um plano de taxas ativo é encerrado como parte da ativação do novo plano de taxas.
N/A Não

Por exemplo, a solicitação a seguir compra o plano de taxas location_&_messaging para o desenvolvedor especificado:

curl "https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/5cTWgdUvdr6JW3xU/developer-rateplans" \
  -X POST \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "developer":{
     "id":"5cTWgdUvdr6JW3xU"
   },
   "startDate":"2017-08-30",
   "ratePlan":{
     "id":"location_&_messaging"
   },
   "suppressWarning":false
  }'

Neste exemplo, a propriedade suppressWarning está definida como false. Nesse caso, um erro será gerado em caso de conflito. Por exemplo, se o desenvolvedor tentar comprar um plano de taxas que se sobrepõe a outro plano de taxas comprado, um erro será gerado. Isso permite que um aplicativo que fornece uma interface do usuário para monetização intercepte o erro e exiba os produtos conflitantes para confirmação do desenvolvedor (conforme apropriado). Se suppressWarning estiver definido como true, a monetização vai encerrar todos os planos de taxas comprados que o desenvolvedor tem para pacotes de API que contêm os produtos conflitantes. Em seguida, ele compra um novo pacote de API para o desenvolvedor.

A solicitação a seguir compra um plano de taxas de notificação ajustável e define o número de transações de destino como 4.000.

curl "https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/5cTWgdUvdr6JW3xU/developer-rateplans" \
  -X POST \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "developer":{
     "id":"5cTWgdUvdr6JW3xU"
   },
   "ratePlan":{
     "id":"adjustable-notification-plan"
   },
   "startDate": "2017-03-24",
   "quotaTarget": 4000,
   "suppressWarning":false
  }'

Em qualquer um dos exemplos acima, se a seguinte mensagem de erro for retornada:

Developer legal name not specified. 

Você precisa definir os atributos de monetização MINT_DEVELOPER_ADDRESS e MINT_DEVELOPER_LEGAL_NAME e repetir a chamada de API.

Como expirar um plano de taxas comprado por um desenvolvedor usando a API

Para expirar (ou cancelar) um plano de taxas que foi comprado por um desenvolvedor, atualize os detalhes do plano de taxas comprado e especifique a propriedade endDate no corpo da solicitação em uma solicitação PUT para o recurso /organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans/{developer_rateplan_id}.

O plano de taxas estará em vigor até o final do dia na data de término especificada. Se você quiser que um plano de taxas expire em 1º de dezembro de 2017, por exemplo, você deve definir o valor de endDate como 2017-11-30. Nesse caso, o plano de taxas vai expirar no final do dia 30 de novembro de 2017. Todas as solicitações em 1º de dezembro, de 2017 serão bloqueadas.

O {developer_rateplan_id} é retornado na resposta quando você compra o plano de taxas publicado.

Exemplo:

{
  "created": "2017-03-31 18:59:54",
  "developer": {
    ...
  },
  "id": "b1c600b8-f871-496d-8173-12b9950d6ab1",
  "quotaTarget": 3000,
  "ratePlan": {
    ...
  },
  "startDate": "2017-03-31 00:00:00",
  "updated": "2017-03-31 18:59:54",
  "waiveTerminationCharge": false
}

Como alternativa, é possível receber o {developer-rateplan-id} para o plano de taxas do desenvolvedor emitindo uma solicitação GET para /organizations/{org_name}/developers/{developer_id}/developer-accepted-rateplans, em que {developer_id} é o endereço de e-mail do desenvolvedor. Para mais informações, consulte Como visualizar todos os planos de taxas comprados por um desenvolvedor.

A solicitação a seguir atualiza a data de término para 1º de dezembro de 2017. Ou seja, o plano de taxas vai expirar no final do dia 30 de novembro de 2017. Todas as solicitações em 1º de dezembro de 2017 serão bloqueadas.

curl "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/developers/dev@mycompany.com/developer-rateplans/b1c600b8-f871-496d-8173-12b9950d6ab1"
  -X PUT \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "id" : "b1c600b8-f871-496d-8173-12b9950d6ab1",
   "developer":{
     "id":"dev@mycompany.com"
   },
   "ratePlan":{
     "id":"p1_adjustable-notification-plan"
   },
   "startDate": "2017-04-15 00:00:00",
   "endDate": "2017-11-30",
   "quotaTarget": 3000,
   "suppressWarning":false
  }'