gr4vy 1.1.29__py3-none-any.whl → 1.10.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. gr4vy/_version.py +3 -3
  2. gr4vy/account_updater.py +6 -3
  3. gr4vy/actions.py +307 -0
  4. gr4vy/all.py +4 -2
  5. gr4vy/audit_logs.py +6 -4
  6. gr4vy/balances.py +4 -2
  7. gr4vy/basesdk.py +17 -1
  8. gr4vy/buyers_gift_cards.py +4 -2
  9. gr4vy/buyers_payment_methods.py +4 -2
  10. gr4vy/buyers_sdk.py +43 -25
  11. gr4vy/buyers_shipping_details.py +26 -16
  12. gr4vy/card_scheme_definitions_sdk.py +4 -2
  13. gr4vy/checkout_sessions.py +40 -14
  14. gr4vy/digital_wallets_sdk.py +32 -20
  15. gr4vy/domains.py +14 -10
  16. gr4vy/errors/__init__.py +15 -3
  17. gr4vy/errors/apierror.py +2 -0
  18. gr4vy/errors/error400.py +4 -6
  19. gr4vy/errors/error401.py +4 -6
  20. gr4vy/errors/error403.py +4 -6
  21. gr4vy/errors/error404.py +4 -6
  22. gr4vy/errors/error405.py +4 -6
  23. gr4vy/errors/error409.py +4 -6
  24. gr4vy/errors/error425.py +4 -6
  25. gr4vy/errors/error429.py +4 -6
  26. gr4vy/errors/error500.py +4 -6
  27. gr4vy/errors/error502.py +4 -6
  28. gr4vy/errors/error504.py +4 -6
  29. gr4vy/errors/gr4vyerror.py +11 -7
  30. gr4vy/errors/httpvalidationerror.py +4 -2
  31. gr4vy/errors/no_response_error.py +5 -1
  32. gr4vy/errors/responsevalidationerror.py +2 -0
  33. gr4vy/events.py +54 -7
  34. gr4vy/executions.py +38 -8
  35. gr4vy/gift_cards_sdk.py +29 -19
  36. gr4vy/httpclient.py +0 -1
  37. gr4vy/jobs.py +4 -2
  38. gr4vy/merchant_accounts_sdk.py +30 -10
  39. gr4vy/models/__init__.py +184 -30
  40. gr4vy/models/adyenautorescuesepascenariosenum.py +3 -1
  41. gr4vy/models/adyencardoptions.py +9 -6
  42. gr4vy/models/adyensepaoptions.py +1 -6
  43. gr4vy/models/adyensplitsoptions.py +57 -0
  44. gr4vy/models/airline.py +9 -8
  45. gr4vy/models/airlineleg.py +9 -7
  46. gr4vy/models/airlinepassenger.py +9 -7
  47. gr4vy/models/antifrauddecision.py +9 -1
  48. gr4vy/models/approvaltarget.py +7 -1
  49. gr4vy/models/auditlogaction.py +9 -1
  50. gr4vy/models/auditlogentry.py +3 -3
  51. gr4vy/models/auditlogentryuser.py +3 -3
  52. gr4vy/models/{billingdetails_input.py → billingdetails.py} +2 -2
  53. gr4vy/models/braintreedynamicdatafieldsoptions.py +33 -3
  54. gr4vy/models/browserinfo.py +9 -5
  55. gr4vy/models/buyer.py +3 -3
  56. gr4vy/models/buyercreate.py +3 -3
  57. gr4vy/models/buyerupdate.py +3 -3
  58. gr4vy/models/cancel_transactionop.py +43 -0
  59. gr4vy/models/cancelstatus.py +15 -0
  60. gr4vy/models/capturestatus.py +7 -1
  61. gr4vy/models/cardtype.py +8 -1
  62. gr4vy/models/cartitem.py +53 -8
  63. gr4vy/models/chaseoptions.py +46 -0
  64. gr4vy/models/checkoutsession.py +24 -3
  65. gr4vy/models/checkoutsessioncreate.py +39 -5
  66. gr4vy/models/checkoutsessionpaymentmethod.py +3 -5
  67. gr4vy/models/checkoutsessionpaymentmethoddetails.py +2 -6
  68. gr4vy/models/create_payment_methodop.py +6 -0
  69. gr4vy/models/create_report_execution_urlop.py +16 -1
  70. gr4vy/models/createsession.py +3 -3
  71. gr4vy/models/createsessionstatus.py +7 -1
  72. gr4vy/models/cvvresponsecode.py +7 -1
  73. gr4vy/models/cybersourceoptions.py +7 -0
  74. gr4vy/models/definitionfield.py +1 -6
  75. gr4vy/models/definitionfieldformat.py +8 -1
  76. gr4vy/models/digitalwallet.py +3 -5
  77. gr4vy/models/digitalwalletcreate.py +2 -6
  78. gr4vy/models/digitalwalletprovider.py +6 -1
  79. gr4vy/models/dlocalupioptions.py +50 -0
  80. gr4vy/models/dlocalupirecurringinfooptions.py +47 -0
  81. gr4vy/models/dlocalupiwalletoptions.py +89 -0
  82. gr4vy/models/errordetail.py +2 -4
  83. gr4vy/models/errorlocation.py +8 -1
  84. gr4vy/models/flow.py +16 -0
  85. gr4vy/models/flowaction.py +16 -0
  86. gr4vy/models/forterantifraudoptions.py +8 -8
  87. gr4vy/models/forterantifraudoptionscartitembasicitemdata.py +10 -8
  88. gr4vy/models/forterantifraudoptionscartitemdeliverydetails.py +9 -7
  89. gr4vy/models/giftcardredemption.py +4 -8
  90. gr4vy/models/giftcardredemptionstatus.py +7 -1
  91. gr4vy/models/giftcardservice.py +3 -5
  92. gr4vy/models/giftcardserviceprovider.py +5 -1
  93. gr4vy/models/giftcardsummary.py +3 -5
  94. gr4vy/models/{guestbuyer_input.py → guestbuyer.py} +5 -5
  95. gr4vy/models/instrumenttype.py +1 -0
  96. gr4vy/models/integrationclient.py +16 -0
  97. gr4vy/models/internal/__init__.py +14 -1
  98. gr4vy/models/list_all_report_executionsop.py +2 -14
  99. gr4vy/models/list_audit_logsop.py +2 -10
  100. gr4vy/models/list_buyer_payment_methodsop.py +9 -4
  101. gr4vy/models/list_payment_methodsop.py +2 -14
  102. gr4vy/models/list_payment_servicesop.py +2 -8
  103. gr4vy/models/list_reportsop.py +2 -10
  104. gr4vy/models/list_transaction_actionsop.py +43 -0
  105. gr4vy/models/list_transaction_eventsop.py +12 -1
  106. gr4vy/models/list_transactionsop.py +14 -22
  107. gr4vy/models/merchantaccount.py +9 -5
  108. gr4vy/models/merchantaccountcreate.py +8 -6
  109. gr4vy/models/merchantaccountupdate.py +8 -6
  110. gr4vy/models/merchantprofilescheme.py +7 -7
  111. gr4vy/models/merchantprofileschemesummary.py +7 -7
  112. gr4vy/models/method.py +4 -0
  113. gr4vy/models/mockcardoptions.py +7 -2
  114. gr4vy/models/mode.py +1 -0
  115. gr4vy/models/monatospeioptions.py +15 -0
  116. gr4vy/models/networktoken.py +3 -3
  117. gr4vy/models/networktokenpaymentmethodcreate.py +11 -9
  118. gr4vy/models/networktokenstatus.py +7 -1
  119. gr4vy/models/nuveiidealoptions.py +49 -0
  120. gr4vy/models/nuveipseoptions.py +70 -0
  121. gr4vy/models/paymentlink.py +25 -7
  122. gr4vy/models/paymentlinkcreate.py +23 -28
  123. gr4vy/models/paymentlinkstatus.py +7 -1
  124. gr4vy/models/paymentmethod.py +7 -13
  125. gr4vy/models/paymentmethodcard.py +3 -5
  126. gr4vy/models/paymentmethoddetailscard.py +2 -6
  127. gr4vy/models/paymentmethodstatus.py +7 -1
  128. gr4vy/models/paymentmethodsummary.py +6 -12
  129. gr4vy/models/paymentoption.py +3 -3
  130. gr4vy/models/paymentservice.py +4 -6
  131. gr4vy/models/paymentserviceconfiguration.py +2 -6
  132. gr4vy/models/paymentservicedefinition.py +11 -5
  133. gr4vy/models/paymentservicestatus.py +8 -1
  134. gr4vy/models/paymentservicetoken.py +3 -3
  135. gr4vy/models/payoutcategory.py +1 -1
  136. gr4vy/models/payoutcreate.py +5 -9
  137. gr4vy/models/payoutstatus.py +7 -1
  138. gr4vy/models/payoutsummary.py +4 -6
  139. gr4vy/models/paypaloptions.py +8 -2
  140. gr4vy/models/paypalshippingoptions.py +51 -0
  141. gr4vy/models/paypalshippingoptionsitem.py +89 -0
  142. gr4vy/models/paypalshippingoptionsitemamount.py +20 -0
  143. gr4vy/models/plaidpaymentmethodcreate.py +106 -0
  144. gr4vy/models/redirectpaymentmethodcreate.py +4 -6
  145. gr4vy/models/refund.py +4 -4
  146. gr4vy/models/refundstatus.py +8 -1
  147. gr4vy/models/refundtargettype.py +5 -1
  148. gr4vy/models/report.py +4 -6
  149. gr4vy/models/reportcreate.py +2 -3
  150. gr4vy/models/reportcreatortype.py +7 -1
  151. gr4vy/models/reportexecution.py +3 -3
  152. gr4vy/models/reportexecutionstatus.py +7 -1
  153. gr4vy/models/reportexecutionsummary.py +3 -3
  154. gr4vy/models/reportexecutionurlgenerate.py +16 -0
  155. gr4vy/models/reportschedule.py +9 -1
  156. gr4vy/models/reportspec.py +2 -4
  157. gr4vy/models/reportsummary.py +3 -5
  158. gr4vy/models/settlement.py +32 -32
  159. gr4vy/models/statementdescriptor.py +7 -0
  160. gr4vy/models/stripeconnectoptions.py +7 -0
  161. gr4vy/models/taxid.py +2 -4
  162. gr4vy/models/taxidkind.py +7 -0
  163. gr4vy/models/threedsecuredatav1.py +2 -6
  164. gr4vy/models/threedsecuredatav2.py +2 -6
  165. gr4vy/models/threedsecuremethod.py +7 -1
  166. gr4vy/models/threedsecurestatus.py +7 -1
  167. gr4vy/models/transaction.py +86 -25
  168. gr4vy/models/transactionaction.py +48 -0
  169. gr4vy/models/transactionactions.py +17 -0
  170. gr4vy/models/transactionbuyer.py +3 -3
  171. gr4vy/models/transactioncancel.py +81 -0
  172. gr4vy/models/transactioncapture.py +3 -3
  173. gr4vy/models/transactionconnectionoptions.py +50 -0
  174. gr4vy/models/transactioncreate.py +76 -12
  175. gr4vy/models/transactionevent.py +10 -3
  176. gr4vy/models/transactionintent.py +7 -1
  177. gr4vy/models/transactionintentoutcome.py +6 -1
  178. gr4vy/models/transactionpaymentmethod.py +6 -12
  179. gr4vy/models/transactionpaymentservice.py +3 -3
  180. gr4vy/models/transactionpaymentsource.py +7 -1
  181. gr4vy/models/transactionrefundcreate.py +2 -6
  182. gr4vy/models/transactionsummary.py +11 -10
  183. gr4vy/models/transactionthreedsecuresummary.py +3 -9
  184. gr4vy/models/transactionvoid.py +3 -3
  185. gr4vy/models/userstatus.py +8 -1
  186. gr4vy/models/voidstatus.py +7 -1
  187. gr4vy/network_tokens_cryptogram.py +4 -2
  188. gr4vy/payment_links_sdk.py +36 -16
  189. gr4vy/payment_methods_network_tokens.py +27 -13
  190. gr4vy/payment_methods_payment_service_tokens.py +12 -6
  191. gr4vy/payment_methods_sdk.py +26 -14
  192. gr4vy/payment_options_sdk.py +4 -2
  193. gr4vy/payment_service_definitions_sdk.py +14 -8
  194. gr4vy/payment_services_sdk.py +36 -22
  195. gr4vy/payouts.py +18 -12
  196. gr4vy/refunds_sdk.py +4 -2
  197. gr4vy/report_executions_sdk.py +6 -4
  198. gr4vy/reports_sdk.py +23 -13
  199. gr4vy/sdk.py +17 -4
  200. gr4vy/sessions.py +12 -6
  201. gr4vy/transactions.py +446 -33
  202. gr4vy/transactions_refunds.py +17 -9
  203. gr4vy/transactions_settlements.py +8 -4
  204. gr4vy/types/basemodel.py +41 -3
  205. gr4vy/utils/__init__.py +15 -6
  206. gr4vy/utils/annotations.py +32 -8
  207. gr4vy/utils/enums.py +60 -0
  208. gr4vy/utils/eventstreaming.py +10 -0
  209. gr4vy/utils/forms.py +21 -10
  210. gr4vy/utils/queryparams.py +14 -2
  211. gr4vy/utils/requestbodies.py +1 -1
  212. gr4vy/utils/retries.py +69 -5
  213. gr4vy/utils/serializers.py +0 -20
  214. gr4vy/utils/unmarshal_json_response.py +15 -1
  215. {gr4vy-1.1.29.dist-info → gr4vy-1.10.9.dist-info}/METADATA +43 -41
  216. {gr4vy-1.1.29.dist-info → gr4vy-1.10.9.dist-info}/RECORD +217 -196
  217. {gr4vy-1.1.29.dist-info → gr4vy-1.10.9.dist-info}/WHEEL +1 -1
  218. gr4vy/models/billingdetails_output.py +0 -87
  219. gr4vy/models/guestbuyer_output.py +0 -80
@@ -3,10 +3,8 @@
3
3
  from __future__ import annotations
4
4
  from .reportspecmodel import ReportSpecModel
5
5
  from gr4vy.types import BaseModel
6
- from gr4vy.utils import validate_open_enum
7
- from pydantic.functional_validators import PlainValidator
8
6
  from typing import Any, Dict
9
- from typing_extensions import Annotated, TypedDict
7
+ from typing_extensions import TypedDict
10
8
 
11
9
 
12
10
  class ReportSpecTypedDict(TypedDict):
@@ -16,7 +14,7 @@ class ReportSpecTypedDict(TypedDict):
16
14
 
17
15
 
18
16
  class ReportSpec(BaseModel):
19
- model: Annotated[ReportSpecModel, PlainValidator(validate_open_enum(False))]
17
+ model: ReportSpecModel
20
18
 
21
19
  params: Dict[str, Any]
22
20
  r"""The parameters for the report model."""
@@ -3,10 +3,10 @@
3
3
  from __future__ import annotations
4
4
  from .reportcreatortype import ReportCreatorType
5
5
  from gr4vy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
- from gr4vy.utils import validate_const, validate_open_enum
6
+ from gr4vy.utils import validate_const
7
7
  import pydantic
8
8
  from pydantic import model_serializer
9
- from pydantic.functional_validators import AfterValidator, PlainValidator
9
+ from pydantic.functional_validators import AfterValidator
10
10
  from typing import Literal, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
@@ -52,9 +52,7 @@ class ReportSummary(BaseModel):
52
52
  creator_display_name: OptionalNullable[str] = UNSET
53
53
  r"""The display name of the report creator."""
54
54
 
55
- creator_type: Annotated[
56
- OptionalNullable[ReportCreatorType], PlainValidator(validate_open_enum(False))
57
- ] = UNSET
55
+ creator_type: OptionalNullable[ReportCreatorType] = UNSET
58
56
  r"""The type of the report creator."""
59
57
 
60
58
  @model_serializer(mode="wrap")
@@ -15,21 +15,21 @@ class SettlementTypedDict(TypedDict):
15
15
  r"""A settlement record for a transaction."""
16
16
 
17
17
  id: str
18
- r"""The unique identifier for the settlement."""
18
+ r"""The unique identifier for the record."""
19
19
  merchant_account_id: str
20
- r"""The merchant account this settlement belongs to."""
20
+ r"""The merchant account this record belongs to."""
21
21
  created_at: datetime
22
- r"""The date and time the settlement was created, in ISO 8601 format."""
22
+ r"""The date and time the record was created, in ISO 8601 format."""
23
23
  updated_at: datetime
24
- r"""The date and time the settlement was last updated, in ISO 8601 format."""
24
+ r"""The date and time the record was last updated, in ISO 8601 format."""
25
25
  posted_at: datetime
26
- r"""The date and time the settlement was posted, in ISO 8601 format."""
26
+ r"""The date and time the record was posted, in ISO 8601 format."""
27
27
  ingested_at: datetime
28
- r"""The date and time the settlement was ingested, in ISO 8601 format."""
28
+ r"""The date and time the record was ingested, in ISO 8601 format."""
29
29
  currency: str
30
- r"""ISO 4217 currency code for the settlement."""
30
+ r"""ISO 4217 currency code."""
31
31
  amount: int
32
- r"""The total settled amount in the smallest currency unit (e.g. cents)."""
32
+ r"""The total amount in the smallest currency unit (e.g. cents)."""
33
33
  commission: int
34
34
  r"""The commission amount deducted in the smallest currency unit."""
35
35
  payment_service_report_id: str
@@ -37,45 +37,45 @@ class SettlementTypedDict(TypedDict):
37
37
  payment_service_report_file_ids: List[str]
38
38
  r"""List of file IDs for the payment service report."""
39
39
  transaction_id: str
40
- r"""The transaction this settlement is associated with."""
41
- type: Literal["settlement"]
42
- r"""Always 'settlement'."""
40
+ r"""The transaction this record is associated with."""
43
41
  exchange_rate: NotRequired[Nullable[float]]
44
- r"""The exchange rate used for settlement, if applicable."""
42
+ r"""The exchange rate, if applicable."""
45
43
  interchange: NotRequired[Nullable[int]]
46
44
  r"""The interchange fee, if applicable, in the smallest currency unit."""
47
45
  markup: NotRequired[Nullable[int]]
48
46
  r"""The markup fee, if applicable, in the smallest currency unit."""
49
47
  scheme_fee: NotRequired[Nullable[int]]
50
48
  r"""The scheme fee, if applicable, in the smallest currency unit."""
49
+ type: Literal["settlement"]
50
+ r"""Always `settlement`."""
51
51
 
52
52
 
53
53
  class Settlement(BaseModel):
54
54
  r"""A settlement record for a transaction."""
55
55
 
56
56
  id: str
57
- r"""The unique identifier for the settlement."""
57
+ r"""The unique identifier for the record."""
58
58
 
59
59
  merchant_account_id: str
60
- r"""The merchant account this settlement belongs to."""
60
+ r"""The merchant account this record belongs to."""
61
61
 
62
62
  created_at: datetime
63
- r"""The date and time the settlement was created, in ISO 8601 format."""
63
+ r"""The date and time the record was created, in ISO 8601 format."""
64
64
 
65
65
  updated_at: datetime
66
- r"""The date and time the settlement was last updated, in ISO 8601 format."""
66
+ r"""The date and time the record was last updated, in ISO 8601 format."""
67
67
 
68
68
  posted_at: datetime
69
- r"""The date and time the settlement was posted, in ISO 8601 format."""
69
+ r"""The date and time the record was posted, in ISO 8601 format."""
70
70
 
71
71
  ingested_at: datetime
72
- r"""The date and time the settlement was ingested, in ISO 8601 format."""
72
+ r"""The date and time the record was ingested, in ISO 8601 format."""
73
73
 
74
74
  currency: str
75
- r"""ISO 4217 currency code for the settlement."""
75
+ r"""ISO 4217 currency code."""
76
76
 
77
77
  amount: int
78
- r"""The total settled amount in the smallest currency unit (e.g. cents)."""
78
+ r"""The total amount in the smallest currency unit (e.g. cents)."""
79
79
 
80
80
  commission: int
81
81
  r"""The commission amount deducted in the smallest currency unit."""
@@ -87,19 +87,10 @@ class Settlement(BaseModel):
87
87
  r"""List of file IDs for the payment service report."""
88
88
 
89
89
  transaction_id: str
90
- r"""The transaction this settlement is associated with."""
91
-
92
- TYPE: Annotated[
93
- Annotated[
94
- Optional[Literal["settlement"]],
95
- AfterValidator(validate_const("settlement")),
96
- ],
97
- pydantic.Field(alias="type"),
98
- ] = "settlement"
99
- r"""Always 'settlement'."""
90
+ r"""The transaction this record is associated with."""
100
91
 
101
92
  exchange_rate: OptionalNullable[float] = UNSET
102
- r"""The exchange rate used for settlement, if applicable."""
93
+ r"""The exchange rate, if applicable."""
103
94
 
104
95
  interchange: OptionalNullable[int] = UNSET
105
96
  r"""The interchange fee, if applicable, in the smallest currency unit."""
@@ -110,14 +101,23 @@ class Settlement(BaseModel):
110
101
  scheme_fee: OptionalNullable[int] = UNSET
111
102
  r"""The scheme fee, if applicable, in the smallest currency unit."""
112
103
 
104
+ TYPE: Annotated[
105
+ Annotated[
106
+ Optional[Literal["settlement"]],
107
+ AfterValidator(validate_const("settlement")),
108
+ ],
109
+ pydantic.Field(alias="type"),
110
+ ] = "settlement"
111
+ r"""Always `settlement`."""
112
+
113
113
  @model_serializer(mode="wrap")
114
114
  def serialize_model(self, handler):
115
115
  optional_fields = [
116
- "type",
117
116
  "exchange_rate",
118
117
  "interchange",
119
118
  "markup",
120
119
  "scheme_fee",
120
+ "type",
121
121
  ]
122
122
  nullable_fields = ["exchange_rate", "interchange", "markup", "scheme_fee"]
123
123
  null_default_fields = []
@@ -21,6 +21,8 @@ class StatementDescriptorTypedDict(TypedDict):
21
21
  r"""The value in the phone number field of a customer's statement which should be formatted according to the E164 number standard."""
22
22
  url: NotRequired[Nullable[str]]
23
23
  r"""The merchant's URL to be displayed in a statement descriptor."""
24
+ postal_code: NotRequired[Nullable[str]]
25
+ r"""The merchant's postal code or zip code."""
24
26
 
25
27
 
26
28
  class StatementDescriptor(BaseModel):
@@ -44,6 +46,9 @@ class StatementDescriptor(BaseModel):
44
46
  url: OptionalNullable[str] = UNSET
45
47
  r"""The merchant's URL to be displayed in a statement descriptor."""
46
48
 
49
+ postal_code: OptionalNullable[str] = UNSET
50
+ r"""The merchant's postal code or zip code."""
51
+
47
52
  @model_serializer(mode="wrap")
48
53
  def serialize_model(self, handler):
49
54
  optional_fields = [
@@ -53,6 +58,7 @@ class StatementDescriptor(BaseModel):
53
58
  "country",
54
59
  "phone_number",
55
60
  "url",
61
+ "postal_code",
56
62
  ]
57
63
  nullable_fields = [
58
64
  "name",
@@ -61,6 +67,7 @@ class StatementDescriptor(BaseModel):
61
67
  "country",
62
68
  "phone_number",
63
69
  "url",
70
+ "postal_code",
64
71
  ]
65
72
  null_default_fields = []
66
73
 
@@ -15,6 +15,8 @@ class StripeConnectOptionsTypedDict(TypedDict):
15
15
  r"""The Stripe Connect account to target using the `on_behalf_of` request parameter."""
16
16
  transfer_data_destination: NotRequired[Nullable[str]]
17
17
  r"""The Stripe Connect account to target using the `transfer_data.destination` request parameter."""
18
+ transfer_group: NotRequired[Nullable[str]]
19
+ r"""A string that identifies the payment as part of a group."""
18
20
 
19
21
 
20
22
  class StripeConnectOptions(BaseModel):
@@ -30,6 +32,9 @@ class StripeConnectOptions(BaseModel):
30
32
  transfer_data_destination: OptionalNullable[str] = UNSET
31
33
  r"""The Stripe Connect account to target using the `transfer_data.destination` request parameter."""
32
34
 
35
+ transfer_group: OptionalNullable[str] = UNSET
36
+ r"""A string that identifies the payment as part of a group."""
37
+
33
38
  @model_serializer(mode="wrap")
34
39
  def serialize_model(self, handler):
35
40
  optional_fields = [
@@ -37,12 +42,14 @@ class StripeConnectOptions(BaseModel):
37
42
  "application_fee_amount",
38
43
  "on_behalf_of",
39
44
  "transfer_data_destination",
45
+ "transfer_group",
40
46
  ]
41
47
  nullable_fields = [
42
48
  "stripe_account",
43
49
  "application_fee_amount",
44
50
  "on_behalf_of",
45
51
  "transfer_data_destination",
52
+ "transfer_group",
46
53
  ]
47
54
  null_default_fields = []
48
55
 
gr4vy/models/taxid.py CHANGED
@@ -3,9 +3,7 @@
3
3
  from __future__ import annotations
4
4
  from .taxidkind import TaxIDKind
5
5
  from gr4vy.types import BaseModel
6
- from gr4vy.utils import validate_open_enum
7
- from pydantic.functional_validators import PlainValidator
8
- from typing_extensions import Annotated, TypedDict
6
+ from typing_extensions import TypedDict
9
7
 
10
8
 
11
9
  class TaxIDTypedDict(TypedDict):
@@ -18,4 +16,4 @@ class TaxID(BaseModel):
18
16
  value: str
19
17
  r"""The tax ID for the buyer."""
20
18
 
21
- kind: Annotated[TaxIDKind, PlainValidator(validate_open_enum(False))]
19
+ kind: TaxIDKind
gr4vy/models/taxidkind.py CHANGED
@@ -24,6 +24,12 @@ TaxIDKind = Union[
24
24
  "cl.tin",
25
25
  "co.itin",
26
26
  "co.nit",
27
+ "co.cc",
28
+ "co.ce",
29
+ "co.de",
30
+ "co.rc",
31
+ "co.ti",
32
+ "co.passport",
27
33
  "es.cif",
28
34
  "eu.vat",
29
35
  "gb.vat",
@@ -31,6 +37,7 @@ TaxIDKind = Union[
31
37
  "id.nik",
32
38
  "id.npwp",
33
39
  "in.gst",
40
+ "in.pan",
34
41
  "jp.cn",
35
42
  "jp.rn",
36
43
  "kr.brn",
@@ -3,10 +3,8 @@
3
3
  from __future__ import annotations
4
4
  from .cardscheme import CardScheme
5
5
  from gr4vy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
- from gr4vy.utils import validate_open_enum
7
6
  from pydantic import model_serializer
8
- from pydantic.functional_validators import PlainValidator
9
- from typing_extensions import Annotated, NotRequired, TypedDict
7
+ from typing_extensions import NotRequired, TypedDict
10
8
 
11
9
 
12
10
  class ThreeDSecureDataV1TypedDict(TypedDict):
@@ -50,9 +48,7 @@ class ThreeDSecureDataV1(BaseModel):
50
48
  xid: str
51
49
  r"""The transaction identifier."""
52
50
 
53
- scheme: Annotated[
54
- OptionalNullable[CardScheme], PlainValidator(validate_open_enum(False))
55
- ] = UNSET
51
+ scheme: OptionalNullable[CardScheme] = UNSET
56
52
  r"""The scheme/brand of the card that is used for 3-D Secure."""
57
53
 
58
54
  @model_serializer(mode="wrap")
@@ -3,10 +3,8 @@
3
3
  from __future__ import annotations
4
4
  from .cardscheme import CardScheme
5
5
  from gr4vy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
- from gr4vy.utils import validate_open_enum
7
6
  from pydantic import model_serializer
8
- from pydantic.functional_validators import PlainValidator
9
- from typing_extensions import Annotated, NotRequired, TypedDict
7
+ from typing_extensions import NotRequired, TypedDict
10
8
 
11
9
 
12
10
  class ThreeDSecureDataV2TypedDict(TypedDict):
@@ -42,9 +40,7 @@ class ThreeDSecureDataV2(BaseModel):
42
40
  directory_transaction_id: str
43
41
  r"""The transaction identifier."""
44
42
 
45
- scheme: Annotated[
46
- OptionalNullable[CardScheme], PlainValidator(validate_open_enum(False))
47
- ] = UNSET
43
+ scheme: OptionalNullable[CardScheme] = UNSET
48
44
  r"""The scheme/brand of the card that is used for 3-D Secure."""
49
45
 
50
46
  authentication_response: OptionalNullable[str] = UNSET
@@ -5,4 +5,10 @@ from gr4vy.types import UnrecognizedStr
5
5
  from typing import Literal, Union
6
6
 
7
7
 
8
- ThreeDSecureMethod = Union[Literal["challenge", "frictionless"], UnrecognizedStr]
8
+ ThreeDSecureMethod = Union[
9
+ Literal[
10
+ "challenge",
11
+ "frictionless",
12
+ ],
13
+ UnrecognizedStr,
14
+ ]
@@ -6,6 +6,12 @@ from typing import Literal, Union
6
6
 
7
7
 
8
8
  ThreeDSecureStatus = Union[
9
- Literal["setup_error", "error", "declined", "cancelled", "complete"],
9
+ Literal[
10
+ "setup_error",
11
+ "error",
12
+ "declined",
13
+ "cancelled",
14
+ "complete",
15
+ ],
10
16
  UnrecognizedStr,
11
17
  ]
@@ -32,10 +32,10 @@ from .transactionthreedsecuresummary import (
32
32
  )
33
33
  from datetime import datetime
34
34
  from gr4vy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
35
- from gr4vy.utils import validate_const, validate_open_enum
35
+ from gr4vy.utils import validate_const
36
36
  import pydantic
37
37
  from pydantic import model_serializer
38
- from pydantic.functional_validators import AfterValidator, PlainValidator
38
+ from pydantic.functional_validators import AfterValidator
39
39
  from typing import Dict, List, Literal, Optional
40
40
  from typing_extensions import Annotated, NotRequired, TypedDict
41
41
 
@@ -71,6 +71,8 @@ class TransactionTypedDict(TypedDict):
71
71
  r"""The date and time when the transaction was created, in ISO 8601 format."""
72
72
  updated_at: datetime
73
73
  r"""The date and time when the transaction was last updated, in ISO 8601 format."""
74
+ disputed: bool
75
+ r"""Indicates whether this transaction has been disputed."""
74
76
  payment_source: TransactionPaymentSource
75
77
  r"""The way payment method information made it to this transaction."""
76
78
  merchant_initiated: bool
@@ -144,6 +146,8 @@ class TransactionTypedDict(TypedDict):
144
146
  r"""The date this transaction was captured at."""
145
147
  voided_at: NotRequired[Nullable[datetime]]
146
148
  r"""The date this transaction was voided at."""
149
+ canceled_at: NotRequired[Nullable[datetime]]
150
+ r"""The date this transaction was canceled at."""
147
151
  approval_expires_at: NotRequired[Nullable[datetime]]
148
152
  r"""The date this transaction's approval URL will expire at."""
149
153
  buyer_approval_timedout_at: NotRequired[Nullable[datetime]]
@@ -154,6 +158,24 @@ class TransactionTypedDict(TypedDict):
154
158
  r"""An optional merchant advice code which provides insight into the type of transaction or reason why the payment failed."""
155
159
  installment_count: NotRequired[Nullable[int]]
156
160
  r"""The number of installments for this transaction, if applicable."""
161
+ session_token: NotRequired[Nullable[str]]
162
+ r"""A session token that can be used to fetch session data for direct client integrations."""
163
+ tax_amount: NotRequired[Nullable[int]]
164
+ r"""The sales tax amount for this transaction, represented as a monetary amount in the smallest currency unit for the given currency, for example `1299` cents to create an authorization for `$12.99`"""
165
+ merchant_tax_id: NotRequired[Nullable[str]]
166
+ r"""Merchant tax ID (for example, EIN or VAT number)."""
167
+ purchase_order_number: NotRequired[Nullable[str]]
168
+ r"""Invoice number or Purchase Order number."""
169
+ customer_reference_number: NotRequired[Nullable[str]]
170
+ r"""Customer code or reference."""
171
+ amount_includes_tax: NotRequired[Nullable[bool]]
172
+ r"""Whether the tax is included in the amount."""
173
+ supplier_order_number: NotRequired[Nullable[str]]
174
+ r"""The merchant's unique identifier for the sales order or invoice."""
175
+ duty_amount: NotRequired[Nullable[int]]
176
+ r"""Total charges for import/export duties."""
177
+ shipping_amount: NotRequired[Nullable[int]]
178
+ r"""Total shipping amount."""
157
179
 
158
180
 
159
181
  class Transaction(BaseModel):
@@ -174,7 +196,7 @@ class Transaction(BaseModel):
174
196
  amount: int
175
197
  r"""The total amount for this transaction across all funding sources including gift cards."""
176
198
 
177
- status: Annotated[TransactionStatus, PlainValidator(validate_open_enum(False))]
199
+ status: TransactionStatus
178
200
 
179
201
  authorized_amount: int
180
202
  r"""The amount for this transaction that has been authorized for the `payment_method`. This can be less than the `amount` if gift cards were used."""
@@ -191,7 +213,7 @@ class Transaction(BaseModel):
191
213
  settled: bool
192
214
  r"""Indicates whether this transaction has been settled."""
193
215
 
194
- intent: Annotated[TransactionIntent, PlainValidator(validate_open_enum(False))]
216
+ intent: TransactionIntent
195
217
 
196
218
  gift_card_redemptions: List[GiftCardRedemption]
197
219
  r"""The gift cards redeemed for this transaction."""
@@ -202,9 +224,10 @@ class Transaction(BaseModel):
202
224
  updated_at: datetime
203
225
  r"""The date and time when the transaction was last updated, in ISO 8601 format."""
204
226
 
205
- payment_source: Annotated[
206
- TransactionPaymentSource, PlainValidator(validate_open_enum(False))
207
- ]
227
+ disputed: bool
228
+ r"""Indicates whether this transaction has been disputed."""
229
+
230
+ payment_source: TransactionPaymentSource
208
231
  r"""The way payment method information made it to this transaction."""
209
232
 
210
233
  merchant_initiated: bool
@@ -213,9 +236,7 @@ class Transaction(BaseModel):
213
236
  is_subsequent_payment: bool
214
237
  r"""Indicates whether the transaction represents a subsequent payment or an initial one."""
215
238
 
216
- intent_outcome: Annotated[
217
- TransactionIntentOutcome, PlainValidator(validate_open_enum(False))
218
- ]
239
+ intent_outcome: TransactionIntentOutcome
219
240
 
220
241
  multi_tender: bool
221
242
  r"""The outcome of the original intent of a transaction. This allows you to understand if the intent of the transaction (e.g. `capture` or `authorize`) has been achieved when dealing with multiple payment instruments."""
@@ -244,14 +265,10 @@ class Transaction(BaseModel):
244
265
  payment_method: OptionalNullable[TransactionPaymentMethod] = UNSET
245
266
  r"""The payment method used for this transaction."""
246
267
 
247
- method: Annotated[
248
- OptionalNullable[Method], PlainValidator(validate_open_enum(False))
249
- ] = UNSET
268
+ method: OptionalNullable[Method] = UNSET
250
269
  r"""The method used for the transaction."""
251
270
 
252
- instrument_type: Annotated[
253
- OptionalNullable[InstrumentType], PlainValidator(validate_open_enum(False))
254
- ] = UNSET
271
+ instrument_type: OptionalNullable[InstrumentType] = UNSET
255
272
  r"""The name of the instrument used to process the transaction."""
256
273
 
257
274
  error_code: OptionalNullable[str] = UNSET
@@ -287,19 +304,13 @@ class Transaction(BaseModel):
287
304
  auth_response_code: OptionalNullable[str] = UNSET
288
305
  r"""This is the response description received from the processor."""
289
306
 
290
- avs_response_code: Annotated[
291
- OptionalNullable[AVSResponseCode], PlainValidator(validate_open_enum(False))
292
- ] = UNSET
307
+ avs_response_code: OptionalNullable[AVSResponseCode] = UNSET
293
308
  r"""The response code received from the payment service for the Address Verification Check (AVS). This code is mapped to a standardized Gr4vy AVS response code."""
294
309
 
295
- cvv_response_code: Annotated[
296
- OptionalNullable[CVVResponseCode], PlainValidator(validate_open_enum(False))
297
- ] = UNSET
310
+ cvv_response_code: OptionalNullable[CVVResponseCode] = UNSET
298
311
  r"""The response code received from the payment service for the Card Verification Value (CVV). This code is mapped to a standardized Gr4vy CVV response code."""
299
312
 
300
- anti_fraud_decision: Annotated[
301
- OptionalNullable[AntiFraudDecision], PlainValidator(validate_open_enum(False))
302
- ] = UNSET
313
+ anti_fraud_decision: OptionalNullable[AntiFraudDecision] = UNSET
303
314
  r"""The mapped decision received from the anti-fraud service. In case of a review decision this field is not updated once the review is resolved."""
304
315
 
305
316
  cart_items: OptionalNullable[List[CartItem]] = UNSET
@@ -332,6 +343,9 @@ class Transaction(BaseModel):
332
343
  voided_at: OptionalNullable[datetime] = UNSET
333
344
  r"""The date this transaction was voided at."""
334
345
 
346
+ canceled_at: OptionalNullable[datetime] = UNSET
347
+ r"""The date this transaction was canceled at."""
348
+
335
349
  approval_expires_at: OptionalNullable[datetime] = UNSET
336
350
  r"""The date this transaction's approval URL will expire at."""
337
351
 
@@ -347,6 +361,33 @@ class Transaction(BaseModel):
347
361
  installment_count: OptionalNullable[int] = UNSET
348
362
  r"""The number of installments for this transaction, if applicable."""
349
363
 
364
+ session_token: OptionalNullable[str] = UNSET
365
+ r"""A session token that can be used to fetch session data for direct client integrations."""
366
+
367
+ tax_amount: OptionalNullable[int] = UNSET
368
+ r"""The sales tax amount for this transaction, represented as a monetary amount in the smallest currency unit for the given currency, for example `1299` cents to create an authorization for `$12.99`"""
369
+
370
+ merchant_tax_id: OptionalNullable[str] = UNSET
371
+ r"""Merchant tax ID (for example, EIN or VAT number)."""
372
+
373
+ purchase_order_number: OptionalNullable[str] = UNSET
374
+ r"""Invoice number or Purchase Order number."""
375
+
376
+ customer_reference_number: OptionalNullable[str] = UNSET
377
+ r"""Customer code or reference."""
378
+
379
+ amount_includes_tax: OptionalNullable[bool] = UNSET
380
+ r"""Whether the tax is included in the amount."""
381
+
382
+ supplier_order_number: OptionalNullable[str] = UNSET
383
+ r"""The merchant's unique identifier for the sales order or invoice."""
384
+
385
+ duty_amount: OptionalNullable[int] = UNSET
386
+ r"""Total charges for import/export duties."""
387
+
388
+ shipping_amount: OptionalNullable[int] = UNSET
389
+ r"""Total shipping amount."""
390
+
350
391
  @model_serializer(mode="wrap")
351
392
  def serialize_model(self, handler):
352
393
  optional_fields = [
@@ -381,11 +422,21 @@ class Transaction(BaseModel):
381
422
  "authorized_at",
382
423
  "captured_at",
383
424
  "voided_at",
425
+ "canceled_at",
384
426
  "approval_expires_at",
385
427
  "buyer_approval_timedout_at",
386
428
  "recipient",
387
429
  "merchant_advice_code",
388
430
  "installment_count",
431
+ "session_token",
432
+ "tax_amount",
433
+ "merchant_tax_id",
434
+ "purchase_order_number",
435
+ "customer_reference_number",
436
+ "amount_includes_tax",
437
+ "supplier_order_number",
438
+ "duty_amount",
439
+ "shipping_amount",
389
440
  ]
390
441
  nullable_fields = [
391
442
  "settled_currency",
@@ -416,11 +467,21 @@ class Transaction(BaseModel):
416
467
  "authorized_at",
417
468
  "captured_at",
418
469
  "voided_at",
470
+ "canceled_at",
419
471
  "approval_expires_at",
420
472
  "buyer_approval_timedout_at",
421
473
  "recipient",
422
474
  "merchant_advice_code",
423
475
  "installment_count",
476
+ "session_token",
477
+ "tax_amount",
478
+ "merchant_tax_id",
479
+ "purchase_order_number",
480
+ "customer_reference_number",
481
+ "amount_includes_tax",
482
+ "supplier_order_number",
483
+ "duty_amount",
484
+ "shipping_amount",
424
485
  ]
425
486
  null_default_fields = []
426
487
 
@@ -0,0 +1,48 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .flow import Flow
5
+ from .flowaction import FlowAction
6
+ from datetime import datetime
7
+ from gr4vy.types import BaseModel
8
+ from gr4vy.utils import validate_const
9
+ import pydantic
10
+ from pydantic.functional_validators import AfterValidator
11
+ from typing import Any, Dict, Literal, Optional
12
+ from typing_extensions import Annotated, TypedDict
13
+
14
+
15
+ class TransactionActionTypedDict(TypedDict):
16
+ id: FlowAction
17
+ flow: Flow
18
+ rule_id: str
19
+ r"""The ID of the rule that triggered this action."""
20
+ created_at: datetime
21
+ r"""The date this action was created at."""
22
+ outcome: Dict[str, Any]
23
+ r"""The outcome of the action."""
24
+ type: Literal["action"]
25
+ r"""Always `action`."""
26
+
27
+
28
+ class TransactionAction(BaseModel):
29
+ id: FlowAction
30
+
31
+ flow: Flow
32
+
33
+ rule_id: str
34
+ r"""The ID of the rule that triggered this action."""
35
+
36
+ created_at: datetime
37
+ r"""The date this action was created at."""
38
+
39
+ outcome: Dict[str, Any]
40
+ r"""The outcome of the action."""
41
+
42
+ TYPE: Annotated[
43
+ Annotated[
44
+ Optional[Literal["action"]], AfterValidator(validate_const("action"))
45
+ ],
46
+ pydantic.Field(alias="type"),
47
+ ] = "action"
48
+ r"""Always `action`."""
@@ -0,0 +1,17 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .transactionaction import TransactionAction, TransactionActionTypedDict
5
+ from gr4vy.types import BaseModel
6
+ from typing import List
7
+ from typing_extensions import TypedDict
8
+
9
+
10
+ class TransactionActionsTypedDict(TypedDict):
11
+ items: List[TransactionActionTypedDict]
12
+ r"""The list of actions triggered for a transaction."""
13
+
14
+
15
+ class TransactionActions(BaseModel):
16
+ items: List[TransactionAction]
17
+ r"""The list of actions triggered for a transaction."""