X-Account-Id en estas llamadas, la organización que autenticó como es el alcance completo.
Precios
Público y no autenticado — todo el catálogo, idéntico para todos.
Uso y facturas
Lo que se acumula ahora y lo que ya se ha facturado.
Créditos
Cómo se consumen las subvenciones y dónde aparecen en una factura.
La línea de tiempo de la colección
Días de reintento, vencimientos atrasados y lo que le puede costar el impago.
El catálogo de precios público
GET /v1/prices toma No hay credenciales. Like Descubrimiento de la región, el catálogo de precios es público y no requiere una cuenta seleccionada.
Es público porque no hay nada específico del inquilino en él. No hay tarifas a nivel de cuenta, descuentos o términos de uso comprometido en esta tabla: cada persona que llama recibe los mismos números, que es precisamente por qué es seguro publicar y útil leer. Existe para que una página de precios o un estimador de costos lea la tarifa que cobrará la facturación, en lugar de mantener su propia copia que se desplaza la próxima vez que algo se revaloriza.
X-RateLimit-Remaining y X-RateLimit-Reset en lugar de codificar eso; en un 429, espere Retry-After segundos, ya que volver a intentar temprano extiende la ventana. Las respuestas llevan Cache-Control: public, max-age=300 — el catálogo cambia cuando algo se reprecia, no por petición, así que almacenarlo en caché durante cinco minutos no te cuesta nada.
Filtros
family es la forma en que se distinguen los productos administrados de los tipos de computación generales con los que comparten un resource_type: las réplicas de balanceador de carga y los nodos de clúster de base de datos se facturan como instancias, pero son su propia familia.
at es lo que se usa para explicar una factura pasada: pase el period_start de la factura y obtendrá las tarifas que estaban en vigor entonces. as_of en la respuesta hace eco del instante en que las filas fueron seleccionadas, de modo que un cliente puede decir qué revisión del catálogo está teniendo.
El dinero es una cadena decimal, nunca un número JSON, en todas partes de esta API.
"0.085" sobrevive a un viaje de ida y vuelta a través del analizador JSON de cualquier lenguaje exactamente; un flotador no lo hace. La tarifa cotizada es la que se cobrará, por lo que no se puede permitir que se redondee de manera diferente en el camino de salida.Rendimiento adicional de volumen de bloque
Rendimiento del volumen aprovisionado tiene precios separados por mes de IOPS y por mes de MiB/s enresource_type=volume-performance. Solo se cobra la asignación sostenida por encima de la asignación incluida de un volumen. Las tarifas se prorratean sobre el mes UTC real desde que se aplica un cambio, incluyendo el tiempo separado o detenido. Al volver a la configuración incluida o eliminar el volumen, se termina la asignación adicional. El uso de rendimiento aparece después de que se haya completado su hora UTC.
Uso del mes hasta la fecha
amount tiene cuatro decimales mientras que el total tiene dos. Eso no es inconsistencia — al principio de un mes una línea puede valer una fracción de un centavo, y redondearlo a dos dígitos lo convertiría en 0.00 y haría que pareciera que no se está acumulando nada. El total, y cada cifra en una factura, se mantiene en el dos del libro mayor.
Facturas
Se genera una factura el 1 de cada mes, que cubre el mes calendario anterior UTC, una por organización.period_start es el primer día del mes de facturación y period_end es exclusivo, es decir, el primer día del mes siguiente. El uso que llega tarde de meses anteriores se traslada a la siguiente factura generada en lugar de reabrir una cerrada, por lo que los elementos de línea de una factura no siempre se limitan a su período etiquetado.
La aritmética es subtotal - credits_applied = total. Las líneas de uso llevan kind: "usage"; las líneas de crédito llevan kind: "credit" y un amount negativo.
items se rellena solo en el punto final de detalle. GET /v1/invoices devuelve los documentos de factura sin elementos de línea, porque una lista de facturas de un año con cada línea expandida es una respuesta grande que nadie pidió.Statuses
due_at es igual a issued_at. Una factura vence cuando se emite, y el primer intento de cargo ocurre inmediatamente; los días siguientes son reintentos, no un período de gracia.
Las facturas pequeñas se cancelan en lugar de cobrarse. Un total inferior a 1,00 en la moneda de la factura se cancela en la generación, y la factura dice
paid sin que se haya intentado ningún pago. El costo de cobrar una cantidad de sub-unidad excede la cantidad.La declaración PDF
pdf_url en una factura es la ruta a este punto final, no un enlace prefirmado que puede entregar a otra persona.
Créditos
amount por la que fue emitida y el saldo remaining, más una source — promo, coupon, adjustment o migration — y un expires_at opcional.
Las subvenciones se consumen en la generación de facturas, la que caduca primero, hasta que se cubre el subtotal. Cada porción consumida se convierte en su propia línea negativa en la factura y su propia entrada credit_applied en el libro mayor, por lo que siempre puede rastrear qué subvención pagó por qué.
Los créditos se aplican automáticamente. No hay un punto final para aplicar uno a una factura en particular, ni para canjear un código: un código se canjea en la consola, que es lo que crea la concesión.
Transacciones y pagos
GET /v1/transactions es el libro mayor: payment, refund, adjustment, credit_grant y credit_applied entradas.
Referencias del libro mayor
Ladescription y la reference de una transacción son independientes y pueden ser null. reference reemplaza a reference_type: identifica la factura, pago o concesión de crédito relacionado con un CRN. El crn propio de la transacción identifica la entrada del libro mayor, no ese recurso relacionado. Las entradas manuales y las entradas sin un destino soportado devuelven reference: null.
Por ejemplo, estas filas ilustrativas del libro mayor muestran los tres tipos de objetivos y una entrada sin un objetivo:
reference, en lugar de inferirlo de type: una liquidación de pago o una solicitud de crédito puede hacer referencia a una factura directamente.
Reemplaza
{id} con el UUID de la referencia y codifica en URL el valor de la consulta crn. Estos filtros seleccionan el CRN propio del artículo de la colección. Por ejemplo, GET /v1/transactions?crn=crn:billing:::transaction/{id} selecciona una entrada de libro mayor; no encuentra todas las transacciones asociadas a una factura. Todas las búsquedas permanecen dentro de su organización autenticada. Una referencia válida pero no coincidente devuelve una colección vacía; las referencias malformadas devuelven INVALID_INPUT.
Para obtener una referencia de pago, lea la invoice incrustada del pago correspondiente. Cuando esté presente, use invoice.id con GET /v1/invoices/{invoice_id} para leer sus elementos de línea. Cuando invoice es nulo, el estado del pago, el importe, el intento y las fechas permanecen disponibles. La resolución de pagos requiere billing:ListPayments; una búsqueda vacía o denegada no cambia la entrada del libro mayor ni su referencia.
En la página de transacciones de la consola, Description y Referencia aparecen por separado, con - para los valores ausentes. Las referencias de factura abren los detalles de la factura. Haga clic en Ver pago para resolver una referencia de pago a su factura o detalles de pago. Los créditos y las referencias no reconocidas permanecen en el texto.
Intentos de pago
GET /v1/payments muestra los intentos de carga. Cada fila lleva attempt, un contador basado en 1 dentro del horario de cobro para su factura, y un status de pending, processing, succeeded, failed o refunded. Varias filas contra una factura es la forma normal de una secuencia de reintentos, no un signo de cargos duplicados.
Cada pago incluye invoice, reemplazando el antiguo campo invoice_id. El objeto incrustado contiene los campos de la lista de facturas actuales, incluyendo pdf_url, sin items. Refleja la factura cuando se enumeran los pagos, no una instantánea del intento de cargo. Si la factura ha sido eliminada, invoice es explícitamente null; compruébelo antes de leer invoice.id u otros campos de factura.
Por ejemplo, una respuesta con una factura disponible y una factura eliminada:
Qué sucede con una factura impagada
El cobro se realiza con un calendario fijo desde el momento de la emisión de la factura: Si ninguno de los tres intentos se cobra, la factura se mueve apast_due.
Liquidar una factura past_due desde la consola. Ahí es donde también arreglas el método de pago que causó los rechazos, la API no tiene ruta a ninguno de los dos.
Paginación
GET /v1/invoices, /v1/credits, /v1/transactions y /v1/payments todas las páginas de la misma manera: pasar limit (por defecto 20, máximo 100) y echo back meta.marker de la página anterior.
Permisos
GET /v1/prices no necesita permiso, porque no necesita identidad.
Siguiente
Límites de tasa
Cómo funcionan los encabezados
X-RateLimit-*, y firmar cada otra solicitud.Políticas
Quién en su organización puede leer la factura.
Regiones
Por qué la facturación no tiene segmento de región.
Referencia de la API
Todas las operaciones de facturación, con esquemas de solicitud y respuesta.

