• Precios
  • Blog
Iniciar sesiónAgendá una demo
Introducción

Inicio rápido

Aprender

Recursos

Referencia del SDKVersionado de APIManejo de erroresTestingCLI

Plugins

Better Auth
DocumentaciónRecursosConstruir con AIAPI ReferenceWebhooks

CLI

La herramienta oficial de línea de comandos de Commet. Gestioná billing, reenviá webhooks y automatizá tu workflow desde la terminal.

La herramienta oficial de línea de comandos de Commet. Gestioná billing, reenviá webhooks y automatizá tu workflow desde la terminal.

Instalar

pnpm add -g commet
npm install -g commet
yarn global add commet

Requiere Node.js 18+.

Autenticación

commet login

Autenticá vía navegador. Abre un flujo device-code y guarda tu token en ~/.commet/auth.json.

commet login

En CI, configurá COMMET_API_KEY como variable de entorno en su lugar.

El CLI usa dos tipos de credenciales, según el comando:

Tipo de comandoResolución de credenciales
Comandos de recursos (customers, plans, subscriptions, usage, …)Variable COMMET_API_KEY → API key de proyecto (auto-generada por commet link, guardada en .commet/config.json) → error
Comandos de plataforma (orgs, link, listen, create)Variable COMMET_API_KEY → credenciales guardadas de commet login

Los comandos de recursos nunca caen en las credenciales de commet login — sin una API key del entorno o de un proyecto vinculado, fallan y te indican correr commet link.

commet logout     # Eliminar credenciales almacenadas

Setup

commet link

Vinculá este proyecto a una organización de Commet. Volvé a ejecutarlo para cambiar de organización.

commet link
commet link --org acme       # Por slug o ID
commet link --clear          # Desvincular proyecto
FlagRequeridoDescripción
--org <slug-o-id>NoSlug o ID de la organización. Salta la selección interactiva
--clearNoDesvincular el proyecto de su organización

commet pull

Descargá tu configuración de billing y generá commet.config.ts con features y planes tipados.

commet pull
commet pull --dry-run        # Vista previa sin escribir archivos
commet pull --yes            # Saltar confirmación
FlagRequeridoDescripción
--dry-runNoMostrar qué cambiaría sin escribir ningún archivo
-y, --yesNoSaltar el prompt de confirmación

Después de commet pull, tus llamadas al SDK tienen autocompletado para plan codes y feature codes.

commet push

Subí tu commet.config.ts local a Commet. Crea o actualiza features y planes para que coincidan con tu config.

commet push
commet push --dry-run        # Vista previa de qué cambiaría en remoto
commet push --yes            # Push sin confirmación
FlagRequeridoDescripción
--dry-runNoMostrar qué cambiaría sin aplicar nada
-y, --yesNoSaltar el prompt de confirmación

Los cambios de tipo de feature (boolean a usage, etc.) están bloqueados vía push. Cambialos desde el dashboard.

commet create

Creá un nuevo proyecto de Commet desde un template. Crea planes y features en tu organización sandbox, genera una API key y vincula el proyecto.

commet create
commet create myapp -t metered --org acme -y
commet create --list              # Listar templates disponibles
FlagRequeridoDescripción
-t, --template <nombre>NoTemplate: fixed, seats, metered, credits, balance-ai, balance-fixed
--org <slug>NoSlug o ID de la organización sandbox
--skillsNoInstalar agent skills
--no-skillsNoSaltar la instalación de agent skills
-y, --yesNoAceptar defaults en los prompts opcionales
--ref <ref>NoRef de git de donde traer los templates. Default: main

commet listen

Reenviá eventos de webhook desde Commet a tu servidor local. Sin necesidad de ngrok ni herramientas de tunneling externas.

commet listen 3000

El argumento acepta un puerto, host:port, o URL completa:

commet listen 3000                              # http://localhost:3000/
commet listen localhost:3000/webhooks            # http://localhost:3000/webhooks
commet listen http://local.commet.co:3010/api    # http://local.commet.co:3010/api

Filtrá por tipo de evento:

commet listen 3000 --events invoice.created,subscription.activated
FlagRequeridoDescripción
<url>SíURL destino: puerto (3000), host:port, o URL completa
--events <tipos>NoTipos de evento a reenviar, separados por coma
  ✓ Authenticated (org: Acme Inc)
  ✓ Connected to Commet webhook stream
  ⟶ Forwarding to http://localhost:3000/
  ⟶ Signing secret: whsec_...

  Ready! Listening for webhook events...

  14:32:01  customer.created              →  200 OK     (12ms)
  14:32:05  subscription.updated          →  200 OK     (8ms)

La sesión queda abierta hasta Ctrl+C. Los eventos están firmados con el secret mostrado.

commet orgs               # Listar organizaciones (nombre, slug, modo)

Customers

Creá y gestioná clientes, consultá detalles y manejá operaciones en batch.

commet customers create

Creá un cliente.

commet customers create --email user@acme.com --id user_123
commet customers create \
  --email billing@corp.com \
  --full-name "Acme Corp" \
  --metadata '{"plan":"enterprise"}'
FlagRequeridoDescripción
--email <email>SíEmail de facturación
--id <id>NoID de cliente personalizado
--external-id <id>NoID de tu sistema
--full-name <nombre>NoNombre completo
--tax-document <valor>NoDocumento fiscal
--timezone <tz>NoTimezone
--metadata <json>NoMetadata como objeto JSON
--address <json>NoDirección como JSON: {line1, city, postalCode, country}
--address-id <id>NoID de una dirección existente del cliente
commet customers get --id cus_xxx                   # Obtener un cliente por ID
commet customers update --id cus_xxx --email new@acme.com  # Actualizar un cliente
commet customers list                                # Listar todos los clientes
commet customers list --limit 25 --cursor cur_xxx    # Paginar
commet customers list --external-id user_123         # Buscar por ID externo
commet customers create-batch --customers '[{"email":"a@co.com"},{"email":"b@co.com"}]'

Subscriptions

Creá, cancelá y gestioná suscripciones. Cambiá planes, activá addons y manejá operaciones de balance.

commet subscriptions create

Creá una suscripción para un cliente.

commet subscriptions create \
  --customer-id user_123 \
  --plan-code pro \
  --billing-interval monthly
commet subscriptions create \
  --customer-id user_123 \
  --plan-id pln_xxx \
  --price-id pp_argentina \
  --billing-interval yearly \
  --initial-seats '{"team_member":5}' \
  --skip-trial true
FlagRequeridoDescripción
--customer-id <id>SíID del cliente
--plan-code <code>Uno de plan-code / plan-idCódigo del plan
--plan-id <id>Uno de plan-code / plan-idID del plan
--billing-interval <interval>Noweekly, monthly, quarterly, yearly, one_time
--price-id <id>NoPrecio seleccionable del plan. Omitilo para usar el default del intervalo y sus precios por mercado
--initial-seats <json>NoAsientos iniciales como JSON: {featureCode: count}
--skip-trial <bool>NoSaltar el período de prueba
--custom-trial-days <n>NoSobrescribir la duración de prueba del catálogo
--offer-id <id>NoAplicar una Offer directamente. No se combina con promo-code ni con una prueba personalizada
--promo-code <code>NoAplicar la Offer referenciada por un código ingresado por el customer
--provider <provider>NoOverride del proveedor del checkout inicial: stripe, commet o dlocal
--name <nombre>NoNombre de la suscripción
--start-date <date>NoFecha de inicio (ISO 8601)
--success-url <url>NoURL de redirección tras el checkout exitoso

commet subscriptions cancel

Cancelá una suscripción. Por default cancela al final del período.

commet subscriptions cancel --id sub_xxx
commet subscriptions cancel --id sub_xxx --immediate true --reason "Customer requested"
FlagRequeridoDescripción
--id <id>SíID de la suscripción
--reason <razón>NoMotivo de cancelación
--immediate <bool>NoCancelar inmediatamente en vez de al final del período
commet subscriptions get-active --customer-id user_123           # Suscripción activa
commet subscriptions uncancel --id sub_xxx                       # Revertir cancelación pendiente
commet subscriptions reactivate --id sub_xxx --offer-id ofr_xxx  # Reactivar una suscripción cancelada con una Offer directa
commet subscriptions change-plan --id sub_xxx --new-plan-id pln_xxx --new-billing-interval yearly  # Cambiar de plan
commet subscriptions list                                            # Listar todas las suscripciones
commet subscriptions list --customer-id user_123 --status active     # Filtrar por cliente/estado
commet subscriptions preview-change --id sub_xxx --plan-id pln_xxx --billing-interval yearly  # Preview de prorrateo
commet subscriptions activate-addon --id sub_xxx --addon-id adn_xxx
commet subscriptions deactivate-addon --id sub_xxx --addon-id adn_xxx
commet subscriptions adjust-balance --id sub_xxx --amount 1000 --type balance --reason "Courtesy credit"
commet subscriptions topup-balance --id sub_xxx --amount 5000
commet subscriptions purchase-credits --id sub_xxx --credit-pack-id cpk_xxx

Plans

Creá planes, adjuntá features y precios, y configurá precios regionales.

commet plans create

Creá un plan.

commet plans create --name "Pro" --code pro
commet plans create \
  --name "Developer" \
  --code developer \
  --consumption-model metered \
  --is-public true \
  --block-on-exhaustion true
FlagRequeridoDescripción
--name <nombre>SíNombre del plan
--code <code>SíCódigo del plan
--description <desc>NoDescripción del plan
--consumption-model <model>Nometered, credits, o balance
--is-public <bool>NoSi el plan es visible públicamente
--is-free <bool>NoSi el plan es gratuito
--block-on-exhaustion <bool>NoBloquear uso cuando se agota el balance/créditos
--plan-group-id <id>NoID del grupo de planes
--metadata <json>NoMetadata como objeto JSON

commet plans add-feature

Agregá una feature a un plan con pricing y límites.

commet plans add-feature \
  --plan-id pln_xxx \
  --feature-id ftr_xxx \
  --included-amount 1000 \
  --overage-enabled true \
  --overage-unit-price 100
commet plans add-feature \
  --plan-id pln_xxx \
  --feature-id ftr_xxx \
  --pricing-mode ai_model \
  --margin 30
FlagRequeridoDescripción
--plan-id <id>SíID del plan
--feature-id <id>SíID de la feature
--enabled <bool>NoSi la feature está habilitada
--included-amount <n>NoCantidad incluida de uso
--unlimited <bool>NoUso ilimitado
--overage-enabled <bool>NoHabilitar cobro por excedente
--overage-unit-price <n>NoPrecio por unidad excedente (pricing fixed)
--pricing-mode <mode>Nofixed o ai_model
--margin <n>NoPorcentaje de margen (pricing ai_model)
--credits-per-unit <n>NoCréditos por unidad

commet plans add-price

Agregá un precio a un plan.

commet plans add-price \
  --plan-id pln_xxx \
  --billing-interval monthly \
  --price 2900
commet plans add-price \
  --plan-id pln_xxx \
  --billing-interval yearly \
  --price 29000 \
  --trial-days 14
FlagRequeridoDescripción
--plan-id <id>SíID del plan
--billing-interval <interval>Síweekly, monthly, quarterly, yearly, one_time
--price <n>Uno de price / inherits-from-price-idPrecio base en la unidad menor de la moneda
--inherits-from-price-id <id>Uno de price / inherits-from-price-idPrecio base heredado por una variante seleccionable
--trial-days <n>NoPeríodo de prueba en días
--is-default <bool>NoEstablecer como precio default
--included-balance <n>NoBalance incluido
--included-credits <n>NoCréditos incluidos
--market-prices <json>Requerido para una variantePrecios por mercado como objetos {marketGroupId, currency, price}
--metadata <json>NoMetadata del precio

Creá una variante seleccionable que sólo cambie Argentina y herede el resto del precio base:

commet plans add-price \
  --plan-id pln_xxx \
  --billing-interval monthly \
  --inherits-from-price-id pp_base \
  --market-prices '[{"marketGroupId":"pmg_argentina","currency":"ars","price":1500000}]'
commet plans list                                    # Listar todos los planes
commet plans list --include-private true              # Incluir planes privados
commet plans get --id pro                            # Detalle de un plan
commet plans update --id pln_xxx --name "Pro Plus" --description "For growing teams" --metadata '{}' --is-public true  # Actualizar un plan
commet plans delete --id pln_xxx                    # Eliminar un plan
commet plans set-visibility --id pln_xxx --is-public false
commet plans update-feature --plan-id pln_xxx --feature-id ftr_xxx --included-amount 2000
commet plans remove-feature --plan-id pln_xxx --feature-id ftr_xxx
commet plans update-price --plan-id pln_xxx --price-id pp_xxx --price 3900
commet plans delete-price --plan-id pln_xxx --price-id pp_xxx
commet plans set-default-price --plan-id pln_xxx --price-id pp_xxx

Precios regionales

Definí overrides en moneda local para un precio.

commet plans set-regional-prices \
  --plan-id pln_xxx \
  --price-id pp_xxx \
  --overrides '[{"currency":"EUR","price":2700},{"currency":"BRL","price":14900}]'
commet plans delete-regional-prices --plan-id pln_xxx --price-id pp_xxx

Features

Gestioná el catálogo de features de la organización.

commet features create

Creá una feature.

commet features create --code api_calls --name "API Calls" --type usage --unit-name calls
FlagRequeridoDescripción
--code <code>SíCódigo de la feature
--name <nombre>SíNombre de la feature
--type <type>Síboolean, usage, seats, o quota
--description <desc>NoDescripción de la feature
--unit-name <nombre>NoNombre de la unidad para features medidas
commet features list                                             # Listar el catálogo de features
commet features get --code api_calls                             # Obtener la definición de una feature
commet features update --code api_calls --name "API Requests" --description "HTTP API calls" --unit-name requests  # Actualizar una feature
commet features delete --code api_calls                          # Eliminar una feature

Feature Access

Consultá el acceso y uso de features de un cliente.

commet feature-access list --customer-id user_123                       # Listar acceso de un cliente
commet feature-access get --customer-id user_123 --code api_calls       # Detalle de acceso de una feature

Usá commet usage check --customer-id user_123 --feature-code api_calls --quantity 1 para evaluar un consumo futuro.

Seats

Gestioná asignaciones de asientos para billing por asiento.

commet seats add

Agregá asientos a un cliente.

commet seats add --customer-id user_123 --feature-code team_member
commet seats add --customer-id user_123 --feature-code team_member --count 5
FlagRequeridoDescripción
--customer-id <id>SíID del cliente
--feature-code <code>SíCódigo de la feature
--count <n>NoCantidad de asientos a agregar. Default: 1
commet seats remove --customer-id user_123 --feature-code team_member
commet seats set --customer-id user_123 --feature-code team_member --count 10
commet seats set-all --customer-id user_123 --seats '{"team_member":5,"admin":2}'
commet seats get-balance --customer-id user_123 --feature-code team_member
commet seats get-all-balances --customer-id user_123

Usage

Registrá eventos de consumo y verificá el margen disponible.

commet usage track

Registrá un evento de uso. Soporta tracking por valor y por tokens de modelos AI.

commet usage track --feature-code api_calls --customer-id user_123 --value 1
commet usage track \
  --feature-code gpt-4o \
  --customer-id user_123 \
  --model gpt-4o \
  --input-tokens 500 \
  --output-tokens 150 \
  --cache-read-tokens 200
FlagRequeridoDescripción
--feature-code <code>SíCódigo de la feature
--customer-id <id>SíID del cliente
--value <n>Uno de value / modelValor de uso (tracking estándar)
--model <modelo>Uno de value / modelNombre del modelo AI (tracking por tokens)
--input-tokens <n>NoTokens de entrada (tracking por tokens)
--output-tokens <n>NoTokens de salida (tracking por tokens)
--cache-read-tokens <n>NoTokens de lectura de caché (tracking por tokens)
--cache-write-tokens <n>NoTokens de escritura de caché (tracking por tokens)
--event-id <id>NoID del evento definido por quien llama para deduplicación. Máximo 200 caracteres
--timestamp <ts>NoTimestamp del evento (ISO 8601)
--properties <json>NoPropiedades del evento como array JSON de entradas { "property": string, "value": string }
commet usage check --customer-id user_123 --feature-code api_calls --quantity 1

Addons

Creá y gestioná extensiones de features comprables.

commet addons create

Creá un addon.

commet addons create \
  --name "Extra Storage" \
  --base-price 500 \
  --feature-id ftr_xxx \
  --consumption-model metered
commet addons create \
  --name "Priority Support" \
  --base-price 2900 \
  --feature-id ftr_xxx \
  --consumption-model boolean
FlagRequeridoDescripción
--name <nombre>SíNombre del addon
--base-price <n>SíPrecio base en centavos
--feature-id <id>SíID de la feature
--consumption-model <model>Síboolean, metered, credits, o balance
--description <desc>NoDescripción del addon
--included-units <n>NoUnidades incluidas (metered)
--overage-rate <n>NoTasa de excedente (metered/balance)
--credit-cost <n>NoCosto en créditos (credits)
commet addons list                                   # Listar todos los addons
commet addons list --limit 25 --cursor cur_xxx       # Paginar
commet addons get --id adn_xxx                     # Detalle de un addon
commet addons update --id adn_xxx --name "Extra Storage Pro" --description "100GB extra" --base-price 900 --included-units 100 --overage-rate 10  # Actualizar un addon
commet addons delete --id adn_xxx                  # Eliminar un addon
commet addons list-active --customer-id user_123     # Addons activos de un cliente

Credit Packs

Creá y gestioná paquetes de créditos para planes basados en créditos.

commet credit-packs create --name "500 Credits" --credits 500 --price 4900
commet credit-packs list                             # Listar todos los paquetes
commet credit-packs update --id cpk_xxx --price 3900  # Actualizar un paquete
commet credit-packs delete --id cpk_xxx               # Eliminar un paquete
FlagRequeridoDescripción
--name <nombre>Sí (create)Nombre del paquete
--credits <n>Sí (create)Cantidad de créditos
--price <n>Sí (create)Precio en centavos
--description <desc>NoDescripción del paquete
--is-active <bool>NoSi el paquete está activo

Plan Groups

Organizá planes en grupos para pricing tables y el portal del cliente.

commet plan-groups create --name "Main Plans" --description "Primary pricing tiers" --is-public true
commet plan-groups list                              # Listar todos los grupos
commet plan-groups list --limit 25 --cursor cur_xxx  # Paginar
commet plan-groups get --id plg_xxx                   # Detalle de un grupo
commet plan-groups add-plan --id plg_xxx --plan-id pln_xxx --sort-order 1
commet plan-groups remove-plan --id plg_xxx --plan-id pln_xxx
commet plan-groups reorder-plans --id plg_xxx --plan-ids '["pln_a","pln_b","pln_c"]'
commet plan-groups update --id plg_xxx --name "Updated Plans" --description "New description" --is-public false
commet plan-groups delete --id plg_xxx                # Eliminar un grupo

Invoices

Listá recibos, descargá PDFs y creá ajustes.

commet invoices create-adjustment

Creá un recibo de ajuste. Usá un monto negativo para créditos.

commet invoices create-adjustment \
  --customer-id cus_xxx \
  --amount -500 \
  --description "Courtesy credit"
FlagRequeridoDescripción
--customer-id <id>SíID del cliente
--amount <n>SíMonto en centavos. Negativo para crédito
--description <desc>NoDescripción del ajuste
--metadata <json>NoMetadata como objeto JSON
commet invoices list                                     # Listar todos los recibos
commet invoices list --limit 25 --cursor cur_xxx         # Paginar
commet invoices list --subscription-id sub_xxx           # Filtrar por suscripción
commet invoices list --customer-id cus_xxx --status paid # Filtrar por cliente/estado
commet invoices get --id inv_xxx                          # Detalle de un recibo
commet invoices get-download-url --id inv_xxx             # URL firmada del PDF
commet invoices send --id inv_xxx                         # Enviar recibo por email
commet invoices update-status --id inv_xxx --status void  # Actualizar estado (paid, void)

Payments

Creá payment links alojados y cobrá métodos de pago guardados. Pagos únicos, sin suscripción ni plan. Mirá Aceptar pagos únicos para el ciclo completo.

commet payments create

Creá un payment link alojado. El cliente abre la url devuelta y paga con cualquier tarjeta.

commet payments create \
  --amount 25000 \
  --currency usd \
  --description "Annual report"
commet payments create \
  --amount 25000 \
  --currency usd \
  --description "Annual report" \
  --customer-id user_123 \
  --success-url https://yourapp.com/thanks
FlagRequeridoDescripción
--amount <n>SíMonto en centavos
--currency <currency>SíCódigo de moneda (ej. usd)
--description <desc>SíAparece en el link de pago, el recibo y el comprobante
--customer-id <id>NoID del cliente
--success-url <url>NoURL de redirección tras el pago exitoso
--metadata <json>NoMetadata como objeto JSON
commet payments charge --customer-id user_123 --amount 25000 --currency usd --description "Annual report"  # Cobrar off-session un método de pago guardado
commet payments get --id pay_xxx                          # Detalle de un pago
commet payments list --customer-id user_123 --limit 20    # Listar pagos
commet payments cancel --id pay_xxx                       # Cancelar un payment link pendiente

Transactions

Listá transacciones, procesá reembolsos y reintentá pagos fallidos.

commet transactions list                                  # Listar todas las transacciones
commet transactions list --limit 20 --cursor cur_xxx     # Paginar
commet transactions list --status succeeded              # Filtrar por estado
commet transactions list --customer-email user@acme.com  # Filtrar por email del cliente
commet transactions get --id txn_xxx                      # Detalle de una transacción
commet transactions refund --id txn_xxx                   # Reembolso completo
commet transactions retry --id txn_xxx                    # Reintentar un pago fallido

Offers

Creá Offers reutilizables de forma independiente de los planes y canales de distribución.

commet offers create \
  --name "14 días gratis y luego 25% off" \
  --phases '[{"type":"free_trial","durationDays":14},{"type":"percentage","percentage":2500,"durationCycles":3}]'

percentage usa basis points, por lo que 2500 significa 25%. Los otros tipos de fase son free_trial, amount_off y fixed_price.

commet offers list --active true
commet offers get --id ofr_xxx
commet offers update --id ofr_xxx --name "Launch offer" --phases '[{"type":"fixed_price","prices":[{"currency":"usd","amount":900}],"durationCycles":2}]'
commet offers delete --id ofr_xxx

Una Offer no contiene purpose ni asociaciones con precios. Vinculá una Offer compatible a un precio base desde el Dashboard para selección introductoria automática, enviá su ID directamente como offerId o referenciá una Offer de un solo descuento desde un Promo Code.

Promo Codes

Creá y gestioná códigos de distribución que el customer ingresa en checkout.

commet promo-codes create

Creá un código promocional.

commet promo-codes create \
  --code SUMMER25 \
  --offer-id ofr_summer25 \
  --max-redemptions 100
commet promo-codes create \
  --code ANNUAL \
  --offer-id ofr_annual \
  --billing-interval yearly \
  --plan-ids '["pln_pro","pln_team"]' \
  --expires-at 2026-12-31
FlagRequeridoDescripción
--code <code>SíCódigo promocional
--offer-id <id>SíID de una Offer con exactamente una fase percentage o amount_off
--billing-interval <interval>NoRestringir el canje a un intervalo
--max-redemptions <n>NoMáximo de canjes
--expires-at <date>NoFecha de expiración (ISO 8601)
--plan-ids <json>NoRestringir a planes específicos (JSON array)
commet promo-codes list                              # Listar todos los códigos
commet promo-codes list --limit 25 --cursor cur_xxx  # Paginar
commet promo-codes get --id prc_xxx                  # Detalle de un código
commet promo-codes update --id prc_xxx --active false --max-redemptions 50 --expires-at 2026-12-31 --plan-ids '["pln_pro"]'  # Actualizar

Markets

Definí grupos de países reutilizables y referencialos desde --market-prices al crear o actualizar precios.

commet markets create \
  --name "Argentina" \
  --country-codes '["AR"]'

commet markets list
commet markets get --id pmg_argentina
commet markets update --id pmg_argentina --name "Cono Sur" --country-codes '["AR","BO","PY","UY"]'
commet markets delete --id pmg_argentina

Webhooks

Creá y probá endpoints de webhook.

commet webhooks create

Creá un endpoint de webhook.

commet webhooks create \
  --url https://example.com/webhooks \
  --events '["subscription.activated","payment.received"]'
FlagRequeridoDescripción
--url <url>SíURL del webhook
--events <json>SíEventos a suscribir (JSON array)
--description <desc>NoDescripción del webhook

Para desarrollo local, usá commet listen en lugar de crear un endpoint de webhook.

commet webhooks list                                 # Listar todos los endpoints
commet webhooks list --limit 25 --cursor cur_xxx     # Paginar
commet webhooks delete --id whe_xxx                  # Eliminar endpoint
commet webhooks test --id whe_xxx                    # Enviar un evento de prueba

API Keys

Creá y gestioná API keys.

commet api-keys create --name "Production" --expires-in-days 365
commet api-keys list                                 # Listar todas las API keys
commet api-keys list --limit 25 --cursor cur_xxx     # Paginar
commet api-keys delete --id key_xxx                  # Eliminar una API key
FlagRequeridoDescripción
--name <nombre>Sí (create)Nombre de la API key
--expires-in-days <n>NoExpiración en días

Portal

Generá una URL de portal para el autoservicio del cliente.

commet portal get-url --customer-id user_123
commet portal get-url --email user@acme.com

Pasá --customer-id o --email, uno de los dos.

Payouts

Gestioná cuentas bancarias de payout, solicitá payouts y completá la verificación de la cuenta. Los comandos de payouts requieren una API key de una organización live; las keys de sandbox devuelven payouts_not_available_in_sandbox.

commet payouts request

Solicitá un payout del balance disponible.

commet payouts request --amount 50000 --description "Weekly payout"
FlagRequeridoDescripción
--amount <n>SíMonto en centavos (USD, mínimo 1000)
--description <desc>NoDescripción del payout

commet payouts add-bank-account

Agregá una cuenta bancaria de destino a la cuenta de payouts.

commet payouts add-bank-account \
  --account-number 000123456789 \
  --account-holder-name "Acme Inc." \
  --routing-number 110000000 \
  --account-type checking \
  --set-default true
FlagRequeridoDescripción
--account-number <number>SíNúmero de cuenta bancaria
--account-holder-name <name>SíNombre del titular
--routing-number <number>NoRouting number
--account-type <type>Nochecking o savings
--set-default <bool>NoEstablecer como cuenta por defecto

commet payouts complete-verification

Aprovisioná la cuenta de payouts con el payload completo de KYC.

commet payouts complete-verification \
  --email owner@acme.com \
  --business-type company \
  --business-url https://acme.com \
  --document-url https://files.acme.com/incorporation.pdf \
  --bank '{"accountNumber":"000123456789","accountHolderName":"Acme Inc."}' \
  --company '{"name":"Acme Inc.","taxId":"12-3456789"}'
FlagRequeridoDescripción
--email <email>SíEmail de contacto
--business-type <type>Síindividual o company
--business-url <url>SíURL del sitio del negocio
--document-url <url>SíURL del documento de identidad
--bank <json>SíCuenta bancaria como JSON: {accountNumber, accountHolderName, ...}
--individual <json>NoDatos KYC del individuo (JSON, negocios individual)
--company <json>NoDatos KYC de la empresa (JSON, negocios company)

Test Clock

Controlá el reloj de prueba de sandbox para simular el paso del tiempo.

Solo sandbox. Los comandos de test clock fallan contra organizaciones live.

commet test-clock advance

Avanza el test clock y procesa cada deadline de billing vencido antes de la fecha objetivo.

commet test-clock advance --advance-days 30
commet test-clock advance --frozen-time 2026-07-01T00:00:00Z
FlagRequeridoDescripción
--advance-days <n>Uno de advance-days / frozen-timeDías para adelantar el reloj
--frozen-time <ts>Uno de advance-days / frozen-timeInstante absoluto al que mover el reloj (ISO 8601)
commet test-clock get # Estado actual del reloj y de la última corrida

El comando anterior commet test-clock process-billing está deprecado. advance ahora inicia automáticamente el procesamiento de billing.

Quota

Gestioná allowances de quota para features basadas en quota.

commet quota add

Sumá al allowance de quota de un cliente para una feature.

commet quota add --feature-code api_calls --customer-id user_123 --count 100
FlagRequeridoDescripción
--feature-code <code>SíCódigo de la feature
--customer-id <id>Uno de customer-id / external-idID del cliente
--external-id <id>Uno de customer-id / external-idID externo del cliente
--count <n>NoCantidad a sumar. Default: 1
--idempotency-key <key>NoClave HTTP de idempotencia para deduplicar la solicitud
commet quota set --feature-code api_calls --customer-id user_123 --count 500    # Establecer allowance exacto
commet quota remove --feature-code api_calls --customer-id user_123 --count 10  # Restar del allowance
commet quota get --customer-id user_123 --feature-code api_calls                # Allowance de una feature
commet quota get-all --customer-id user_123                                     # Todos los allowances

Opciones globales

Estos flags funcionan en cualquier comando:

FlagDescripción
--output <formato>human (default) o agent (JSON)
--helpMostrar ayuda de cualquier comando
--versionMostrar versión del CLI

Usá --output agent para salida JSON estructurada en scripts y pipelines de CI:

commet customers list --output agent | jq '.[0].id'

CI/CD

Configurá COMMET_API_KEY como variable de entorno. No necesitás commet login.

env:
  COMMET_API_KEY: ${{ secrets.COMMET_API_KEY }}
steps:
  - run: npx commet push --yes --output agent
env:
  COMMET_API_KEY: ${{ secrets.COMMET_API_KEY }}
steps:
  - run: |
      npx commet subscriptions create \
        --customer-id user_123 \
        --plan-code pro \
        --billing-interval monthly \
        --output agent

Archivos de configuración

ArchivoCreado porPropósito
~/.commet/auth.jsoncommet loginCredenciales de autenticación global
.commet/config.jsoncommet linkVínculo proyecto ↔ organización y API key auto-generada
commet.config.tscommet pullConfig de billing generada con tipos

Ejecutá commet <comando> --help para la lista completa de flags y opciones en cualquier comando.

¿Cómo está esta guía?

Testing

Testea de forma segura con el entorno sandbox

Better Auth

Plugin de Better Auth para cobros y suscripciones usando Commet

On this page

Instalar
Autenticación
Setup
Customers
Subscriptions
Plans
Precios regionales
Features
Feature Access
Seats
Usage
Addons
Credit Packs
Plan Groups
Invoices
Payments
Transactions
Offers
Promo Codes
Markets
Webhooks
API Keys
Portal
Payouts
Test Clock
Quota
Opciones globales
CI/CD
Archivos de configuración