squareup 2.15.1

Rust SDK for the Square Developer API
Documentation
//! Model struct for the Card type

use super::{
    Address, DateTime,
    enums::{CardBrand, CardCoBrand, CardPrepaidType, CardType},
};
use crate::models::enums::CardIssuerAlert;
use serde::{Deserialize, Serialize};

/// Represents the payment details of a card to be used for payments.
///
/// These details are determined by the payment token generated by Web Payments SDK.
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct Card {
    /// **Read only** Unique ID for this card. Generated by Square.
    pub id: Option<String>,
    /// **Read only** The card's brand.
    pub card_brand: Option<CardBrand>,
    /// **Read only** The last 4 digits of the card number.
    pub last_4: Option<String>,
    /// The expiration month of the associated card as an integer between 1 and 12.
    pub exp_month: Option<i32>,
    /// The four-digit year of the card's expiration date.
    pub exp_year: Option<i32>,
    /// The name of the cardholder.
    pub cardholder_name: Option<String>,
    /// The billing address for this card.
    pub billing_address: Option<Address>,
    /// **Read only** Intended as a Square-assigned identifier, based on the card number, to
    /// identify the card across multiple locations within a single application.
    pub fingerprint: Option<String>,
    /// The ID of a customer created using the Customers API to be associated with the card.
    pub customer_id: Option<String>,
    /// **Read only** The ID of the merchant associated with the card.
    pub merchant_id: Option<String>,
    /// An optional user-defined reference ID that associates this card with another entity in an
    /// external system. For example, a customer ID from an external customer management system.
    pub reference_id: Option<String>,
    /// **Read only** Indicates whether or not a card can be used for payments.
    pub enabled: Option<bool>,
    /// **Read only** The type of the card. The Card object includes this field only in response to
    /// Payments API calls.
    pub card_type: Option<CardType>,
    /// **Read only** Indicates whether the Card is prepaid or not. The Card object includes this
    /// field only in response to Payments API calls.
    pub prepaid_type: Option<CardPrepaidType>,
    /// **Read only** The first six digits of the card number, known as the Bank Identification
    /// Number (BIN). Only the Payments API returns this field.
    pub bin: Option<String>,
    /// Current version number of the card. Increments with each card update. Requests to update an
    /// existing Card object will be rejected unless the version in the request matches the current
    /// version for the Card.
    pub version: Option<i32>,
    /// **Read only** The card's co-brand if available. For example, an Afterpay virtual card would
    /// have a co-brand of AFTERPAY.
    pub card_co_brand: Option<CardCoBrand>,
    /// **Read only** An alert from the issuing bank about the card status. Alerts can indicate whether
    /// future charges to the card are likely to fail.
    /// For more information, see Manage Card on File Declines.
    ///
    /// This field is present only if there's an active issuer alert.
    pub issuer_alert: Option<CardIssuerAlert>,
    /// **Read only** The timestamp of when the current issuer alert was received and processed,
    /// in RFC 3339 format.
    ///
    /// This field is present only if there's an active issuer alert.
    ///
    /// Examples for January 25th, 2020 6:25:34pm Pacific Standard Time:
    ///
    /// UTC: 2020-01-26T02:25:34Z
    ///
    /// Pacific Standard Time with UTC offset: 2020-01-25T18:25:34-08:00
    pub issuer_alert_at: Option<DateTime>,
    /// **Read only** Indicates whether the card is linked to a Health Savings Account (HSA) or
    /// Flexible Spending Account (FSA), based on the card BIN.
    pub hsa_fsa: Option<bool>,
}