monzo_webhook/metadata/
merchant_transaction.rs

1use crate::StringBoolean;
2
3struct_with_extra! { MerchantTransaction,
4    mcc: String,
5    /// Seems to only be present for transactions made via NFC, i.e.
6    /// Google Pay, Apple Pay, Samsung Wallet, etc.
7    token_transaction_identifier: Option<String>,
8    /// Seems to only be present for transactions made via NFC, i.e.
9    /// Google Pay, Apple Pay, Samsung Wallet, etc.
10    tokenization_method: Option<String>,
11    /// Seems to only be present for transactions made via NFC, i.e.
12    /// Google Pay, Apple Pay, Samsung Wallet, etc.
13    token_unique_reference: Option<String>,
14    transaction_description_localised: StringBoolean,
15    transaction_locale_country: String,
16    standin_correlation_id: String,
17    mastercard_lifecycle_id: String,
18    mastercard_approval_type: MastercardApprovalType,
19    mastercard_auth_message_id: String,
20    mastercard_card_id: String,
21    /// Set once the transaction has been cleared, often the next
22    /// working day
23    mastercard_clearing_message_id: Option<String>,
24    /// This field is present (and [`StringBoolean::True`]) when the
25    /// transaction is approved to be reduced later, for example fuel
26    /// pay-at-pump transactions.
27    mastercard_partial_approval_supported: Option<StringBoolean>,
28    /// Present during online transactions
29    card_acceptor_contact_number: Option<String>,
30    /// Present during online transactions
31    card_acceptor_website: Option<String>,
32    /// The ID of the transaction if you decide to round up into a
33    /// savings account
34    coin_jar_transaction: Option<String>,
35    #[serde(flatten)]
36    ledger_details: super::ledger::LedgerDetails,
37}
38
39enum_with_extra! { "snake_case" => MastercardApprovalType,
40    Full,
41}