## Get invoice preview `client.AIGateway.Billing.InvoicePreview(ctx, query) (*BillingInvoicePreviewResponse, error)` **get** `/accounts/{account_id}/ai-gateway/billing/invoice-preview` Retrieve a preview of the upcoming invoice including line items and tax. ### Parameters - `query BillingInvoicePreviewParams` - `AccountID param.Field[string]` Cloudflare account ID. ### Returns - `type BillingInvoicePreviewResponse struct{…}` - `ID string` - `AmountDue float64` - `AmountPaid float64` - `AmountRemaining float64` - `Currency string` - `InvoiceLines []BillingInvoicePreviewResponseInvoiceLine` - `Amount float64` - `Currency string` - `Description string` - `Period BillingInvoicePreviewResponseInvoiceLinesPeriod` - `End float64` - `Start float64` - `Pricing BillingInvoicePreviewResponseInvoiceLinesPricing` - `UnitAmountDecimal string` - `Quantity float64` - `PretaxCreditAmounts []BillingInvoicePreviewResponseInvoiceLinesPretaxCreditAmount` - `Amount float64` - `Type string` - `CreditBalanceTransaction string` - `Discount string` - `PeriodEnd float64` - `PeriodStart float64` - `Status BillingInvoicePreviewResponseStatus` - `const BillingInvoicePreviewResponseStatusDraft BillingInvoicePreviewResponseStatus = "draft"` - `const BillingInvoicePreviewResponseStatusOpen BillingInvoicePreviewResponseStatus = "open"` - `const BillingInvoicePreviewResponseStatusPaid BillingInvoicePreviewResponseStatus = "paid"` - `const BillingInvoicePreviewResponseStatusUncollectible BillingInvoicePreviewResponseStatus = "uncollectible"` - `const BillingInvoicePreviewResponseStatusVoid BillingInvoicePreviewResponseStatus = "void"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_gateway" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.AIGateway.Billing.InvoicePreview(context.TODO(), ai_gateway.BillingInvoicePreviewParams{ AccountID: cloudflare.F("account_id"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.ID) } ``` #### Response ```json { "errors": [ { "code": 0, "message": "message" } ], "messages": [ { "code": 0, "message": "message" } ], "result": { "id": "id", "amount_due": 0, "amount_paid": 0, "amount_remaining": 0, "currency": "currency", "invoice_lines": [ { "amount": 0, "currency": "currency", "description": "description", "period": { "end": 0, "start": 0 }, "pricing": { "unit_amount_decimal": "unit_amount_decimal" }, "quantity": 0, "pretax_credit_amounts": [ { "amount": 0, "type": "type", "credit_balance_transaction": "credit_balance_transaction", "discount": "discount" } ] } ], "period_end": 0, "period_start": 0, "status": "draft" }, "success": true, "result_info": { "has_more": true, "page": 0, "per_page": 0, "total_count": 0 } } ```