use serde_derive::{Deserialize, Serialize};
use crate::config::{Client, Response};
use crate::ids::AccountId;
use crate::params::{Deleted, Expand, Expandable, List, Metadata, Object, RangeQuery, Timestamp};
use crate::resources::{
Address, BankAccount, Card, Currency, DelayDays, File, Person, PersonVerificationParams,
VerificationDocumentParams,
};
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Account {
pub id: AccountId,
#[serde(skip_serializing_if = "Option::is_none")]
pub business_profile: Option<Box<BusinessProfile>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub business_type: Option<Box<AccountBusinessType>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub capabilities: Option<Box<AccountCapabilities>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub charges_enabled: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company: Option<Box<Company>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub controller: Option<Box<AccountUnificationAccountController>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created: Option<Timestamp>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_currency: Option<Currency>,
#[serde(default)]
pub deleted: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub details_submitted: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<Box<String>>,
#[serde(default)]
pub external_accounts: List<ExternalAccount>,
#[serde(skip_serializing_if = "Option::is_none")]
pub future_requirements: Option<Box<AccountFutureRequirements>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub individual: Option<Box<Person>>,
#[serde(default)]
pub metadata: Metadata,
#[serde(skip_serializing_if = "Option::is_none")]
pub payouts_enabled: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub requirements: Option<Box<AccountRequirements>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub settings: Option<Box<AccountSettings>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tos_acceptance: Option<Box<TosAcceptance>>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<AccountType>,
}
impl Account {
pub fn list(client: &Client, params: ListAccounts<'_>) -> Response<List<Account>> {
client.get_query("/accounts", ¶ms)
}
pub fn create(client: &Client, params: CreateAccount<'_>) -> Response<Account> {
client.post_form("/accounts", ¶ms)
}
pub fn retrieve(client: &Client, id: &AccountId, expand: &[&str]) -> Response<Account> {
client.get_query(&format!("/accounts/{}", id), &Expand { expand })
}
pub fn update(client: &Client, id: &AccountId, params: UpdateAccount<'_>) -> Response<Account> {
client.post_form(&format!("/accounts/{}", id), ¶ms)
}
pub fn delete(client: &Client, id: &AccountId) -> Response<Deleted<AccountId>> {
client.delete(&format!("/accounts/{}", id))
}
}
impl Object for Account {
type Id = AccountId;
fn id(&self) -> Self::Id {
self.id.clone()
}
fn object(&self) -> &'static str {
"account"
}
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct BusinessProfile {
#[serde(skip_serializing_if = "Option::is_none")]
pub mcc: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub product_description: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub support_address: Option<Box<Address>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub support_email: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub support_phone: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub support_url: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub acss_debit_payments: Option<Box<AccountCapabilitiesAcssDebitPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub afterpay_clearpay_payments: Option<Box<AccountCapabilitiesAfterpayClearpayPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub au_becs_debit_payments: Option<Box<CapabilityStatus>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bacs_debit_payments: Option<Box<AccountCapabilitiesBacsDebitPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bancontact_payments: Option<Box<AccountCapabilitiesBancontactPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub boleto_payments: Option<Box<AccountCapabilitiesBoletoPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub card_issuing: Option<Box<CapabilityStatus>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub card_payments: Option<Box<CapabilityStatus>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cartes_bancaires_payments: Option<Box<AccountCapabilitiesCartesBancairesPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub eps_payments: Option<Box<AccountCapabilitiesEpsPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fpx_payments: Option<Box<AccountCapabilitiesFpxPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub giropay_payments: Option<Box<AccountCapabilitiesGiropayPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub grabpay_payments: Option<Box<AccountCapabilitiesGrabpayPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ideal_payments: Option<Box<AccountCapabilitiesIdealPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub jcb_payments: Option<Box<CapabilityStatus>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub klarna_payments: Option<Box<AccountCapabilitiesKlarnaPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub legacy_payments: Option<Box<CapabilityStatus>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub oxxo_payments: Option<Box<AccountCapabilitiesOxxoPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub p24_payments: Option<Box<AccountCapabilitiesP24Payments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sepa_debit_payments: Option<Box<AccountCapabilitiesSepaDebitPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sofort_payments: Option<Box<AccountCapabilitiesSofortPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_reporting_us_1099_k: Option<Box<CapabilityStatus>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_reporting_us_1099_misc: Option<Box<CapabilityStatus>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub transfers: Option<Box<CapabilityStatus>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountFutureRequirements {
#[serde(skip_serializing_if = "Option::is_none")]
pub alternatives: Option<Box<Vec<AccountRequirementsAlternative>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub current_deadline: Option<Box<Timestamp>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub currently_due: Option<Box<Vec<String>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disabled_reason: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub errors: Option<Box<Vec<AccountRequirementsError>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub eventually_due: Option<Box<Vec<String>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub past_due: Option<Box<Vec<String>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pending_verification: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountRequirements {
#[serde(skip_serializing_if = "Option::is_none")]
pub alternatives: Option<Box<Vec<AccountRequirementsAlternative>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub current_deadline: Option<Box<Timestamp>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub currently_due: Option<Box<Vec<String>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disabled_reason: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub errors: Option<Box<Vec<AccountRequirementsError>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub eventually_due: Option<Box<Vec<String>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub past_due: Option<Box<Vec<String>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pending_verification: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountRequirementsAlternative {
pub alternative_fields_due: Vec<String>,
pub original_fields_due: Vec<String>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountRequirementsError {
pub code: AccountRequirementsErrorCode,
pub reason: String,
pub requirement: String,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountSettings {
#[serde(skip_serializing_if = "Option::is_none")]
pub bacs_debit_payments: Option<Box<AccountBacsDebitPaymentsSettings>>,
pub branding: BrandingSettings,
#[serde(skip_serializing_if = "Option::is_none")]
pub card_issuing: Option<Box<AccountCardIssuingSettings>>,
pub card_payments: CardPaymentsSettings,
pub dashboard: DashboardSettings,
pub payments: PaymentsSettings,
#[serde(skip_serializing_if = "Option::is_none")]
pub payouts: Option<Box<PayoutSettings>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sepa_debit_payments: Option<Box<AccountSepaDebitPaymentsSettings>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountBacsDebitPaymentsSettings {
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct BrandingSettings {
#[serde(skip_serializing_if = "Option::is_none")]
pub icon: Option<Box<Expandable<File>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub logo: Option<Box<Expandable<File>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub primary_color: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub secondary_color: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountCardIssuingSettings {
#[serde(skip_serializing_if = "Option::is_none")]
pub tos_acceptance: Option<Box<CardIssuingAccountTermsOfService>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CardPaymentsSettings {
#[serde(skip_serializing_if = "Option::is_none")]
pub decline_on: Option<Box<DeclineChargeOn>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statement_descriptor_prefix: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct DashboardSettings {
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timezone: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct DeclineChargeOn {
pub avs_failure: bool,
pub cvc_failure: bool,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct PaymentsSettings {
#[serde(skip_serializing_if = "Option::is_none")]
pub statement_descriptor: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statement_descriptor_kana: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statement_descriptor_kanji: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct PayoutSettings {
pub debit_negative_balances: bool,
pub schedule: TransferSchedule,
#[serde(skip_serializing_if = "Option::is_none")]
pub statement_descriptor: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountSepaDebitPaymentsSettings {
#[serde(skip_serializing_if = "Option::is_none")]
pub creditor_id: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct TosAcceptance {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<Box<Timestamp>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub service_agreement: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_agent: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountUnificationAccountController {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_controller: Option<Box<bool>>,
#[serde(rename = "type")]
pub type_: AccountUnificationAccountControllerType,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CardIssuingAccountTermsOfService {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<Box<Timestamp>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_agent: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Company {
#[serde(skip_serializing_if = "Option::is_none")]
pub address: Option<Box<Address>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kana: Option<Box<Address>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kanji: Option<Box<Address>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub directors_provided: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub executives_provided: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name_kana: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name_kanji: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub owners_provided: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ownership_declaration: Option<Box<LegalEntityUboDeclaration>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub phone: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub structure: Option<Box<CompanyStructure>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_id_provided: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_id_registrar: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vat_id_provided: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verification: Option<Box<CompanyVerification>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CompanyVerification {
pub document: CompanyVerificationDocument,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CompanyVerificationDocument {
#[serde(skip_serializing_if = "Option::is_none")]
pub back: Option<Box<Expandable<File>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub details: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub details_code: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub front: Option<Box<Expandable<File>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct LegalEntityUboDeclaration {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<Box<Timestamp>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_agent: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct TransferSchedule {
pub delay_days: u32,
pub interval: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub monthly_anchor: Option<Box<u8>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub weekly_anchor: Option<Box<String>>,
}
#[derive(Clone, Debug, Serialize, Default)]
pub struct CreateAccount<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub account_token: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub business_profile: Option<BusinessProfile>,
#[serde(skip_serializing_if = "Option::is_none")]
pub business_type: Option<AccountBusinessType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub capabilities: Option<Box<CreateAccountCapabilities>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company: Option<Box<CompanyParams>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_currency: Option<Currency>,
#[serde(skip_serializing_if = "Option::is_none")]
pub documents: Option<Box<CreateAccountDocuments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<&'a str>,
#[serde(skip_serializing_if = "Expand::is_empty")]
pub expand: &'a [&'a str],
#[serde(skip_serializing_if = "Option::is_none")]
pub external_account: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub individual: Option<Box<PersonParams>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<Metadata>,
#[serde(skip_serializing_if = "Option::is_none")]
pub settings: Option<Box<AccountSettingsParams>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tos_acceptance: Option<Box<AcceptTos>>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<AccountType>,
}
impl<'a> CreateAccount<'a> {
pub fn new() -> Self {
CreateAccount {
account_token: Default::default(),
business_profile: Default::default(),
business_type: Default::default(),
capabilities: Default::default(),
company: Default::default(),
country: Default::default(),
default_currency: Default::default(),
documents: Default::default(),
email: Default::default(),
expand: Default::default(),
external_account: Default::default(),
individual: Default::default(),
metadata: Default::default(),
settings: Default::default(),
tos_acceptance: Default::default(),
type_: Default::default(),
}
}
}
#[derive(Clone, Debug, Serialize, Default)]
pub struct ListAccounts<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub created: Option<RangeQuery<Timestamp>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ending_before: Option<AccountId>,
#[serde(skip_serializing_if = "Expand::is_empty")]
pub expand: &'a [&'a str],
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub starting_after: Option<AccountId>,
}
impl<'a> ListAccounts<'a> {
pub fn new() -> Self {
ListAccounts {
created: Default::default(),
ending_before: Default::default(),
expand: Default::default(),
limit: Default::default(),
starting_after: Default::default(),
}
}
}
#[derive(Clone, Debug, Serialize, Default)]
pub struct UpdateAccount<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub account_token: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub business_profile: Option<BusinessProfile>,
#[serde(skip_serializing_if = "Option::is_none")]
pub business_type: Option<AccountBusinessType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub capabilities: Option<Box<UpdateAccountCapabilities>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company: Option<Box<CompanyParams>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_currency: Option<Currency>,
#[serde(skip_serializing_if = "Option::is_none")]
pub documents: Option<Box<UpdateAccountDocuments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<&'a str>,
#[serde(skip_serializing_if = "Expand::is_empty")]
pub expand: &'a [&'a str],
#[serde(skip_serializing_if = "Option::is_none")]
pub external_account: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub individual: Option<Box<PersonParams>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<Metadata>,
#[serde(skip_serializing_if = "Option::is_none")]
pub settings: Option<Box<AccountSettingsParams>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tos_acceptance: Option<Box<AcceptTos>>,
}
impl<'a> UpdateAccount<'a> {
pub fn new() -> Self {
UpdateAccount {
account_token: Default::default(),
business_profile: Default::default(),
business_type: Default::default(),
capabilities: Default::default(),
company: Default::default(),
default_currency: Default::default(),
documents: Default::default(),
email: Default::default(),
expand: Default::default(),
external_account: Default::default(),
individual: Default::default(),
metadata: Default::default(),
settings: Default::default(),
tos_acceptance: Default::default(),
}
}
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AcceptTos {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<Box<Timestamp>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub service_agreement: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_agent: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountSettingsParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub branding: Option<Box<BrandingSettingsParams>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub card_issuing: Option<Box<AccountSettingsParamsCardIssuing>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub card_payments: Option<Box<CardPaymentsSettingsParams>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub payments: Option<Box<PaymentsSettingsParams>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub payouts: Option<Box<PayoutSettingsParams>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CompanyParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub address: Option<Address>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kana: Option<Address>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kanji: Option<Address>,
#[serde(skip_serializing_if = "Option::is_none")]
pub directors_provided: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub executives_provided: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name_kana: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name_kanji: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub owners_provided: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ownership_declaration: Option<Box<CompanyParamsOwnershipDeclaration>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub phone: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub registration_number: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub structure: Option<Box<CompanyParamsStructure>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_id: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_id_registrar: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vat_id: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verification: Option<Box<CompanyVerificationParams>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub acss_debit_payments: Option<Box<CreateAccountCapabilitiesAcssDebitPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub afterpay_clearpay_payments: Option<Box<CreateAccountCapabilitiesAfterpayClearpayPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub au_becs_debit_payments: Option<Box<CreateAccountCapabilitiesAuBecsDebitPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bacs_debit_payments: Option<Box<CreateAccountCapabilitiesBacsDebitPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bancontact_payments: Option<Box<CreateAccountCapabilitiesBancontactPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub boleto_payments: Option<Box<CreateAccountCapabilitiesBoletoPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub card_issuing: Option<Box<CreateAccountCapabilitiesCardIssuing>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub card_payments: Option<Box<CreateAccountCapabilitiesCardPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cartes_bancaires_payments: Option<Box<CreateAccountCapabilitiesCartesBancairesPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub eps_payments: Option<Box<CreateAccountCapabilitiesEpsPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fpx_payments: Option<Box<CreateAccountCapabilitiesFpxPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub giropay_payments: Option<Box<CreateAccountCapabilitiesGiropayPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub grabpay_payments: Option<Box<CreateAccountCapabilitiesGrabpayPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ideal_payments: Option<Box<CreateAccountCapabilitiesIdealPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub jcb_payments: Option<Box<CreateAccountCapabilitiesJcbPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub klarna_payments: Option<Box<CreateAccountCapabilitiesKlarnaPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub legacy_payments: Option<Box<CreateAccountCapabilitiesLegacyPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub oxxo_payments: Option<Box<CreateAccountCapabilitiesOxxoPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub p24_payments: Option<Box<CreateAccountCapabilitiesP24Payments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sepa_debit_payments: Option<Box<CreateAccountCapabilitiesSepaDebitPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sofort_payments: Option<Box<CreateAccountCapabilitiesSofortPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_reporting_us_1099_k: Option<Box<CreateAccountCapabilitiesTaxReportingUs1099K>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_reporting_us_1099_misc: Option<Box<CreateAccountCapabilitiesTaxReportingUs1099Misc>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub transfers: Option<Box<CreateAccountCapabilitiesTransfers>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountDocuments {
#[serde(skip_serializing_if = "Option::is_none")]
pub bank_account_ownership_verification:
Option<Box<CreateAccountDocumentsBankAccountOwnershipVerification>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company_license: Option<Box<CreateAccountDocumentsCompanyLicense>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company_memorandum_of_association:
Option<Box<CreateAccountDocumentsCompanyMemorandumOfAssociation>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company_ministerial_decree: Option<Box<CreateAccountDocumentsCompanyMinisterialDecree>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company_registration_verification:
Option<Box<CreateAccountDocumentsCompanyRegistrationVerification>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company_tax_id_verification: Option<Box<CreateAccountDocumentsCompanyTaxIdVerification>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub proof_of_registration: Option<Box<CreateAccountDocumentsProofOfRegistration>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct PersonParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub address: Option<Address>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kana: Option<Address>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kanji: Option<Address>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dob: Option<Box<PersonParamsDob>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_name: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_name_kana: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_name_kanji: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub full_name_aliases: Option<Box<Vec<String>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gender: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id_number: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_name: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_name_kana: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_name_kanji: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub maiden_name: Option<Box<String>>,
#[serde(default)]
pub metadata: Metadata,
#[serde(skip_serializing_if = "Option::is_none")]
pub phone: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub political_exposure: Option<Box<PersonParamsPoliticalExposure>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ssn_last_4: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verification: Option<PersonVerificationParams>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilities {
#[serde(skip_serializing_if = "Option::is_none")]
pub acss_debit_payments: Option<Box<UpdateAccountCapabilitiesAcssDebitPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub afterpay_clearpay_payments: Option<Box<UpdateAccountCapabilitiesAfterpayClearpayPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub au_becs_debit_payments: Option<Box<UpdateAccountCapabilitiesAuBecsDebitPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bacs_debit_payments: Option<Box<UpdateAccountCapabilitiesBacsDebitPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bancontact_payments: Option<Box<UpdateAccountCapabilitiesBancontactPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub boleto_payments: Option<Box<UpdateAccountCapabilitiesBoletoPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub card_issuing: Option<Box<UpdateAccountCapabilitiesCardIssuing>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub card_payments: Option<Box<UpdateAccountCapabilitiesCardPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cartes_bancaires_payments: Option<Box<UpdateAccountCapabilitiesCartesBancairesPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub eps_payments: Option<Box<UpdateAccountCapabilitiesEpsPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fpx_payments: Option<Box<UpdateAccountCapabilitiesFpxPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub giropay_payments: Option<Box<UpdateAccountCapabilitiesGiropayPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub grabpay_payments: Option<Box<UpdateAccountCapabilitiesGrabpayPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ideal_payments: Option<Box<UpdateAccountCapabilitiesIdealPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub jcb_payments: Option<Box<UpdateAccountCapabilitiesJcbPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub klarna_payments: Option<Box<UpdateAccountCapabilitiesKlarnaPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub legacy_payments: Option<Box<UpdateAccountCapabilitiesLegacyPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub oxxo_payments: Option<Box<UpdateAccountCapabilitiesOxxoPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub p24_payments: Option<Box<UpdateAccountCapabilitiesP24Payments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sepa_debit_payments: Option<Box<UpdateAccountCapabilitiesSepaDebitPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sofort_payments: Option<Box<UpdateAccountCapabilitiesSofortPayments>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_reporting_us_1099_k: Option<Box<UpdateAccountCapabilitiesTaxReportingUs1099K>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_reporting_us_1099_misc: Option<Box<UpdateAccountCapabilitiesTaxReportingUs1099Misc>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub transfers: Option<Box<UpdateAccountCapabilitiesTransfers>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountDocuments {
#[serde(skip_serializing_if = "Option::is_none")]
pub bank_account_ownership_verification:
Option<Box<UpdateAccountDocumentsBankAccountOwnershipVerification>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company_license: Option<Box<UpdateAccountDocumentsCompanyLicense>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company_memorandum_of_association:
Option<Box<UpdateAccountDocumentsCompanyMemorandumOfAssociation>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company_ministerial_decree: Option<Box<UpdateAccountDocumentsCompanyMinisterialDecree>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company_registration_verification:
Option<Box<UpdateAccountDocumentsCompanyRegistrationVerification>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company_tax_id_verification: Option<Box<UpdateAccountDocumentsCompanyTaxIdVerification>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub proof_of_registration: Option<Box<UpdateAccountDocumentsProofOfRegistration>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountSettingsParamsCardIssuing {
#[serde(skip_serializing_if = "Option::is_none")]
pub tos_acceptance: Option<Box<AccountSettingsParamsCardIssuingTosAcceptance>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct BrandingSettingsParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub icon: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub logo: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub primary_color: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub secondary_color: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CardPaymentsSettingsParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub decline_on: Option<Box<DeclineChargeOnParams>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statement_descriptor_prefix: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CompanyParamsOwnershipDeclaration {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<Box<Timestamp>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_agent: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CompanyVerificationParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub document: Option<VerificationDocumentParams>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesAcssDebitPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesAfterpayClearpayPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesAuBecsDebitPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesBacsDebitPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesBancontactPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesBoletoPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesCardIssuing {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesCardPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesCartesBancairesPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesEpsPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesFpxPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesGiropayPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesGrabpayPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesIdealPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesJcbPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesKlarnaPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesLegacyPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesOxxoPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesP24Payments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesSepaDebitPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesSofortPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesTaxReportingUs1099K {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesTaxReportingUs1099Misc {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountCapabilitiesTransfers {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountDocumentsBankAccountOwnershipVerification {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountDocumentsCompanyLicense {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountDocumentsCompanyMemorandumOfAssociation {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountDocumentsCompanyMinisterialDecree {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountDocumentsCompanyRegistrationVerification {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountDocumentsCompanyTaxIdVerification {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct CreateAccountDocumentsProofOfRegistration {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct PaymentsSettingsParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub statement_descriptor: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statement_descriptor_kana: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statement_descriptor_kanji: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct PayoutSettingsParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub debit_negative_balances: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule: Option<Box<TransferScheduleParams>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statement_descriptor: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct PersonParamsDob {
pub day: i64,
pub month: i64,
pub year: i64,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesAcssDebitPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesAfterpayClearpayPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesAuBecsDebitPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesBacsDebitPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesBancontactPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesBoletoPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesCardIssuing {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesCardPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesCartesBancairesPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesEpsPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesFpxPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesGiropayPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesGrabpayPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesIdealPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesJcbPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesKlarnaPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesLegacyPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesOxxoPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesP24Payments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesSepaDebitPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesSofortPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesTaxReportingUs1099K {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesTaxReportingUs1099Misc {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountCapabilitiesTransfers {
#[serde(skip_serializing_if = "Option::is_none")]
pub requested: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountDocumentsBankAccountOwnershipVerification {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountDocumentsCompanyLicense {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountDocumentsCompanyMemorandumOfAssociation {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountDocumentsCompanyMinisterialDecree {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountDocumentsCompanyRegistrationVerification {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountDocumentsCompanyTaxIdVerification {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct UpdateAccountDocumentsProofOfRegistration {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Box<Vec<String>>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccountSettingsParamsCardIssuingTosAcceptance {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<Box<Timestamp>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<Box<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_agent: Option<Box<String>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct DeclineChargeOnParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub avs_failure: Option<Box<bool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cvc_failure: Option<Box<bool>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct TransferScheduleParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub delay_days: Option<DelayDays>,
#[serde(skip_serializing_if = "Option::is_none")]
pub interval: Option<Box<TransferScheduleInterval>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub monthly_anchor: Option<Box<u8>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub weekly_anchor: Option<Box<TransferScheduleParamsWeeklyAnchor>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(tag = "object", rename_all = "snake_case")]
pub enum ExternalAccount {
BankAccount(BankAccount),
Card(Card),
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountBusinessType {
Company,
GovernmentEntity,
Individual,
NonProfit,
}
impl AccountBusinessType {
pub fn as_str(self) -> &'static str {
match self {
AccountBusinessType::Company => "company",
AccountBusinessType::GovernmentEntity => "government_entity",
AccountBusinessType::Individual => "individual",
AccountBusinessType::NonProfit => "non_profit",
}
}
}
impl AsRef<str> for AccountBusinessType {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountBusinessType {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesAcssDebitPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesAcssDebitPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesAcssDebitPayments::Active => "active",
AccountCapabilitiesAcssDebitPayments::Inactive => "inactive",
AccountCapabilitiesAcssDebitPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesAcssDebitPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesAcssDebitPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesAfterpayClearpayPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesAfterpayClearpayPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesAfterpayClearpayPayments::Active => "active",
AccountCapabilitiesAfterpayClearpayPayments::Inactive => "inactive",
AccountCapabilitiesAfterpayClearpayPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesAfterpayClearpayPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesAfterpayClearpayPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesBacsDebitPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesBacsDebitPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesBacsDebitPayments::Active => "active",
AccountCapabilitiesBacsDebitPayments::Inactive => "inactive",
AccountCapabilitiesBacsDebitPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesBacsDebitPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesBacsDebitPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesBancontactPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesBancontactPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesBancontactPayments::Active => "active",
AccountCapabilitiesBancontactPayments::Inactive => "inactive",
AccountCapabilitiesBancontactPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesBancontactPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesBancontactPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesBoletoPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesBoletoPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesBoletoPayments::Active => "active",
AccountCapabilitiesBoletoPayments::Inactive => "inactive",
AccountCapabilitiesBoletoPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesBoletoPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesBoletoPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesCartesBancairesPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesCartesBancairesPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesCartesBancairesPayments::Active => "active",
AccountCapabilitiesCartesBancairesPayments::Inactive => "inactive",
AccountCapabilitiesCartesBancairesPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesCartesBancairesPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesCartesBancairesPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesEpsPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesEpsPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesEpsPayments::Active => "active",
AccountCapabilitiesEpsPayments::Inactive => "inactive",
AccountCapabilitiesEpsPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesEpsPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesEpsPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesFpxPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesFpxPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesFpxPayments::Active => "active",
AccountCapabilitiesFpxPayments::Inactive => "inactive",
AccountCapabilitiesFpxPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesFpxPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesFpxPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesGiropayPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesGiropayPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesGiropayPayments::Active => "active",
AccountCapabilitiesGiropayPayments::Inactive => "inactive",
AccountCapabilitiesGiropayPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesGiropayPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesGiropayPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesGrabpayPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesGrabpayPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesGrabpayPayments::Active => "active",
AccountCapabilitiesGrabpayPayments::Inactive => "inactive",
AccountCapabilitiesGrabpayPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesGrabpayPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesGrabpayPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesIdealPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesIdealPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesIdealPayments::Active => "active",
AccountCapabilitiesIdealPayments::Inactive => "inactive",
AccountCapabilitiesIdealPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesIdealPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesIdealPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesKlarnaPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesKlarnaPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesKlarnaPayments::Active => "active",
AccountCapabilitiesKlarnaPayments::Inactive => "inactive",
AccountCapabilitiesKlarnaPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesKlarnaPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesKlarnaPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesOxxoPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesOxxoPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesOxxoPayments::Active => "active",
AccountCapabilitiesOxxoPayments::Inactive => "inactive",
AccountCapabilitiesOxxoPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesOxxoPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesOxxoPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesP24Payments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesP24Payments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesP24Payments::Active => "active",
AccountCapabilitiesP24Payments::Inactive => "inactive",
AccountCapabilitiesP24Payments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesP24Payments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesP24Payments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesSepaDebitPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesSepaDebitPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesSepaDebitPayments::Active => "active",
AccountCapabilitiesSepaDebitPayments::Inactive => "inactive",
AccountCapabilitiesSepaDebitPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesSepaDebitPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesSepaDebitPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountCapabilitiesSofortPayments {
Active,
Inactive,
Pending,
}
impl AccountCapabilitiesSofortPayments {
pub fn as_str(self) -> &'static str {
match self {
AccountCapabilitiesSofortPayments::Active => "active",
AccountCapabilitiesSofortPayments::Inactive => "inactive",
AccountCapabilitiesSofortPayments::Pending => "pending",
}
}
}
impl AsRef<str> for AccountCapabilitiesSofortPayments {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountCapabilitiesSofortPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountRequirementsErrorCode {
InvalidAddressCityStatePostalCode,
InvalidStreetAddress,
InvalidValueOther,
VerificationDocumentAddressMismatch,
VerificationDocumentAddressMissing,
VerificationDocumentCorrupt,
VerificationDocumentCountryNotSupported,
VerificationDocumentDobMismatch,
VerificationDocumentDuplicateType,
VerificationDocumentExpired,
VerificationDocumentFailedCopy,
VerificationDocumentFailedGreyscale,
VerificationDocumentFailedOther,
VerificationDocumentFailedTestMode,
VerificationDocumentFraudulent,
VerificationDocumentIdNumberMismatch,
VerificationDocumentIdNumberMissing,
VerificationDocumentIncomplete,
VerificationDocumentInvalid,
VerificationDocumentIssueOrExpiryDateMissing,
VerificationDocumentManipulated,
VerificationDocumentMissingBack,
VerificationDocumentMissingFront,
VerificationDocumentNameMismatch,
VerificationDocumentNameMissing,
VerificationDocumentNationalityMismatch,
VerificationDocumentNotReadable,
VerificationDocumentNotSigned,
VerificationDocumentNotUploaded,
VerificationDocumentPhotoMismatch,
VerificationDocumentTooLarge,
VerificationDocumentTypeNotSupported,
VerificationFailedAddressMatch,
VerificationFailedBusinessIecNumber,
VerificationFailedDocumentMatch,
VerificationFailedIdNumberMatch,
VerificationFailedKeyedIdentity,
VerificationFailedKeyedMatch,
VerificationFailedNameMatch,
VerificationFailedOther,
VerificationFailedTaxIdMatch,
VerificationFailedTaxIdNotIssued,
VerificationMissingExecutives,
VerificationMissingOwners,
VerificationRequiresAdditionalMemorandumOfAssociations,
}
impl AccountRequirementsErrorCode {
pub fn as_str(self) -> &'static str {
match self {
AccountRequirementsErrorCode::InvalidAddressCityStatePostalCode => "invalid_address_city_state_postal_code",
AccountRequirementsErrorCode::InvalidStreetAddress => "invalid_street_address",
AccountRequirementsErrorCode::InvalidValueOther => "invalid_value_other",
AccountRequirementsErrorCode::VerificationDocumentAddressMismatch => "verification_document_address_mismatch",
AccountRequirementsErrorCode::VerificationDocumentAddressMissing => "verification_document_address_missing",
AccountRequirementsErrorCode::VerificationDocumentCorrupt => "verification_document_corrupt",
AccountRequirementsErrorCode::VerificationDocumentCountryNotSupported => "verification_document_country_not_supported",
AccountRequirementsErrorCode::VerificationDocumentDobMismatch => "verification_document_dob_mismatch",
AccountRequirementsErrorCode::VerificationDocumentDuplicateType => "verification_document_duplicate_type",
AccountRequirementsErrorCode::VerificationDocumentExpired => "verification_document_expired",
AccountRequirementsErrorCode::VerificationDocumentFailedCopy => "verification_document_failed_copy",
AccountRequirementsErrorCode::VerificationDocumentFailedGreyscale => "verification_document_failed_greyscale",
AccountRequirementsErrorCode::VerificationDocumentFailedOther => "verification_document_failed_other",
AccountRequirementsErrorCode::VerificationDocumentFailedTestMode => "verification_document_failed_test_mode",
AccountRequirementsErrorCode::VerificationDocumentFraudulent => "verification_document_fraudulent",
AccountRequirementsErrorCode::VerificationDocumentIdNumberMismatch => "verification_document_id_number_mismatch",
AccountRequirementsErrorCode::VerificationDocumentIdNumberMissing => "verification_document_id_number_missing",
AccountRequirementsErrorCode::VerificationDocumentIncomplete => "verification_document_incomplete",
AccountRequirementsErrorCode::VerificationDocumentInvalid => "verification_document_invalid",
AccountRequirementsErrorCode::VerificationDocumentIssueOrExpiryDateMissing => "verification_document_issue_or_expiry_date_missing",
AccountRequirementsErrorCode::VerificationDocumentManipulated => "verification_document_manipulated",
AccountRequirementsErrorCode::VerificationDocumentMissingBack => "verification_document_missing_back",
AccountRequirementsErrorCode::VerificationDocumentMissingFront => "verification_document_missing_front",
AccountRequirementsErrorCode::VerificationDocumentNameMismatch => "verification_document_name_mismatch",
AccountRequirementsErrorCode::VerificationDocumentNameMissing => "verification_document_name_missing",
AccountRequirementsErrorCode::VerificationDocumentNationalityMismatch => "verification_document_nationality_mismatch",
AccountRequirementsErrorCode::VerificationDocumentNotReadable => "verification_document_not_readable",
AccountRequirementsErrorCode::VerificationDocumentNotSigned => "verification_document_not_signed",
AccountRequirementsErrorCode::VerificationDocumentNotUploaded => "verification_document_not_uploaded",
AccountRequirementsErrorCode::VerificationDocumentPhotoMismatch => "verification_document_photo_mismatch",
AccountRequirementsErrorCode::VerificationDocumentTooLarge => "verification_document_too_large",
AccountRequirementsErrorCode::VerificationDocumentTypeNotSupported => "verification_document_type_not_supported",
AccountRequirementsErrorCode::VerificationFailedAddressMatch => "verification_failed_address_match",
AccountRequirementsErrorCode::VerificationFailedBusinessIecNumber => "verification_failed_business_iec_number",
AccountRequirementsErrorCode::VerificationFailedDocumentMatch => "verification_failed_document_match",
AccountRequirementsErrorCode::VerificationFailedIdNumberMatch => "verification_failed_id_number_match",
AccountRequirementsErrorCode::VerificationFailedKeyedIdentity => "verification_failed_keyed_identity",
AccountRequirementsErrorCode::VerificationFailedKeyedMatch => "verification_failed_keyed_match",
AccountRequirementsErrorCode::VerificationFailedNameMatch => "verification_failed_name_match",
AccountRequirementsErrorCode::VerificationFailedOther => "verification_failed_other",
AccountRequirementsErrorCode::VerificationFailedTaxIdMatch => "verification_failed_tax_id_match",
AccountRequirementsErrorCode::VerificationFailedTaxIdNotIssued => "verification_failed_tax_id_not_issued",
AccountRequirementsErrorCode::VerificationMissingExecutives => "verification_missing_executives",
AccountRequirementsErrorCode::VerificationMissingOwners => "verification_missing_owners",
AccountRequirementsErrorCode::VerificationRequiresAdditionalMemorandumOfAssociations => "verification_requires_additional_memorandum_of_associations",
}
}
}
impl AsRef<str> for AccountRequirementsErrorCode {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountRequirementsErrorCode {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountType {
Custom,
Express,
Standard,
}
impl AccountType {
pub fn as_str(self) -> &'static str {
match self {
AccountType::Custom => "custom",
AccountType::Express => "express",
AccountType::Standard => "standard",
}
}
}
impl AsRef<str> for AccountType {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountType {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum AccountUnificationAccountControllerType {
Account,
Application,
}
impl AccountUnificationAccountControllerType {
pub fn as_str(self) -> &'static str {
match self {
AccountUnificationAccountControllerType::Account => "account",
AccountUnificationAccountControllerType::Application => "application",
}
}
}
impl AsRef<str> for AccountUnificationAccountControllerType {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for AccountUnificationAccountControllerType {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum CapabilityStatus {
Active,
Inactive,
Pending,
}
impl CapabilityStatus {
pub fn as_str(self) -> &'static str {
match self {
CapabilityStatus::Active => "active",
CapabilityStatus::Inactive => "inactive",
CapabilityStatus::Pending => "pending",
}
}
}
impl AsRef<str> for CapabilityStatus {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for CapabilityStatus {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum CompanyParamsStructure {
FreeZoneEstablishment,
FreeZoneLlc,
GovernmentInstrumentality,
GovernmentalUnit,
IncorporatedNonProfit,
LimitedLiabilityPartnership,
Llc,
MultiMemberLlc,
PrivateCompany,
PrivateCorporation,
PrivatePartnership,
PublicCompany,
PublicCorporation,
PublicPartnership,
SingleMemberLlc,
SoleEstablishment,
SoleProprietorship,
TaxExemptGovernmentInstrumentality,
UnincorporatedAssociation,
UnincorporatedNonProfit,
}
impl CompanyParamsStructure {
pub fn as_str(self) -> &'static str {
match self {
CompanyParamsStructure::FreeZoneEstablishment => "free_zone_establishment",
CompanyParamsStructure::FreeZoneLlc => "free_zone_llc",
CompanyParamsStructure::GovernmentInstrumentality => "government_instrumentality",
CompanyParamsStructure::GovernmentalUnit => "governmental_unit",
CompanyParamsStructure::IncorporatedNonProfit => "incorporated_non_profit",
CompanyParamsStructure::LimitedLiabilityPartnership => "limited_liability_partnership",
CompanyParamsStructure::Llc => "llc",
CompanyParamsStructure::MultiMemberLlc => "multi_member_llc",
CompanyParamsStructure::PrivateCompany => "private_company",
CompanyParamsStructure::PrivateCorporation => "private_corporation",
CompanyParamsStructure::PrivatePartnership => "private_partnership",
CompanyParamsStructure::PublicCompany => "public_company",
CompanyParamsStructure::PublicCorporation => "public_corporation",
CompanyParamsStructure::PublicPartnership => "public_partnership",
CompanyParamsStructure::SingleMemberLlc => "single_member_llc",
CompanyParamsStructure::SoleEstablishment => "sole_establishment",
CompanyParamsStructure::SoleProprietorship => "sole_proprietorship",
CompanyParamsStructure::TaxExemptGovernmentInstrumentality => {
"tax_exempt_government_instrumentality"
}
CompanyParamsStructure::UnincorporatedAssociation => "unincorporated_association",
CompanyParamsStructure::UnincorporatedNonProfit => "unincorporated_non_profit",
}
}
}
impl AsRef<str> for CompanyParamsStructure {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for CompanyParamsStructure {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum CompanyStructure {
FreeZoneEstablishment,
FreeZoneLlc,
GovernmentInstrumentality,
GovernmentalUnit,
IncorporatedNonProfit,
LimitedLiabilityPartnership,
Llc,
MultiMemberLlc,
PrivateCompany,
PrivateCorporation,
PrivatePartnership,
PublicCompany,
PublicCorporation,
PublicPartnership,
SingleMemberLlc,
SoleEstablishment,
SoleProprietorship,
TaxExemptGovernmentInstrumentality,
UnincorporatedAssociation,
UnincorporatedNonProfit,
}
impl CompanyStructure {
pub fn as_str(self) -> &'static str {
match self {
CompanyStructure::FreeZoneEstablishment => "free_zone_establishment",
CompanyStructure::FreeZoneLlc => "free_zone_llc",
CompanyStructure::GovernmentInstrumentality => "government_instrumentality",
CompanyStructure::GovernmentalUnit => "governmental_unit",
CompanyStructure::IncorporatedNonProfit => "incorporated_non_profit",
CompanyStructure::LimitedLiabilityPartnership => "limited_liability_partnership",
CompanyStructure::Llc => "llc",
CompanyStructure::MultiMemberLlc => "multi_member_llc",
CompanyStructure::PrivateCompany => "private_company",
CompanyStructure::PrivateCorporation => "private_corporation",
CompanyStructure::PrivatePartnership => "private_partnership",
CompanyStructure::PublicCompany => "public_company",
CompanyStructure::PublicCorporation => "public_corporation",
CompanyStructure::PublicPartnership => "public_partnership",
CompanyStructure::SingleMemberLlc => "single_member_llc",
CompanyStructure::SoleEstablishment => "sole_establishment",
CompanyStructure::SoleProprietorship => "sole_proprietorship",
CompanyStructure::TaxExemptGovernmentInstrumentality => {
"tax_exempt_government_instrumentality"
}
CompanyStructure::UnincorporatedAssociation => "unincorporated_association",
CompanyStructure::UnincorporatedNonProfit => "unincorporated_non_profit",
}
}
}
impl AsRef<str> for CompanyStructure {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for CompanyStructure {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum PersonParamsPoliticalExposure {
Existing,
None,
}
impl PersonParamsPoliticalExposure {
pub fn as_str(self) -> &'static str {
match self {
PersonParamsPoliticalExposure::Existing => "existing",
PersonParamsPoliticalExposure::None => "none",
}
}
}
impl AsRef<str> for PersonParamsPoliticalExposure {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for PersonParamsPoliticalExposure {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum TransferScheduleInterval {
Daily,
Manual,
Monthly,
Weekly,
}
impl TransferScheduleInterval {
pub fn as_str(self) -> &'static str {
match self {
TransferScheduleInterval::Daily => "daily",
TransferScheduleInterval::Manual => "manual",
TransferScheduleInterval::Monthly => "monthly",
TransferScheduleInterval::Weekly => "weekly",
}
}
}
impl AsRef<str> for TransferScheduleInterval {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for TransferScheduleInterval {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum TransferScheduleParamsWeeklyAnchor {
Friday,
Monday,
Saturday,
Sunday,
Thursday,
Tuesday,
Wednesday,
}
impl TransferScheduleParamsWeeklyAnchor {
pub fn as_str(self) -> &'static str {
match self {
TransferScheduleParamsWeeklyAnchor::Friday => "friday",
TransferScheduleParamsWeeklyAnchor::Monday => "monday",
TransferScheduleParamsWeeklyAnchor::Saturday => "saturday",
TransferScheduleParamsWeeklyAnchor::Sunday => "sunday",
TransferScheduleParamsWeeklyAnchor::Thursday => "thursday",
TransferScheduleParamsWeeklyAnchor::Tuesday => "tuesday",
TransferScheduleParamsWeeklyAnchor::Wednesday => "wednesday",
}
}
}
impl AsRef<str> for TransferScheduleParamsWeeklyAnchor {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl std::fmt::Display for TransferScheduleParamsWeeklyAnchor {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
self.as_str().fmt(f)
}
}