Invoice
acme.billing.v1.Invoice
An invoice issued to a customer.
Fields
| Field | Number | Type | Cardinality | Validation | Description |
|---|---|---|---|---|---|
| id | 1 | string | implicit | — | —Details
(google.api.field_behavior) = [ OUTPUT_ONLY ] |
| customer_id | 2 | string | implicit | — | —Details
(google.api.field_behavior) = [ REQUIRED ] |
| customer | 3 | acme.user.v1.User | optional | — | —Details
|
| state | 4 | acme.billing.v1.InvoiceState | implicit | — | —Details
|
| lines | 5 | acme.billing.v1.LineItem | repeated | repeated.min_items=1 | —Details
(buf.validate.field) = {
repeated: {
min_items: 1
}
}
|
| total | 6 | acme.billing.v1.Money | optional | — | —Details
|
| issued_at | 7 | google.protobuf.Timestamp | optional | — | —Details
|
| memo | 8 | string | implicit | — | —Details
|
Example JSON
{
"id": "string",
"customerId": "string",
"customer": {
"id": "string",
"email": "string",
"displayName": "string",
"nickname": "string",
"state": "USER_STATE_UNSPECIFIED",
"createdAt": "2026-09-18T17:30:00Z",
"updatedAt": "2026-09-18T17:30:00Z",
"phone": "string",
"labels": {
"key": "string"
},
"addresses": [
{
"line1": "string",
"line2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"countryCode": "string"
}
],
"preferences": {
"marketingOptIn": true,
"locale": "string",
"timeZone": "string"
}
},
"state": "INVOICE_STATE_UNSPECIFIED",
"lines": [
{
"description": "string",
"quantity": 1,
"unitAmount": {
"currencyCode": "string",
"units": 1,
"nanos": 1
}
}
],
"total": {
"currencyCode": "string",
"units": 1,
"nanos": 1
},
"issuedAt": "2026-09-18T17:30:00Z",
"memo": "string"
}Effective features
- json_format: ALLOWinherited from acme/billing/v1/invoice
Used by
What will be affected if this symbol changes.