Como gerenciar saldos pré-pagos da conta

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

Nesta página, descrevemos como gerenciar contas de faturamento pré-pago.

Use as APIs Apigee para gerenciar as contas de faturamento pré-pago dos desenvolvedores. É possível realizar as seguintes tarefas usando as APIs:

Ver a configuração de monetização

Para visualizar a configuração de monetização de um desenvolvedor, emita uma solicitação GET para a seguinte API:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/monetizationConfig

Com essa API, é possível visualizar o tipo de faturamento do desenvolvedor. Para mais informações sobre a API, veja getMonetizationConfig.

No exemplo a seguir, mostramos como visualizar a configuração de monetização para um desenvolvedor usando o comando curl:

curl -H "Authorization: Bearer $TOKEN" \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/monetizationConfig

Ao executar o comando, você vai ver uma resposta semelhante a esta:

{
  "billingType": "PREPAID",
}

Atualizar a configuração de monetização

Para atualizar a configuração de monetização de um desenvolvedor, emita uma solicitação PUT para a seguinte API:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/monetizationConfig

Com essa API, é possível atualizar o tipo de faturamento do desenvolvedor. Para mais informações sobre a API, consulte updateMonetizationConfig.

O exemplo a seguir mostra como atualizar a configuração de monetização de um desenvolvedor usando o comando curl:

curl -H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-X PUT \
-d '{
"billingType": "POSTPAID",
}' \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/monetizationConfig

Ao executar o comando, você vai ver uma resposta semelhante a esta:

{
  "billingType": "POSTPAID",
}

Alteração do tipo de faturamento

Os desenvolvedores podem alterar o faturamento deles de pré-pago para pós-pago e vice-versa. Nesta seção, descrevemos as mudanças que ocorrem na Apigee quando os desenvolvedores alteram o tipo de faturamento.

De pós-pago para pré-pago

Se um desenvolvedor mudar de pós-pago para pré-pago, a Apigee definirá imediatamente o billingType do desenvolvedor como PREPAID na configuração. O desenvolvedor pode começar a usar as APIs até o valor limite pré-pago de recarga. Com base nos relatórios de monetização personalizados, qualquer uso atual da conta pós-paga do desenvolvedor precisa ser cobrado separadamente por você (provedor de API).

De pré-pago para pós-pago

Se um desenvolvedor mudar de pré-pago para pós-pago, a Apigee define imediatamente o billingType do desenvolvedor como POSTPAID na configuração. Quaisquer saldos atuais (de todas as moedas) na conta pré-paga do desenvolvedor são exibidos como transação de crédito nos relatórios personalizados de monetização. Ao calcular o valor devido por um desenvolvedor após o ciclo de faturamento, você (provedor da API) precisa considerar o saldo de crédito na conta do desenvolvedor.

Ver saldo do desenvolvedor

Para visualizar o saldo na conta pré-paga de um desenvolvedor, emita uma solicitação GET para a seguinte API:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance

Para mais informações sobre a API, veja getBalance.

O exemplo a seguir mostra como visualizar o saldo na conta pré-paga de um desenvolvedor:

curl -H "Authorization: Bearer $TOKEN" \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance

Ao executar o comando, você vai ver uma resposta semelhante a esta:

{
  "wallets": [
    {
      "balance": {
        "currencyCode": "USD",
        "units": "150",
        "nanos": 500000000
      },
      "lastCreditTime": 1234567890
    },
    {
      "balance": {
        "currencyCode": "INR",
        "units": "10000",
        "nanos": 600000000
      },
      "lastCreditTime": 9876543210
    }
  ]
}

Na resposta de amostra, o desenvolvedor tem dois saldos de conta pré-paga, um para cada moeda. É possível saber o valor do saldo nos campos units e nanos. O campo lastCreditTime está no formato de tempo de época e indica a hora em que o saldo do desenvolvedor foi creditado pela última vez.

Saldo negativo do desenvolvedor

Se um desenvolvedor fizer várias chamadas de API em um curto período de tempo, é possível que o desenvolvedor tenha permissão para fazer chamadas de API em excesso, o que resulta em um saldo negativo da carteira para o desenvolvedor.

Esse cenário ocorre quando vários processadores de mensagens processam as chamadas de API do mesmo desenvolvedor. Cada processador de mensagens terá uma cópia do saldo do desenvolvedor com base na qual ele permite chamadas de API. Todos os processadores de mensagens sincronizam periodicamente os próprios saldos com o principal no banco de dados do Cassandra. Devido aos pequenos atrasos na sincronização, o saldo da carteira de um desenvolvedor em um processador de mensagens pode não estar sincronizado com o saldo principal. Por exemplo, em um determinado momento, se o saldo da carteira do desenvolvedor em um processador de mensagens for USD 2, o saldo principal poderá ser USD 0. Portanto, o processador de mensagens permite as chamadas de API do desenvolvedor, pensando que a carteira do desenvolvedor ainda tem USD 2.

A Apigee sincroniza o saldo da carteira de um processador de mensagens quase em tempo real com pequenos atrasos, e não é possível controlar ou configurar esse comportamento da Apigee. No entanto, todas as chamadas de API excedentes feitas por um desenvolvedor são consideradas. Depois de processar todas as chamadas de API de um desenvolvedor, o valor final na carteira do desenvolvedor reflete a cobrança mesmo pelas chamadas de API excedentes. Então, quando o desenvolvedor recarregar a conta na próxima vez, para que ele tenha um saldo positivo da carteira, primeiro ele precisará pagar qualquer valor de saldo negativo da carteira.

Creditar saldo do desenvolvedor

Para creditar o saldo na conta pré-paga de um desenvolvedor, emita uma solicitação POST para a seguinte API:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance:credit

Para mais informações sobre a API, veja creditBalance.

O crédito do saldo de um desenvolvedor abrange as seguintes etapas, nesta ordem:

  1. Um desenvolvedor recarrega a conta do portal do desenvolvedor usando um gateway de pagamento.
  2. O portal do desenvolvedor gera um código de transação exclusivo para a recarga.
  3. O portal do desenvolvedor atualiza o saldo de desenvolvedor usando a API organizations/{org}/developers/{developer}/balance:credit.

Este exemplo mostra a chamada de API para a etapa 3 e credita o saldo do desenvolvedor em USD 150,21. O campo transactionId é definido como o valor do ID da transação de recarga (etapa 3).

curl -H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-X POST \
-d '{
  "transactionAmount": {
     "currencyCode": "USD",
     "units": "150",
     "nanos": 210000000
  },
  "transactionId": "ab31b63e-f8e8-11eb-9a03-0242ac130003"
}' \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance:credit

Ao executar o comando, você vai ver uma resposta semelhante a esta:

{
  "wallets": [
    {
      "balance": {
        "currencyCode": "USD",
        "units": "300",
        "nanos": 710000000
      },
      "lastCreditTime": "9876543210"
    },
    {
      "balance": {
        "currencyCode": "INR",
        "units": "10000",
        "nanos": 600000000
      },
      "lastCreditTime": "1234567890"
    }
  ]
}

Ajustar o saldo do desenvolvedor

Se você tiver cobrado um valor incorreto na conta de um desenvolvedor, use a API adjustBalance para diminuir ou aumentar o saldo da conta.

Para creditar o saldo na conta pré-paga de um desenvolvedor, emita uma solicitação POST para a seguinte API:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance:adjust

Para mais informações sobre a API, consulte adjustBalance.

Se quiser diminuir o saldo de um desenvolvedor cobrado a menos, defina o campo units na solicitação como um valor positivo. O exemplo a seguir diminui o saldo na conta pré-paga de um desenvolvedor em USD 50:

curl -H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-X POST \
-d '{
  "adjustment": {
    "units": "50",
    "currencyCode": "USD"
  }
}' \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance:adjust

Ao executar o comando, você vai ver uma resposta semelhante a esta:

{
  "wallets": [
    {
      "balance": {
        "currencyCode": "USD",
        "units": "150"
      },
      "lastCreditTime": "1635489199530"
    }
  ]
}

Se quiser aumentar o saldo de um desenvolvedor cobrado a mais, defina o campo units na solicitação como um valor negativo. O exemplo a seguir aumenta o saldo da conta pré-paga de um desenvolvedor em USD 50.1:

curl -H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-X POST \
-d '{
  "adjustment": {
    "units": "-50",
    "nanos": "100000000",
    "currencyCode": "USD"
  }
}' \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance:adjust

Ao executar o comando, você vai ver uma resposta semelhante a esta:

{
  "wallets": [
    {
      "balance": {
        "currencyCode": "USD",
        "units": "200",
        "nanos": 100000000
      },
      "lastCreditTime": "1635489199530"
    }
  ]
}