pub struct Invoice {Show 23 fields
pub id: Option<String>,
pub accepted_payment_methods: Option<InvoiceAcceptedPaymentMethods>,
pub created_at: Option<DateTime>,
pub custom_fields: Option<Vec<InvoiceCustomField>>,
pub delivery_method: Option<InvoiceDeliveryMethod>,
pub description: Option<String>,
pub invoice_number: Option<String>,
pub location_id: Option<String>,
pub next_payment_amount_money: Option<Money>,
pub order_id: Option<String>,
pub payment_conditions: Option<String>,
pub payment_requests: Option<Vec<InvoicePaymentRequest>>,
pub primary_recipient: Option<InvoiceRecipient>,
pub public_url: Option<String>,
pub sale_or_service_date: Option<String>,
pub scheduled_at: Option<DateTime>,
pub status: Option<InvoiceStatus>,
pub store_payment_method_enabled: Option<bool>,
pub subscription_id: Option<String>,
pub timezone: Option<Timezone>,
pub title: Option<String>,
pub updated_at: Option<DateTime>,
pub version: Option<i32>,
}
Expand description
Stores information about an invoice.
You use the Invoices API to create and manage invoices. For more information, see Invoices API Overview.
Fields§
§id: Option<String>
Read only The Square-assigned ID of the invoice.
accepted_payment_methods: Option<InvoiceAcceptedPaymentMethods>
The payment methods that customers can use to pay the invoice on the Square-hosted invoice page. This setting is independent of any automatic payment requests for the invoice.
This field is required when creating an invoice and must set at least one payment method to
true
.
created_at: Option<DateTime>
Read only The timestamp when the invoice was created, in RFC 3339 format.
custom_fields: Option<Vec<InvoiceCustomField>>
Additional seller-defined fields that are displayed on the invoice. For more information, see Custom fields.
Adding custom fields to an invoice requires an Invoices Plus subscription.
Max: 2 custom fields
Max Length: 2
delivery_method: Option<InvoiceDeliveryMethod>
The delivery method that Square uses to send the invoice, reminders, and receipts to the
customer. After the invoice is published, Square processes the invoice based on the delivery
method and payment request settings, either immediately or on the scheduled_at
date, if
specified. For example, Square might send the invoice or receipt for an automatic payment.
For invoices with automatic payments, this field must be set to EMAIL
.
One of the following is required when creating an invoice:
- (Recommended) This
delivery_method
field. To configure an automatic payment, theautomatic_payment_source
field of the payment request is also required. - The deprecated
request_method
field of the payment request. Note thatinvoice
objects returned in responses do not includerequest_method
.
description: Option<String>
The description of the invoice, which is displayed on the invoice.
Min Length: 1, Max Length: 65536
invoice_number: Option<String>
A user-friendly invoice number that is displayed on the invoice. The value is unique within a location. If not provided when creating an invoice, Square assigns a value. It increments from 1 and is padded with zeros making it 7 characters long (for example, 0000001 and 0000002).
Min Length: 1, Max Length: 191
location_id: Option<String>
The ID of the location that this invoice is associated with.
If specified in a CreateInvoice
request, the value must match the location_id
of the
associated order.
Min Length: 1, Max Length: 255
next_payment_amount_money: Option<Money>
Read only The current amount due for the invoice. In addition to the amount due on the next payment request, this includes any overdue payment amounts.
order_id: Option<String>
The ID of the [Order] for which the invoice is created. This field is required when creating
an invoice, and the order must be in the OPEN
state.
To view the line items and other information for the associated order, call the RetrieveOrder endpoint using the order ID.
Min Length: 1, Max Length: 255
payment_conditions: Option<String>
France only. The payment terms and conditions that are displayed on the invoice. For more information, see Payment conditions.
For countries other than France, Square returns an INVALID_REQUEST_ERROR
with a
BAD_REQUEST
code and “Payment conditions are not supported for this location’s country”
detail if this field is included in CreateInvoice
or UpdateInvoice
requests.
Min Length: 1, Max Length: 2000
payment_requests: Option<Vec<InvoicePaymentRequest>>
The payment schedule for the invoice, represented by one or more payment requests that define payment settings, such as amount due and due date. An invoice supports the following payment request combinations:
- One balance
- One deposit with one balance
- 2–12 installments
- One deposit with 2–12 installments
This field is required when creating an invoice. It must contain at least one payment request. All payment requests for the invoice must equal the total order amount. For more information, see Configuring payment requests.
Adding INSTALLMENT
payment requests to an invoice requires an Invoices Plus
subscription.
Min Length: 1, Max Length: 13
primary_recipient: Option<InvoiceRecipient>
The customer who receives the invoice. This customer data is displayed on the invoice and used by Square to deliver the invoice.
This field is required to publish an invoice, and it must specify the customer_id
.
public_url: Option<String>
Read only The URL of the Square-hosted invoice page. After you publish the invoice using
the PublishInvoice
endpoint, Square hosts the invoice page and returns the page URL in the
response.
sale_or_service_date: Option<String>
The date of the sale or the date that the service is rendered, in YYYY-MM-DD
format. This
field can be used to specify a past or future date which is displayed on the invoice.
scheduled_at: Option<DateTime>
The timestamp when the invoice is scheduled for processing, in RFC 3339 format. After the invoice is published, Square processes the invoice on the specified date, according to the delivery method and payment request settings.
If the field is not set, Square processes the invoice immediately after it is published.
status: Option<InvoiceStatus>
Read only The status of the invoice.
store_payment_method_enabled: Option<bool>
Indicates whether to allow a customer to save a credit or debit card as a card on file or a
bank transfer as a bank account on file. If true
, Square displays a Save my card on
file or Save my bank on file checkbox on the invoice payment page. Stored payment
information can be used for future automatic payments. The default value is false
.
subscription_id: Option<String>
Read only The ID of the subscription associated with the invoice. This field is present only on subscription billing invoices.
timezone: Option<Timezone>
Read only The time zone used to interpret calendar dates on the invoice, such as due_date
.
When an invoice is created, this field is set to the timezone
specified for the seller
location. The value cannot be changed.
title: Option<String>
The title of the invoice, which is displayed on the invoice.
Min Length: 1, Max Length: 255
updated_at: Option<DateTime>
Read only The timestamp when the invoice was last updated, in RFC 3339 format.
version: Option<i32>
The Square-assigned version number, which is incremented each time an update is committed to the invoice.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Invoice
impl<'de> Deserialize<'de> for Invoice
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for Invoice
impl StructuralPartialEq for Invoice
Auto Trait Implementations§
impl Freeze for Invoice
impl RefUnwindSafe for Invoice
impl Send for Invoice
impl Sync for Invoice
impl Unpin for Invoice
impl UnwindSafe for Invoice
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.