1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
use serde::{Serialize, Deserialize};
use super::DocType;
///An object representing metadata from the end user's uploaded document.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DocumentMetadata {
///An identifier of the document that is also present in the paystub response.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub doc_id: Option<String>,
/**The type of document.
`DOCUMENT_TYPE_PAYSTUB`: A paystub.
`DOCUMENT_TYPE_BANK_STATEMENT`: A bank statement.
`DOCUMENT_TYPE_US_TAX_W2`: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee.
`DOCUMENT_TYPE_US_MILITARY_ERAS`: An electronic Retirement Account Statement (eRAS) issued by the US military.
`DOCUMENT_TYPE_US_MILITARY_LES`: A Leave and Earnings Statement (LES) issued by the US military.
`DOCUMENT_TYPE_US_MILITARY_CLES`: A Civilian Leave and Earnings Statement (CLES) issued by the US military.
`DOCUMENT_TYPE_GIG`: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type.
`DOCUMENT_TYPE_NONE`: Used to indicate that there is no underlying document for the data.
`DOCUMENT_TYPE_PLAID_GENERATED_PAYSTUB_PDF`: Used to indicate that the PDF for the paystub was generated by Plaid.
`UNKNOWN`: Document type could not be determined.*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub doc_type: Option<DocType>,
///The name of the document.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/**The processing status of the document.
`PROCESSING_COMPLETE`: The document was successfully processed.
`DOCUMENT_ERROR`: The document could not be processed. Possible causes include: The document was an unacceptable document type such as an offer letter or bank statement, the document image was cropped or blurry, or the document was corrupted.
`UNKNOWN` or `null`: An internal error occurred. If this happens repeatedly, contact support or your Plaid account manager.*/
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
impl std::fmt::Display for DocumentMetadata {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
write!(f, "{}", serde_json::to_string(self).unwrap())
}
}