1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! Model struct for Transaction type

use serde::Deserialize;

use super::{enums::TransactionProduct, Address, DateTime, Refund, Tender};

/// Represents a transaction processed with Square, either with the Connect API or with Square Point
/// of Sale.
///
/// The tenders field of this object lists all methods of payment used to pay in the transaction.
#[deprecated]
#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
pub struct Transaction {
    /// The transaction's unique ID, issued by Square payments servers.
    pub id: Option<String>,
    /// The ID of the transaction's associated location.
    pub location_id: Option<String>,
    /// The timestamp for when the transaction was created.
    pub created_at: Option<DateTime>,
    /// The tenders used to pay in the transaction.
    pub tenders: Option<Vec<Tender>>,
    /// Refunds that have been applied to any tender in the transaction.
    pub refunds: Option<Vec<Refund>>,
    /// If the transaction was created with the `Charge` endpoint, this value
    /// is the same as the value provided for the `reference_id` parameter in the request to that
    /// endpoint. Otherwise, it is not set.
    pub reference_id: Option<String>,
    /// Indicates the Square product used to process a transaction.
    pub product: Option<TransactionProduct>,
    /// If the transaction was created in the Square Point of Sale app, this value is the ID
    /// generated for the transaction by Square Point of Sale.
    ///
    /// This ID has no relationship to the transaction's canonical `id`, which is generated by
    /// Square's backend servers. This value is generated for bookkeeping purposes, in case the
    /// transaction cannot immediately be completed (for example, if the transaction is processed in
    /// offline mode).
    ///
    /// It is not currently possible with the Connect API to perform a transaction lookup by this
    /// value.
    pub client_id: Option<String>,
    /// The shipping address provided in the request, if any.
    pub shipping_address: Option<Address>,
    /// The order_id is an identifier for the order associated with this transaction, if any.
    pub order_id: Option<String>,
}