1use serde::Deserialize;
2
3#[derive(Deserialize, Debug)]
4#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
5pub enum AccountTypeEnum {
6 Saver,
7 Transactional,
8}
9
10#[derive(Deserialize, Debug)]
11#[serde(rename_all = "camelCase")]
12pub struct MoneyObject {
13 pub currency_code: String,
15 pub value: String,
19 pub value_in_base_units: i64,
23}
24
25#[derive(Deserialize, Debug)]
26#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
27pub enum OwnershipTypeEnum {
28 Individual,
29 Joint,
30}
31
32#[derive(Deserialize, Debug)]
33#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
34pub enum TransactionStatusEnum {
35 Held,
36 Settled,
37}
38
39#[derive(Deserialize, Debug)]
40#[serde(rename_all = "camelCase")]
41pub struct HoldInfoObject {
42 pub amount: MoneyObject,
45 pub foreign_amount: Option<MoneyObject>,
49}
50
51#[derive(Deserialize, Debug)]
52#[serde(rename_all = "camelCase")]
53pub struct RoundUpObject {
54 pub amount: MoneyObject,
57 pub boost_portion: Option<MoneyObject>,
61}
62
63#[derive(Deserialize, Debug)]
64pub struct CashBackObject {
65 pub description: String,
67 pub amount: MoneyObject,
69}
70
71#[derive(Deserialize, Debug)]
72#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
73pub enum CardPurchaseMethodEnum {
74 BarCode,
75 OCR,
76 CardPin,
77 CardDetails,
78 CardOnFile,
79 #[serde(rename = "ECOMMERCE")]
80 ECommerce,
81 MagneticStripe,
82 Contactless,
83}
84
85#[derive(Deserialize, Debug)]
86#[serde(rename_all = "camelCase")]
87pub struct CardPurchaseMethodObject {
88 pub method: CardPurchaseMethodEnum,
90 pub card_number_suffix: Option<String>,
92}
93
94
95#[derive(Deserialize, Debug)]
96#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
97pub enum WebhookEventTypeEnum {
98 TransactionCreated,
99 TransactionSettled,
100 TransactionDeleted,
101 Ping,
102}
103
104#[derive(Deserialize, Debug)]
105#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
106pub enum WebhookDeliveryStatusEnum {
107 Delivered,
108 Undeliverable,
109 BadResponseCode,
110}