Skip to main content
Vea Resource references para los tipos de referencia aceptados, los ámbitos de búsqueda, las identidades canónicas y los filtros de lista exacta. La facturación responde lo que ha consumido y lo que se le ha cobrado. Es global: un punto final, una factura, sin segmento de región:
Una factura cubre toda su organización. El uso de cada cuenta dentro de ella se acumula en una sola factura mensual, por lo que no hay X-Account-Id en estas llamadas, la organización que autenticó como es el alcance completo.
La API de facturación es de solo lectura, deliberadamente. Cada operación aquí responde a una pregunta; ninguna de ellas mueve dinero. La liquidación de una factura, la adición o el cambio de un método de pago y la configuración de facturación son flujos de consola en console.basaltic.sh y no tienen equivalente en la API. Si estás buscando un endpoint para pagar una factura de forma programática, no hay uno.

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.
Como no requiere credenciales, el presupuesto se cuenta por IP del cliente: 100 solicitudes por minuto. Lea 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.
No hay paginación en este extremo. El catálogo es la respuesta completa: un cliente que tuviera que paginarlo podría observar la mitad de una revisión y la mitad de la siguiente.

Rendimiento adicional de volumen de bloque

Rendimiento del volumen aprovisionado tiene precios separados por mes de IOPS y por mes de MiB/s en resource_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

Devuelve el uso no facturado acumulado hasta la fecha en el mes actual UTC, con un desglose por SKU ordenado por costo:
La línea 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

Se genera bajo demanda desde el estado actual de la factura, bajo la misma autorización que el documento de factura: no hay ningún archivo almacenado que se desvíe del estado que muestra. El campo pdf_url en una factura es la ruta a este punto final, no un enlace prefirmado que puede entregar a otra persona.

Créditos

Una concesión de crédito lleva la 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.
El amount de la transacción es siempre positivo. La dirección vive en el type, no en el signo. Sumando cantidades sin leer tipos te da un número que no significa nada.

Referencias del libro mayor

La description 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:
Siga el tipo en 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 a past_due.
El impago eventualmente le cuesta sus recursos. Al día 7 la organización se suspende, al día 15 se termina y después se eliminan sus recursos. Cada paso vuelve a comprobar primero la factura, por lo que liquidarla en cualquier momento detiene la secuencia inmediatamente.
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.
Un limit por encima del máximo se sujeta, no se rechaza, así que una página más corta que la que usted pidió es normal. Page until meta.has_more es false — no hasta que una página se vea corta.

Permisos

GET /v1/prices no necesita permiso, porque no necesita identidad.
Las directivas de facturación no pueden ampliarse a un recurso. Cada acción de facturación autoriza contra * — el límite de la organización es la valla de todo el inquilino aquí, ya que hay una factura y pertenece a la organización en lugar de a cualquier cuenta dentro de ella. billing:GetInvoice El sistema lo otorga para cada factura; no hay forma de restringirlo a una sola.Conceda acceso de lectura de facturación a nivel de grupo a las personas que lo necesiten, no de forma general. Consulte policies.

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.