#[derive(
Debug,
Clone,
Default,
PartialEq,
serde::Serialize,
serde::Deserialize,
typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct AddressLegacy {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`city`](AddressLegacy::city).")
)]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`country`](AddressLegacy::country).")
)]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`line_1`](AddressLegacy::line_1).")
)]
pub line_1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`line_2`](AddressLegacy::line_2).")
)]
pub line_2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
into,
doc = "Sets [`postal_code`](AddressLegacy::postal_code)."
)
)]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`state`](AddressLegacy::state).")
)]
pub state: Option<String>,
}
#[derive(
Debug,
Clone,
Default,
PartialEq,
serde::Serialize,
serde::Deserialize,
typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct Attributes {
#[serde(
flatten,
default,
skip_serializing_if = "std::collections::HashMap::is_empty"
)]
#[builder(
default,
setter(doc = "Sets [`additional_properties`](Attributes::additional_properties).")
)]
pub additional_properties: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum CardType {
#[serde(rename = "ALELO")]
Alelo,
#[serde(rename = "AMEX")]
Amex,
#[serde(rename = "BANCOMAT")]
Bancomat,
#[serde(rename = "CONECS")]
Conecs,
#[serde(rename = "CUP")]
Cup,
#[serde(rename = "DINERS")]
Diners,
#[serde(rename = "DISCOVER")]
Discover,
#[serde(rename = "EFTPOS")]
Eftpos,
#[serde(rename = "ELO")]
Elo,
#[serde(rename = "ELV")]
Elv,
#[serde(rename = "GIROCARD")]
Girocard,
#[serde(rename = "HIPERCARD")]
Hipercard,
#[serde(rename = "INTERAC")]
Interac,
#[serde(rename = "JCB")]
Jcb,
#[serde(rename = "MAESTRO")]
Maestro,
#[serde(rename = "MASTERCARD")]
Mastercard,
#[serde(rename = "PLUXEE")]
Pluxee,
#[serde(rename = "SUMUP")]
Sumup,
#[serde(rename = "SWILE")]
Swile,
#[serde(rename = "TICKET")]
Ticket,
#[serde(rename = "VISA")]
Visa,
#[serde(rename = "VISA_ELECTRON")]
VisaElectron,
#[serde(rename = "VISA_VPAY")]
VisaVpay,
#[serde(rename = "VPAY")]
Vpay,
#[serde(rename = "VR")]
Vr,
#[serde(rename = "UNKNOWN")]
Unknown,
#[serde(untagged)]
Other(String),
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum Currency {
BRL,
CHF,
CLP,
COP,
CZK,
DKK,
EUR,
GBP,
HRK,
HUF,
NOK,
PLN,
RON,
SEK,
USD,
#[serde(untagged)]
Other(String),
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum EntryMode {
#[serde(rename = "BOLETO")]
Boleto,
#[serde(rename = "SOFORT")]
Sofort,
#[serde(rename = "IDEAL")]
Ideal,
#[serde(rename = "BANCONTACT")]
Bancontact,
#[serde(rename = "EPS")]
Eps,
#[serde(rename = "MYBANK")]
Mybank,
#[serde(rename = "SATISPAY")]
Satispay,
#[serde(rename = "BLIK")]
Blik,
P24,
#[serde(rename = "GIROPAY")]
Giropay,
#[serde(rename = "PIX")]
Pix,
#[serde(rename = "QR_CODE_PIX")]
QrCodePix,
#[serde(rename = "APPLE_PAY")]
ApplePay,
#[serde(rename = "GOOGLE_PAY")]
GooglePay,
#[serde(rename = "PAYPAL")]
Paypal,
#[serde(rename = "TWINT")]
Twint,
#[serde(rename = "NONE")]
None,
#[serde(rename = "CHIP")]
Chip,
#[serde(rename = "MANUAL_ENTRY")]
ManualEntry,
#[serde(rename = "CUSTOMER_ENTRY")]
CustomerEntry,
#[serde(rename = "MAGSTRIPE_FALLBACK")]
MagstripeFallback,
#[serde(rename = "MAGSTRIPE")]
Magstripe,
#[serde(rename = "DIRECT_DEBIT")]
DirectDebit,
#[serde(rename = "CONTACTLESS")]
Contactless,
#[serde(rename = "MOTO")]
Moto,
#[serde(rename = "CONTACTLESS_MAGSTRIPE")]
ContactlessMagstripe,
#[serde(rename = "N/A")]
NA,
#[serde(untagged)]
Other(String),
}
#[derive(
Debug,
Clone,
Default,
PartialEq,
serde::Serialize,
serde::Deserialize,
typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct Error {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`error_code`](Error::error_code).")
)]
pub error_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`message`](Error::message).")
)]
pub message: Option<String>,
}
impl std::fmt::Display for Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self.message.as_deref() {
Some(value) => write!(f, "{}", value),
None => write!(f, "{:?}", self),
}
}
}
impl std::error::Error for Error {}
#[derive(
Debug,
Clone,
Default,
PartialEq,
serde::Serialize,
serde::Deserialize,
typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct ErrorExtended {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
into,
doc = "Sets [`error_code`](ErrorExtended::error_code)."
)
)]
pub error_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`message`](ErrorExtended::message).")
)]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`param`](ErrorExtended::param).")
)]
pub param: Option<String>,
}
impl std::fmt::Display for ErrorExtended {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self.message.as_deref() {
Some(value) => write!(f, "{}", value),
None => write!(f, "{:?}", self),
}
}
}
impl std::error::Error for ErrorExtended {}
#[derive(
Debug,
Clone,
Default,
PartialEq,
serde::Serialize,
serde::Deserialize,
typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct ErrorForbidden {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
into,
doc = "Sets [`error_code`](ErrorForbidden::error_code)."
)
)]
pub error_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
into,
doc = "Sets [`error_message`](ErrorForbidden::error_message)."
)
)]
pub error_message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
into,
doc = "Sets [`status_code`](ErrorForbidden::status_code)."
)
)]
pub status_code: Option<String>,
}
impl std::fmt::Display for ErrorForbidden {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self)
}
}
impl std::error::Error for ErrorForbidden {}
#[derive(
Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize, typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct Invite {
#[builder(setter(into, doc = "Sets [`email`](Invite::email)."))]
pub email: String,
#[builder(setter(doc = "Sets [`expires_at`](Invite::expires_at)."))]
pub expires_at: crate::datetime::DateTime,
}
#[derive(
Debug,
Clone,
Default,
PartialEq,
serde::Serialize,
serde::Deserialize,
typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct MandateResponse {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
into,
doc = "Sets [`merchant_code`](MandateResponse::merchant_code)."
)
)]
pub merchant_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, doc = "Sets [`status`](MandateResponse::status).")
)]
pub status: Option<MandateResponseStatus>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`r#type`](MandateResponse::r#type).")
)]
pub r#type: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum MembershipStatus {
#[serde(rename = "accepted")]
Accepted,
#[serde(rename = "pending")]
Pending,
#[serde(rename = "expired")]
Expired,
#[serde(rename = "disabled")]
Disabled,
#[serde(rename = "unknown")]
Unknown,
#[serde(untagged)]
Other(String),
}
#[derive(
Debug,
Clone,
Default,
PartialEq,
serde::Serialize,
serde::Deserialize,
typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct Metadata {
#[serde(
flatten,
default,
skip_serializing_if = "std::collections::HashMap::is_empty"
)]
#[builder(
default,
setter(doc = "Sets [`additional_properties`](Metadata::additional_properties).")
)]
pub additional_properties: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum PaymentType {
#[serde(rename = "CASH")]
Cash,
#[serde(rename = "POS")]
Pos,
#[serde(rename = "ECOM")]
Ecom,
#[serde(rename = "RECURRING")]
Recurring,
#[serde(rename = "BITCOIN")]
Bitcoin,
#[serde(rename = "BALANCE")]
Balance,
#[serde(rename = "MOTO")]
Moto,
#[serde(rename = "BOLETO")]
Boleto,
#[serde(rename = "DIRECT_DEBIT")]
DirectDebit,
#[serde(rename = "APM")]
Apm,
#[serde(rename = "UNKNOWN")]
Unknown,
#[serde(untagged)]
Other(String),
}
#[derive(
Debug,
Clone,
Default,
PartialEq,
serde::Serialize,
serde::Deserialize,
typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct PersonalDetails {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, doc = "Sets [`address`](PersonalDetails::address).")
)]
pub address: Option<AddressLegacy>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
doc = "Sets [`birth_date`](PersonalDetails::birth_date)."
)
)]
pub birth_date: Option<crate::datetime::Date>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`email`](PersonalDetails::email).")
)]
pub email: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
into,
doc = "Sets [`first_name`](PersonalDetails::first_name)."
)
)]
pub first_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
into,
doc = "Sets [`last_name`](PersonalDetails::last_name)."
)
)]
pub last_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`phone`](PersonalDetails::phone).")
)]
pub phone: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`tax_id`](PersonalDetails::tax_id).")
)]
pub tax_id: Option<String>,
}
#[derive(
Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize, typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct Problem {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`detail`](Problem::detail).")
)]
pub detail: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`instance`](Problem::instance).")
)]
pub instance: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, doc = "Sets [`status`](Problem::status).")
)]
pub status: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`title`](Problem::title).")
)]
pub title: Option<String>,
#[serde(rename = "type")]
#[builder(setter(into, doc = "Sets [`r#type`](Problem::r#type)."))]
pub r#type: String,
#[serde(
flatten,
default,
skip_serializing_if = "std::collections::HashMap::is_empty"
)]
#[builder(
default,
setter(doc = "Sets [`additional_properties`](Problem::additional_properties).")
)]
pub additional_properties: std::collections::HashMap<String, serde_json::Value>,
}
impl std::fmt::Display for Problem {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match (&self.title, &self.detail) {
(Some(title), Some(detail)) => write!(f, "{}: {}", title, detail),
(Some(title), None) => write!(f, "{}", title),
(None, Some(detail)) => write!(f, "{}", detail),
(None, None) => write!(f, "{:?}", self),
}
}
}
impl std::error::Error for Problem {}
#[derive(
Debug,
Clone,
Default,
PartialEq,
serde::Serialize,
serde::Deserialize,
typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct TransactionBase {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, doc = "Sets [`amount`](TransactionBase::amount).")
)]
pub amount: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, doc = "Sets [`currency`](TransactionBase::currency).")
)]
pub currency: Option<Currency>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, into, doc = "Sets [`id`](TransactionBase::id).")
)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
doc = "Sets [`installments_count`](TransactionBase::installments_count)."
)
)]
pub installments_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
doc = "Sets [`payment_type`](TransactionBase::payment_type)."
)
)]
pub payment_type: Option<PaymentType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, doc = "Sets [`status`](TransactionBase::status).")
)]
pub status: Option<TransactionStatus>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(strip_option, doc = "Sets [`timestamp`](TransactionBase::timestamp).")
)]
pub timestamp: Option<crate::datetime::DateTime>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
into,
doc = "Sets [`transaction_code`](TransactionBase::transaction_code)."
)
)]
pub transaction_code: Option<String>,
}
#[derive(
Debug,
Clone,
Default,
PartialEq,
serde::Serialize,
serde::Deserialize,
typed_builder::TypedBuilder,
)]
#[builder(doc)]
pub struct TransactionCheckoutInfo {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
into,
doc = "Sets [`auth_code`](TransactionCheckoutInfo::auth_code)."
)
)]
pub auth_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
doc = "Sets [`entry_mode`](TransactionCheckoutInfo::entry_mode)."
)
)]
pub entry_mode: Option<EntryMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
into,
doc = "Sets [`merchant_code`](TransactionCheckoutInfo::merchant_code)."
)
)]
pub merchant_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
doc = "Sets [`tip_amount`](TransactionCheckoutInfo::tip_amount)."
)
)]
pub tip_amount: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(
default,
setter(
strip_option,
doc = "Sets [`vat_amount`](TransactionCheckoutInfo::vat_amount)."
)
)]
pub vat_amount: Option<f32>,
}
pub type TransactionEventId = i64;
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum TransactionEventStatus {
#[serde(rename = "FAILED")]
Failed,
#[serde(rename = "PAID_OUT")]
PaidOut,
#[serde(rename = "PENDING")]
Pending,
#[serde(rename = "RECONCILED")]
Reconciled,
#[serde(rename = "REFUNDED")]
Refunded,
#[serde(rename = "SCHEDULED")]
Scheduled,
#[serde(rename = "SUCCESSFUL")]
Successful,
#[serde(untagged)]
Other(String),
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum TransactionEventType {
#[serde(rename = "PAYOUT")]
Payout,
#[serde(rename = "CHARGE_BACK")]
ChargeBack,
#[serde(rename = "REFUND")]
Refund,
#[serde(rename = "PAYOUT_DEDUCTION")]
PayoutDeduction,
#[serde(untagged)]
Other(String),
}
pub type TransactionId = String;
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum TransactionStatus {
#[serde(rename = "SUCCESSFUL")]
Successful,
#[serde(rename = "CANCELLED")]
Cancelled,
#[serde(rename = "FAILED")]
Failed,
#[serde(rename = "PENDING")]
Pending,
#[serde(rename = "REFUNDED")]
Refunded,
#[serde(untagged)]
Other(String),
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum MandateResponseStatus {
#[serde(rename = "active")]
Active,
#[serde(rename = "inactive")]
Inactive,
#[serde(untagged)]
Other(String),
}