Gestionar saldos de cuentas de prepago

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

En esta página se describe cómo puedes gestionar tus cuentas de facturación prepago.

Puedes usar las APIs de Apigee para gestionar las cuentas de facturación prepago de tus desarrolladores. Si usas las APIs, puedes hacer lo siguiente:

Ver la configuración de monetización

Para ver la configuración de monetización de un desarrollador, envía una solicitud GET a la siguiente API:

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

Con esta API, puede ver el tipo de facturación del desarrollador. Para obtener más información sobre la API, consulta getMonetizationConfig.

En el siguiente ejemplo se muestra cómo ver la configuración de monetización de un desarrollador mediante el comando curl:

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

Cuando ejecutes el comando, verás una respuesta similar a la siguiente:

{
  "billingType": "PREPAID",
}

Actualizar la configuración de monetización

Para actualizar la configuración de monetización de un desarrollador, envía una solicitud PUT a la siguiente API:

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

Con esta API, puedes actualizar el tipo de facturación del desarrollador. Para obtener más información sobre la API, consulta updateMonetizationConfig.

En el siguiente ejemplo se muestra cómo actualizar la configuración de monetización de un desarrollador mediante el 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

Cuando ejecutes el comando, verás una respuesta similar a la siguiente:

{
  "billingType": "POSTPAID",
}

Cambio de tipo de facturación

Tus desarrolladores pueden cambiar su facturación de prepago a pospago y viceversa. En esta sección se describen los cambios que se producen en Apigee cuando los desarrolladores cambian su tipo de facturación.

De pospago a prepago

Si un desarrollador cambia de pospago a prepago, Apigee asigna inmediatamente el valor billingType a PREPAID en la configuración del desarrollador. El desarrollador puede empezar a usar las APIs hasta el importe de la recarga prepago. Según tus informes de monetización personalizados, tú (proveedor de la API) debes facturar por separado cualquier uso que se haya hecho en la cuenta pospago del desarrollador.

De prepago a pospago

Si un desarrollador cambia de prepago a pospago, Apigee asigna inmediatamente el valor billingType a POSTPAID en la configuración del desarrollador. En los informes de monetización personalizada se muestra el saldo (en todas las monedas) de la cuenta prepago del desarrollador como una transacción de crédito. Al calcular el importe que debe pagar un desarrollador después del ciclo de facturación, tú (proveedor de la API) debes tener en cuenta el saldo de crédito de la cuenta del desarrollador.

Ver el saldo de desarrollador

Para ver el saldo de una cuenta prepago de desarrollador, envía una solicitud GET a la siguiente API:

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

Para obtener más información sobre la API, consulta getBalance.

En el siguiente ejemplo se muestra cómo ver el saldo de una cuenta prepago de desarrollador:

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

Cuando ejecutes el comando, verás una respuesta similar a la siguiente:

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

En la respuesta de ejemplo, el desarrollador tiene dos saldos de prepago, uno por cada moneda. Puedes consultar el importe del saldo en los campos units y nanos. El campo lastCreditTime está en formato de hora de época y denota la hora a la que se abonó por última vez el saldo del desarrollador.

Saldo negativo del desarrollador

Si un desarrollador hace varias llamadas a la API en un breve periodo, es posible que se le permita hacer llamadas a la API en exceso, lo que provoca que el saldo de la cartera del desarrollador sea negativo.

Este caso se da cuando varios procesadores de mensajes gestionan las llamadas a la API del mismo desarrollador. Cada procesador de mensajes tendrá una copia del saldo del desarrollador en función de la cual permitirá las llamadas a la API. Todos los procesadores de mensajes sincronizan periódicamente sus saldos con el saldo principal de la base de datos de Cassandra. Debido a los pequeños retrasos en la sincronización, el saldo de la cartera de un desarrollador en un procesador de mensajes puede no estar sincronizado con el saldo principal. Por ejemplo, en un momento dado, si el saldo de la cartera del desarrollador en un procesador de mensajes es de 2 USD, el saldo principal podría ser de 0 USD. Por lo tanto, el procesador de mensajes permite las llamadas a la API del desarrollador, ya que cree que la cartera del desarrollador sigue teniendo 2 USD.

Apigee sincroniza el saldo de la cartera de un procesador de mensajes casi en tiempo real con pequeños retrasos, y no puedes controlar ni configurar este comportamiento de Apigee. Sin embargo, se tienen en cuenta todas las llamadas a la API que haga un desarrollador. Una vez procesadas todas las llamadas a la API de un desarrollador, el importe final de la cartera del desarrollador refleja el cargo, incluso en el caso de las llamadas a la API que excedan el límite. Por lo tanto, la próxima vez que el desarrollador recargue la cuenta, para tener un saldo de Wallet positivo, primero deberá pagar el importe del saldo negativo en Wallet.

Saldo de crédito para desarrolladores

Para ingresar saldo en la cuenta de prepago de un desarrollador, envía una solicitud POST a la siguiente API:

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

Para obtener más información sobre la API, consulta creditBalance.

Para abonar el saldo de un desarrollador, debes seguir estos pasos en orden:

  1. Un desarrollador recarga la cuenta de desarrollador desde el portal para desarrolladores mediante una pasarela de pagos.
  2. El portal para desarrolladores genera un ID de transacción único para la recarga.
  3. El portal para desarrolladores actualiza el saldo del desarrollador mediante la API organizations/{org}/developers/{developer}/balance:credit.

En el siguiente ejemplo se muestra la llamada a la API del paso 3 y se añade al saldo del desarrollador 150,21 USD. El valor de transactionId es el del ID de transacción de la transacción de recarga (paso 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

Cuando ejecutes el comando, verás una respuesta similar a la siguiente:

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

Ajustar el saldo de desarrollador

Si has cobrado de menos o de más a la cuenta de un desarrollador, puedes usar la API adjustBalance para reducir o aumentar el saldo de la cuenta.

Para ajustar el saldo de una cuenta prepago de desarrollador, envía una solicitud POST a la siguiente API:

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

Para obtener más información sobre la API, consulta adjustBalance.

Si quieres reducir el saldo de un desarrollador al que se le ha cobrado de menos, asigna un valor positivo al campo units de la solicitud. En el siguiente ejemplo, se reduce el saldo de la cuenta prepago de un desarrollador en 50 USD:

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

Cuando ejecutes el comando, verás una respuesta similar a la siguiente:

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

Si quieres aumentar el saldo de un desarrollador al que se le ha cobrado de más, asigna un valor negativo al campo units de la solicitud. En el siguiente ejemplo, se aumenta el saldo de la cuenta de prepago de un desarrollador en 50.1 USD:

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

Cuando ejecutes el comando, verás una respuesta similar a la siguiente:

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