tosspayments/data/
cash_receipt.rs

1use serde::{Deserialize, Serialize};
2
3use crate::data::Failure;
4
5#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
6pub enum CashReceiptType {
7  #[serde(rename = "소득공제")]
8  Consumer,
9  #[serde(rename = "지출증빙")]
10  Business,
11}
12
13#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
14#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
15pub enum CashReceiptIssueStatus {
16  InProgress,
17  Completed,
18  Failed,
19}
20
21#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
22#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
23pub enum CashReceiptTransactionType {
24  Confirm,
25  Cancel,
26}
27
28#[derive(Clone, Debug, Serialize, Deserialize)]
29#[serde(rename_all = "camelCase")]
30pub struct CashReceipt {
31  pub receipt_key: String,
32  pub issue_number: String,
33  pub issue_status: CashReceiptIssueStatus,
34  pub amount: i32,
35  pub tax_free_amount: i32,
36  pub order_id: String,
37  pub order_name: String,
38  pub r#type: CashReceiptType,
39  pub transaction_type: CashReceiptTransactionType,
40  pub business_number: String,
41  pub customer_identity_number: String,
42  pub failure: Option<Failure>,
43  pub requested_at: String,
44  pub receipt_url: String,
45}