22
33from __future__ import annotations
44
5- from typing_extensions import Required , TypedDict
5+ from typing import Union
6+ from datetime import date
7+ from typing_extensions import Literal , Required , Annotated , TypedDict
68
7- __all__ = ["BeneficialOwnerUpdateParams" , "Address" ]
9+ from .._utils import PropertyInfo
10+
11+ __all__ = [
12+ "BeneficialOwnerUpdateParams" ,
13+ "Address" ,
14+ "Identification" ,
15+ "IdentificationDriversLicense" ,
16+ "IdentificationOther" ,
17+ "IdentificationPassport" ,
18+ ]
819
920
1021class BeneficialOwnerUpdateParams (TypedDict , total = False ):
@@ -14,6 +25,17 @@ class BeneficialOwnerUpdateParams(TypedDict, total=False):
1425 Mail receiving locations like PO Boxes and PMB's are disallowed.
1526 """
1627
28+ confirmed_no_us_tax_id : bool
29+ """
30+ The identification method for an individual can only be a passport, driver's
31+ license, or other document if you've confirmed the individual does not have a US
32+ tax id (either a Social Security Number or Individual Taxpayer Identification
33+ Number).
34+ """
35+
36+ identification : Identification
37+ """A means of verifying the person's identity."""
38+
1739
1840class Address (TypedDict , total = False ):
1941 """The individual's physical address.
@@ -41,3 +63,116 @@ class Address(TypedDict, total=False):
4163
4264 zip : str
4365 """The ZIP or postal code of the address. Required in certain countries."""
66+
67+
68+ class IdentificationDriversLicense (TypedDict , total = False ):
69+ """Information about the United States driver's license used for identification.
70+
71+ Required if `method` is equal to `drivers_license`.
72+ """
73+
74+ expiration_date : Required [Annotated [Union [str , date ], PropertyInfo (format = "iso8601" )]]
75+ """The driver's license's expiration date in YYYY-MM-DD format."""
76+
77+ file_id : Required [str ]
78+ """The identifier of the File containing the front of the driver's license."""
79+
80+ state : Required [str ]
81+ """The state that issued the provided driver's license."""
82+
83+ back_file_id : str
84+ """The identifier of the File containing the back of the driver's license."""
85+
86+
87+ class IdentificationOther (TypedDict , total = False ):
88+ """Information about the identification document provided.
89+
90+ Required if `method` is equal to `other`.
91+ """
92+
93+ country : Required [str ]
94+ """
95+ The two-character ISO 3166-1 code representing the country that issued the
96+ document (e.g., `US`).
97+ """
98+
99+ description : Required [str ]
100+ """A description of the document submitted."""
101+
102+ file_id : Required [str ]
103+ """The identifier of the File containing the front of the document."""
104+
105+ back_file_id : str
106+ """The identifier of the File containing the back of the document.
107+
108+ Not every document has a reverse side.
109+ """
110+
111+ expiration_date : Annotated [Union [str , date ], PropertyInfo (format = "iso8601" )]
112+ """The document's expiration date in YYYY-MM-DD format."""
113+
114+
115+ class IdentificationPassport (TypedDict , total = False ):
116+ """Information about the passport used for identification.
117+
118+ Required if `method` is equal to `passport`.
119+ """
120+
121+ country : Required [str ]
122+ """
123+ The two-character ISO 3166-1 code representing the country that issued the
124+ document (e.g., `US`).
125+ """
126+
127+ expiration_date : Required [Annotated [Union [str , date ], PropertyInfo (format = "iso8601" )]]
128+ """The passport's expiration date in YYYY-MM-DD format."""
129+
130+ file_id : Required [str ]
131+ """The identifier of the File containing the passport."""
132+
133+
134+ class Identification (TypedDict , total = False , extra_items = object ): # type: ignore[call-arg]
135+ """A means of verifying the person's identity."""
136+
137+ method : Required [
138+ Literal [
139+ "social_security_number" ,
140+ "individual_taxpayer_identification_number" ,
141+ "passport" ,
142+ "drivers_license" ,
143+ "other" ,
144+ ]
145+ ]
146+ """A method that can be used to verify the individual's identity.
147+
148+ - `social_security_number` - A social security number.
149+ - `individual_taxpayer_identification_number` - An individual taxpayer
150+ identification number (ITIN).
151+ - `passport` - A passport number.
152+ - `drivers_license` - A driver's license number.
153+ - `other` - Another identifying document.
154+ """
155+
156+ number : Required [str ]
157+ """
158+ An identification number that can be used to verify the individual's identity,
159+ such as a social security number.
160+ """
161+
162+ drivers_license : IdentificationDriversLicense
163+ """Information about the United States driver's license used for identification.
164+
165+ Required if `method` is equal to `drivers_license`.
166+ """
167+
168+ other : IdentificationOther
169+ """Information about the identification document provided.
170+
171+ Required if `method` is equal to `other`.
172+ """
173+
174+ passport : IdentificationPassport
175+ """Information about the passport used for identification.
176+
177+ Required if `method` is equal to `passport`.
178+ """
0 commit comments