Invoice commands: bill, collect, refund, void
The Invoice Verbs bill, collect, refund, void as CLI commands, with inputs, result, refusals and an example.
Reference for Invoice, one group of Invoice commands.
Invoice.bill
Bill finalizes an Invoice and presents it to the Customer for payment. Verb page.
npx startup-builder do Invoice.bill --json '<input>' [--try | --send | --do]Emits Invoice.billed.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
invoice | Invoice | required | The draft Invoice. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
invoice | Invoice | required | The open Invoice. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
| The record is not in a state that allows this Verb, so the call is refused. | refused | Read the record, run the Verb that moves it to an allowed state, then retry. | None. |
Example
npx startup-builder do Invoice.bill --json '{"invoice": "inv_KjgRxmhMzZ"}'Invoice.collect
Collect charges a Customer’s saved payment method for an open Invoice and retries on failure. Verb page.
npx startup-builder do Invoice.collect --json '<input>' [--try | --send | --do]Emits Invoice.collected.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
invoice | Invoice | required | The open Invoice. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
invoice | Invoice | required | The paid Invoice. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The operation is part of an Offer the caller has not accepted or paid for. | payment-required | Accept the Offer named in the response, then retry the call. | Offer.accept |
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
| The record is not in a state that allows this Verb, so the call is refused. | refused | Read the record, run the Verb that moves it to an allowed state, then retry. | None. |
Example
npx startup-builder do Invoice.collect --json '{"invoice": "inv_FXANyzQojc"}'Invoice.refund
Refund returns all or part of a paid Invoice to the Customer’s original payment method and posts the reversing Entries. Verb page.
npx startup-builder do Invoice.refund --json '<input>' [--try | --send | --do]Emits Invoice.refunded.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
invoice | Invoice | required | The paid Invoice. |
amount | money | The amount. Defaults to the full payment; pro rata takes the unused part of the Period. | |
reason | text | required | Why the money goes back, kept on the Invoice. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
invoice | Invoice | required | The Invoice, with its refunded amount. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
| A Dispute on the Invoice is open | refused | Clear what the check names, then call it again. | None. |
Example
npx startup-builder do Invoice.refund --json '{"invoice": "inv_9sfvgeRT7L", "reason": "Example reason"}'Invoice.void
Void cancels an unpaid Invoice, keeps it on record, and posts the reversing Entries. Verb page.
npx startup-builder do Invoice.void --json '<input>' [--try | --send | --do]Emits Invoice.voided.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
invoice | Invoice | required | The unpaid Invoice. |
reason | text | required | Why the amount is no longer due. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
invoice | Invoice | required | The voided Invoice, kept forever. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
| The record changed since it was read, so the write would overwrite a newer version. | conflict | Read the record again, then retry the write against its current state. | None. |
| The record is not in a state that allows this Verb, so the call is refused. | refused | Read the record, run the Verb that moves it to an allowed state, then retry. | None. |
Example
npx startup-builder do Invoice.void --json '{"invoice": "inv_KjgRxmhMzZ", "reason": "Example reason"}'