Skip to main content

Safe writes

--dry-run​

Shows the request that would be sent, without sending it:

kobana billing invoices finalize INVOICE_ID --dry-run
{
"dry_run": true,
"method": "POST",
"url": "https://api.billing.kobana.com.br/v1/invoices/INVOICE_ID/finalize",
"headers": {},
"query_params": {},
"body": null,
"files": [],
"content_type": "application/json",
"idempotency_key": "d2da129f-2bed-4598-b9cb-1b59b9ee6b31"
}

The token never appears. With --file, the report lists the files and the form's content_type. Use --dry-run on any command that creates, changes or deletes — and whenever an AI agent is building the command.

Idempotency​

Every change (POST, PUT, PATCH, DELETE) carries an idempotency key generated by the CLI. To retry a call without risk of duplicating, fix the key:

kobana banking charge pix create \
--json '{"amount": 99.90, "pix_account_uid": "UID"}' \
--idempotency-key pedido-4812

Resending the same command with the same key returns the result of the first call, on APIs that support idempotency.

Input validation​

Path identifiers are validated before any request: the CLI refuses empty values, . and .., slashes, control characters, ?, # and %. Such a value ends with exit code 3, without touching the API.