/*
* Zernio API
*
* API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema). Request ids: responses carry an X-Request-Id header with the id we log the request under. Quote it when reporting a problem. A valid x-request-id you send is reused as that id.
*
* The version of the OpenAPI document: 1.522.0
* Contact: support@zernio.com
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateTopup201Response {
#[serde(rename = "topupId")]
pub topup_id: String,
/// Credited to your balance once paid.
#[serde(rename = "amountCents")]
pub amount_cents: i32,
/// Tax added on top of amountCents (VAT where it applies). 0 when reverse charged or outside the EU.
#[serde(rename = "taxCents")]
pub tax_cents: i32,
/// What the card is charged: amountCents + taxCents.
#[serde(rename = "totalCents")]
pub total_cents: i32,
/// The tax and its rate, for example \"VAT 21%\". Null when no tax is charged.
#[serde(rename = "taxLabel", deserialize_with = "Option::deserialize")]
pub tax_label: Option<String>,
/// True for an EU business whose VAT id VIES confirms: no VAT is charged and the invoice says reverse charge (inversión del sujeto pasivo).
#[serde(rename = "reverseCharge")]
pub reverse_charge: bool,
/// Always 0: there is no card fee. Kept for older clients.
#[serde(rename = "feeCents")]
pub fee_cents: i32,
/// Same as totalCents. Kept for older clients.
#[serde(rename = "chargedCents")]
pub charged_cents: i32,
/// Always true. Kept for older clients.
#[serde(rename = "feeIsExact")]
pub fee_is_exact: bool,
#[serde(rename = "status")]
pub status: Status,
/// PaymentIntent client secret for Stripe.js handleNextAction; set only when status is requires_action
#[serde(rename = "clientSecret", deserialize_with = "Option::deserialize")]
pub client_secret: Option<String>,
}
impl CreateTopup201Response {
pub fn new(
topup_id: String,
amount_cents: i32,
tax_cents: i32,
total_cents: i32,
tax_label: Option<String>,
reverse_charge: bool,
fee_cents: i32,
charged_cents: i32,
fee_is_exact: bool,
status: Status,
client_secret: Option<String>,
) -> CreateTopup201Response {
CreateTopup201Response {
topup_id,
amount_cents,
tax_cents,
total_cents,
tax_label,
reverse_charge,
fee_cents,
charged_cents,
fee_is_exact,
status,
client_secret,
}
}
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "succeeded")]
Succeeded,
#[serde(rename = "processing")]
Processing,
#[serde(rename = "requires_action")]
RequiresAction,
}
impl Default for Status {
fn default() -> Status {
Self::Succeeded
}
}