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.

Puede usar las APIs de Apigee para gestionar las cuentas de facturación prepago de los desarrolladores de su aplicación y los AppGroups. 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 de aplicaciones, envía una solicitud GET a la siguiente API:

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

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

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

Con la API, puede ver el tipo de facturación. Para obtener más información sobre la API, consulta organizations.developers.getMonetizationConfig o organizations.appgroups.getMonetizationConfig.

En el siguiente ejemplo se muestra cómo ver la configuración de monetización de un desarrollador de aplicaciones 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 de aplicaciones, envía una solicitud PUT a la siguiente API:

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

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

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

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

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

Los desarrolladores de tu aplicación y los AppGroups pueden cambiar su facturación de prepago a pospago y viceversa. En esta sección se describen los cambios que se producen en Apigee al cambiar un tipo de facturación.

De pospago a prepago

Al cambiar de pospago a prepago, Apigee asigna inmediatamente el valor billingType a PREPAID en la configuración. El desarrollador de la aplicación o el AppGroup pueden empezar a usar las APIs hasta alcanzar el importe de la recarga prepago. Según tus informes de monetización personalizados, tú, como proveedor de la API, debes facturar por separado el uso que se haya hecho en la cuenta pospago.

De prepago a pospago

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

Ver saldo

Para ver el saldo de la cuenta prepago de un desarrollador de aplicaciones, 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 ver el saldo de la cuenta de prepago de un AppGroup, envía una solicitud GET a la siguiente API:

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

Para obtener más información sobre la API, consulta organizations.developers.getBalance o organizations.appgroups.getBalance.

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

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 de la aplicación 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ó el saldo por última vez.

Saldo negativo

Si un desarrollador de aplicaciones o un AppGroup hace varias llamadas a la API en un breve periodo, podría superar el número de llamadas permitido, lo que provocaría que el saldo de la cartera fuera negativo.

Este caso se da cuando varios procesadores de mensajes gestionan las llamadas a la API del mismo desarrollador de aplicaciones o AppGroup. Cada procesador de mensajes tendrá una copia del saldo 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. Debido al pequeño retraso en la sincronización, es posible que el saldo del monedero en un procesador de mensajes no esté sincronizado con el saldo principal. Por ejemplo, en un momento dado, si el saldo de la cartera en un procesador de mensajes es de 2 USD, el saldo principal puede ser de 0 USD. Por lo tanto, el procesador de mensajes permite las llamadas a la API, ya que considera que la cartera aún tiene 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, en esta situación se tienen en cuenta las llamadas a la API que superan el límite. Una vez que se hayan procesado todas las llamadas a la API del desarrollador de la aplicación o del AppGroup, el importe final de la cartera reflejará el cargo, incluso en el caso de las llamadas a la API que excedan el límite. Por lo tanto, cuando el desarrollador de la aplicación o el AppGroup recargue la cuenta la próxima vez para tener un saldo de Wallet positivo, primero deberá pagar cualquier saldo negativo de la cartera.

Saldo de crédito

Para ingresar saldo en la cuenta prepago de un desarrollador de aplicaciones, 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 ingresar saldo en la cuenta de prepago de un AppGroup, envía una solicitud POST a la siguiente API:

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

Para obtener más información sobre la API, consulta organizations.developers.balance.credit o organizations.appgroups.balance.credit.

Para abonar un saldo, sigue estos pasos en orden:

  1. Un desarrollador de aplicaciones o un AppGroup recarga la cuenta desde el portal para desarrolladores mediante una pasarela de pago.
  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 adecuada, ya sea un desarrollador de aplicaciones o un AppGroup.

En el siguiente ejemplo se muestra la llamada a la API del paso 3, que añade 150,21 USD al saldo de un desarrollador de aplicaciones. 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 balance

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

Para ajustar el saldo de la cuenta prepago de un desarrollador de aplicaciones, 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 ajustar el saldo de la cuenta de prepago de un AppGroup, envía una solicitud POST a la siguiente API:

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

Para obtener más información sobre la API, consulta organizations.developers.balanceadjustBalance o organizations.appgroups.balance.adjustBalance.

Si quieres reducir el saldo de un desarrollador de aplicaciones o un AppGroup 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 de aplicaciones 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 de aplicaciones o de un AppGroup 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 de aplicaciones 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"
    }
  ]
}