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 de apps e AppGroups. É possível realizar as seguintes tarefas usando as APIs:

Ver a configuração de monetização

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

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

Para conferir a configuração de monetização de um AppGroup, emita uma solicitação GET para esta API:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/appgroups/APPGROUP_ID/monetizationConfig

Com a API, é possível conferir o tipo de faturamento. Para mais informações sobre a API, consulte organizations.developers.getMonetizationConfig ou organizations.appgroups.getMonetizationConfig.

O exemplo a seguir mostra como visualizar a configuração de monetização de um desenvolvedor de apps 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 de apps, emita uma solicitação PUT para a seguinte API:

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

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

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/appgroups/$APPGROUP_NAME/monetizationConfig

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

O exemplo a seguir mostra como atualizar a configuração de monetização de um desenvolvedor de apps 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",
}

Alterar o tipo de faturamento

Os desenvolvedores de apps e os AppGroups podem mudar o faturamento de pré-pago para pós-pago e vice-versa. Nesta seção, descrevemos as mudanças que ocorrem na Apigee ao mudar um tipo de faturamento.

De pós-pago para pré-pago

Ao mudar de pós-pago para pré-pago, a Apigee define imediatamente o billingType como PREPAID na configuração. O desenvolvedor do app ou o AppGroup 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 precisa ser cobrado separadamente por você, o provedor de API.

De pré-pago para pós-pago

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

Ver saldo

Para conferir o saldo na conta pré-paga de um desenvolvedor de apps, 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 conferir o saldo na conta pré-paga de um AppGroup, emita uma solicitação GET para a seguinte API:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/appgroups/$APPGROUP_NAME/balance

Para mais informações sobre a API, consulte organizations.developers.getBalance ou organizations.appgroups.getBalance.

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

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 de apps tem dois saldos de conta pré-paga, um para cada moeda. É possível encontrar 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 foi creditado pela última vez.

Saldo negativo

Se um desenvolvedor de app ou AppGroup fizer várias chamadas de API em um curto período de tempo, ele poderá exceder as chamadas de API permitidas, resultando em um saldo negativo na carteira.

Esse cenário ocorre quando vários processadores de mensagens processam as chamadas de API do mesmo desenvolvedor de app ou AppGroup. Cada processador de mensagens terá uma cópia do saldo com base na qual ele permite chamadas de API. Todos os processadores de mensagens sincronizam periodicamente os próprios saldos com o principal. Devido ao pequeno atraso na sincronização, o saldo da carteira 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 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, pensando que a carteira 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, nessa situação, as chamadas de API excedentes são consideradas. Depois de processar todas as chamadas de API do desenvolvedor de apps ou do AppGroup, o valor final na carteira reflete a cobrança mesmo pelas chamadas de API excedentes. Então, quando o desenvolvedor de apps ou o AppGroup 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.

Saldo de crédito

Para creditar o saldo na conta pré-paga de um desenvolvedor de apps, 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 creditar o saldo na conta pré-paga de um AppGroup, emita uma solicitação POST para a seguinte API:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/appgroups/$APPGROUP_NAME/balance:credit

Para mais informações sobre a API, consulte organizations.developers.balance.credit ou organizations.appgroups.balance.credit.

O crédito de um saldo envolve as seguintes etapas, nesta ordem:

  1. Um desenvolvedor de apps ou um AppGroup recarrega a conta no 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 do desenvolvedor usando a API apropriada, seja um desenvolvedor de apps ou um AppGroup.

Este exemplo mostra a chamada de API para a etapa 3 e credita o saldo de um desenvolvedor de apps 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

Se você tiver cobrado um valor incorreto em uma conta, use a API adjustBalance para diminuir ou aumentar o saldo dela.

Para ajustar o saldo na conta pré-paga de um desenvolvedor de apps, 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 ajustar o saldo na conta pré-paga de um AppGroup, emita uma solicitação POST para a seguinte API:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/appgroups/$APPGROUP_NAME/balance:adjust

Para mais informações sobre a API, consulte organizations.developers.balanceadjustBalance ou organizations.appgroups.balance.adjustBalance.

Se quiser diminuir o saldo de um desenvolvedor de app ou AppGroup 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 de apps 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 de apps ou AppGroup 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 de apps 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"
    }
  ]
}