diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
index 18c857e9e..b57a185f2 100644
--- a/.speakeasy/gen.lock
+++ b/.speakeasy/gen.lock
@@ -1,12 +1,12 @@
lockVersion: 2.0.0
id: fca0ac3a-5f4e-452c-bbc7-2311afa8da40
management:
- docChecksum: ee22593055f1c1ecb2ce810e5db1b8f1
- docVersion: 10.76.0
+ docChecksum: 1aab6049ef6bf2a91ef4f9c65c5df3b6
+ docVersion: 10.77.0
speakeasyVersion: 1.656.1
generationVersion: 2.753.1
- releaseVersion: 0.55.0
- configChecksum: f93350fc8265800aa24dbf4fb1d72549
+ releaseVersion: 0.56.0
+ configChecksum: f2373bf8fe005e84ab4e17217e9bd4b6
repoURL: https://github.com/apideck-libraries/sdk-python.git
installationURL: https://github.com/apideck-libraries/sdk-python.git
published: true
@@ -826,6 +826,10 @@ generatedFiles:
- docs/models/billpaymentcreateinputbillpaymenttype.md
- docs/models/billpaymentinput.md
- docs/models/billpaymenttype.md
+ - docs/models/billpaymentupdateinput.md
+ - docs/models/billpaymentupdateinputallocations.md
+ - docs/models/billpaymentupdateinputallocationtype.md
+ - docs/models/billpaymentupdateinputbillpaymenttype.md
- docs/models/billsfilter.md
- docs/models/billsfilterstatus.md
- docs/models/billssort.md
@@ -1010,6 +1014,9 @@ generatedFiles:
- docs/models/creditnotessortby.md
- docs/models/creditnotestatus.md
- docs/models/creditnotetype.md
+ - docs/models/creditnoteupdateinput.md
+ - docs/models/creditnoteupdateinputcreditnotestatus.md
+ - docs/models/creditnoteupdateinputcreditnotetype.md
- docs/models/creditordebit.md
- docs/models/crmactivitiesaddglobals.md
- docs/models/crmactivitiesaddrequest.md
@@ -1363,6 +1370,8 @@ generatedFiles:
- docs/models/expensecategory.md
- docs/models/expensecategoryinput.md
- docs/models/expensecategorystatus.md
+ - docs/models/expensecategoryupdateinput.md
+ - docs/models/expensecategoryupdateinputstatus.md
- docs/models/expenseinput.md
- docs/models/expenselineitem.md
- docs/models/expenselineiteminput.md
@@ -1375,12 +1384,21 @@ generatedFiles:
- docs/models/expensereportsfilter.md
- docs/models/expensereportsfilterstatus.md
- docs/models/expensereportstatus.md
+ - docs/models/expensereportupdateinput.md
+ - docs/models/expensereportupdateinputaccountingperiod.md
+ - docs/models/expensereportupdateinputapprovedby.md
+ - docs/models/expensereportupdateinputemployee.md
+ - docs/models/expensereportupdateinputstatus.md
- docs/models/expensesfilter.md
- docs/models/expensesfilterstatus.md
- docs/models/expensesfiltertype.md
- docs/models/expensesmodel.md
- docs/models/expensestatus.md
- docs/models/expensetype.md
+ - docs/models/expenseupdateinput.md
+ - docs/models/expenseupdateinputexpensetype.md
+ - docs/models/expenseupdateinputpaymenttype.md
+ - docs/models/expenseupdateinputstatus.md
- docs/models/extendpaths.md
- docs/models/externalguides.md
- docs/models/feedstatus.md
@@ -1987,6 +2005,7 @@ generatedFiles:
- docs/models/paymentstatus.md
- docs/models/paymenttype.md
- docs/models/paymentunit.md
+ - docs/models/paymentupdateinput.md
- docs/models/payroll.md
- docs/models/payrollsfilter.md
- docs/models/payrolltotals.md
@@ -2018,6 +2037,15 @@ generatedFiles:
- docs/models/projectssortsortby.md
- docs/models/projectstatus.md
- docs/models/projecttype.md
+ - docs/models/projectupdateinput.md
+ - docs/models/projectupdateinputbillingmethod.md
+ - docs/models/projectupdateinputdepartment.md
+ - docs/models/projectupdateinputparentproject.md
+ - docs/models/projectupdateinputpriority.md
+ - docs/models/projectupdateinputprojectphase.md
+ - docs/models/projectupdateinputprojectstatus.md
+ - docs/models/projectupdateinputprojecttype.md
+ - docs/models/projectupdateinputschedulestatus.md
- docs/models/proxydeleteproxyglobals.md
- docs/models/proxydeleteproxyrequest.md
- docs/models/proxydeleteproxyresponse.md
@@ -2063,6 +2091,7 @@ generatedFiles:
- docs/models/refundssortby.md
- docs/models/refundstatus.md
- docs/models/refundtype.md
+ - docs/models/refundupdateinput.md
- docs/models/reports.md
- docs/models/request.md
- docs/models/requestbody1.md
@@ -2085,6 +2114,7 @@ generatedFiles:
- docs/models/salesreceiptsfilter.md
- docs/models/salesreceiptssort.md
- docs/models/salesreceiptssortby.md
+ - docs/models/salesreceiptupdateinput.md
- docs/models/schedule.md
- docs/models/schedulestatus.md
- docs/models/schema.md
@@ -2867,6 +2897,7 @@ generatedFiles:
- src/apideck_unify/models/billlineitem_input.py
- src/apideck_unify/models/billpayment.py
- src/apideck_unify/models/billpaymentcreateinput.py
+ - src/apideck_unify/models/billpaymentupdateinput.py
- src/apideck_unify/models/billsfilter.py
- src/apideck_unify/models/billssort.py
- src/apideck_unify/models/categoriesfilter.py
@@ -2989,6 +3020,7 @@ generatedFiles:
- src/apideck_unify/models/creditnotecreateinput.py
- src/apideck_unify/models/creditnotesfilter.py
- src/apideck_unify/models/creditnotessort.py
+ - src/apideck_unify/models/creditnoteupdateinput.py
- src/apideck_unify/models/creditordebit.py
- src/apideck_unify/models/crm_activitiesaddop.py
- src/apideck_unify/models/crm_activitiesallop.py
@@ -3160,13 +3192,16 @@ generatedFiles:
- src/apideck_unify/models/expense.py
- src/apideck_unify/models/expensecategoriesfilter.py
- src/apideck_unify/models/expensecategory.py
+ - src/apideck_unify/models/expensecategoryupdateinput.py
- src/apideck_unify/models/expenselineitem.py
- src/apideck_unify/models/expenselineitem_input.py
- src/apideck_unify/models/expensereport.py
- src/apideck_unify/models/expensereportlineitem.py
- src/apideck_unify/models/expensereportlineitem_input.py
- src/apideck_unify/models/expensereportsfilter.py
+ - src/apideck_unify/models/expensereportupdateinput.py
- src/apideck_unify/models/expensesfilter.py
+ - src/apideck_unify/models/expenseupdateinput.py
- src/apideck_unify/models/filesfilter.py
- src/apideck_unify/models/filessearch.py
- src/apideck_unify/models/filessort.py
@@ -3522,6 +3557,7 @@ generatedFiles:
- src/apideck_unify/models/paymentstatus.py
- src/apideck_unify/models/paymenttype.py
- src/apideck_unify/models/paymentunit.py
+ - src/apideck_unify/models/paymentupdateinput.py
- src/apideck_unify/models/payroll.py
- src/apideck_unify/models/payrollsfilter.py
- src/apideck_unify/models/payrolltotals.py
@@ -3537,6 +3573,7 @@ generatedFiles:
- src/apideck_unify/models/project.py
- src/apideck_unify/models/projectsfilter.py
- src/apideck_unify/models/projectssort.py
+ - src/apideck_unify/models/projectupdateinput.py
- src/apideck_unify/models/proxy_deleteproxyop.py
- src/apideck_unify/models/proxy_getproxyop.py
- src/apideck_unify/models/proxy_optionsproxyop.py
@@ -3556,6 +3593,7 @@ generatedFiles:
- src/apideck_unify/models/refundssort.py
- src/apideck_unify/models/refundstatus.py
- src/apideck_unify/models/refundtype.py
+ - src/apideck_unify/models/refundupdateinput.py
- src/apideck_unify/models/requestcountallocation.py
- src/apideck_unify/models/resourcestatus.py
- src/apideck_unify/models/responsevalidationerror.py
@@ -3565,6 +3603,7 @@ generatedFiles:
- src/apideck_unify/models/salesreceipt_input.py
- src/apideck_unify/models/salesreceiptsfilter.py
- src/apideck_unify/models/salesreceiptssort.py
+ - src/apideck_unify/models/salesreceiptupdateinput.py
- src/apideck_unify/models/schedule.py
- src/apideck_unify/models/schemasupport.py
- src/apideck_unify/models/security.py
@@ -21488,6 +21527,17 @@ examples:
application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestHeadersValidationError", "message": "Invalid Params", "detail": "Missing Header: x-apideck-consumer-id", "ref": "https://developers.apideck.com/errors#unauthorizederror"}
examplesVersion: 1.0.2
generatedTests: {}
+releaseNotes: |
+ ## Python SDK Changes Detected:
+ * `apideck.accounting.credit_notes.update()`: `request.total_amount` **Changed**
+ * `apideck.accounting.payments.update()`: `request` **Changed**
+ * `apideck.accounting.refunds.update()`: `request.total_amount` **Changed**
+ * `apideck.accounting.sales_receipts.update()`: `request.total_amount` **Changed**
+ * `apideck.accounting.bill_payments.update()`: `request` **Changed**
+ * `apideck.accounting.expenses.update()`: `request` **Changed**
+ * `apideck.accounting.projects.update()`: `request.name` **Changed**
+ * `apideck.accounting.expense_categories.update()`: `request.name` **Changed**
+ * `apideck.accounting.expense_reports.update()`: `request` **Changed**
trackedFiles:
.devcontainer/README.md:
last_write_checksum: sha1:07adb0c0c051a9be4d479ea06461f3a9b3bbeb2f
@@ -21716,7 +21766,7 @@ trackedFiles:
docs/models/accountingbillpaymentsupdateglobals.md:
last_write_checksum: sha1:8a1fbe647f916c6eb1dbab813c929a8f3d8d78fd
docs/models/accountingbillpaymentsupdaterequest.md:
- last_write_checksum: sha1:8ca43c5f94db03224a4a61e16aa8d845c07b7a69
+ last_write_checksum: sha1:8c29e7c04b23d291e96d58f5741ce01a70f886e4
docs/models/accountingbillpaymentsupdateresponse.md:
last_write_checksum: sha1:ce46a6f42376a47136346a773a49ba28bfbca703
docs/models/accountingbillsaddglobals.md:
@@ -21814,7 +21864,7 @@ trackedFiles:
docs/models/accountingcreditnotesupdateglobals.md:
last_write_checksum: sha1:caa9541775092318575d4882a9cc0ce66e240a24
docs/models/accountingcreditnotesupdaterequest.md:
- last_write_checksum: sha1:d54df23bb06c5e33286cce321cf3062317f2cef0
+ last_write_checksum: sha1:bd2630f961faa9625a685f444e016414b4588e0e
docs/models/accountingcreditnotesupdateresponse.md:
last_write_checksum: sha1:fc62f9297c9a66ea327279b0b820be3a4bd958b5
docs/models/accountingcustomersaddglobals.md:
@@ -21956,7 +22006,7 @@ trackedFiles:
docs/models/accountingexpensecategoriesupdateglobals.md:
last_write_checksum: sha1:735b4f2c49f9c46e22c97507170e0ec327fc5ae6
docs/models/accountingexpensecategoriesupdaterequest.md:
- last_write_checksum: sha1:b30d1e96e5a8fba46d096b53e09343d64bf34c7e
+ last_write_checksum: sha1:e705bbb0dcefd1e1b818a530fe57f5ce3e04c1e7
docs/models/accountingexpensecategoriesupdateresponse.md:
last_write_checksum: sha1:4497c57d9a29229dddf22b982beb177129d0ee6c
docs/models/accountingexpensereportsaddglobals.md:
@@ -21986,7 +22036,7 @@ trackedFiles:
docs/models/accountingexpensereportsupdateglobals.md:
last_write_checksum: sha1:5acc3a4048f18b5785c78968bb95dbab7cc5aa9d
docs/models/accountingexpensereportsupdaterequest.md:
- last_write_checksum: sha1:ed254b1bb2de2a1c681cb991ddb0c06951a2956a
+ last_write_checksum: sha1:e26557c97e3e2e470882d18dfa4cc96803650ec1
docs/models/accountingexpensereportsupdateresponse.md:
last_write_checksum: sha1:6d5302fdecea7094ae6f5db998a8d3159010d78e
docs/models/accountingexpensesaddglobals.md:
@@ -22016,7 +22066,7 @@ trackedFiles:
docs/models/accountingexpensesupdateglobals.md:
last_write_checksum: sha1:7e5728aa32fc1eb7114bc88cde0d2c8c22207b62
docs/models/accountingexpensesupdaterequest.md:
- last_write_checksum: sha1:649afc75e803cce6376bbed159716fe8895b06f1
+ last_write_checksum: sha1:19183480ab9ce218c19d773ed7124a155f3d730c
docs/models/accountingexpensesupdateresponse.md:
last_write_checksum: sha1:a0abf9ee705650d2635889c9e4290e4e62224020
docs/models/accountingfiscalperiodsallglobals.md:
@@ -22332,7 +22382,7 @@ trackedFiles:
docs/models/accountingpaymentsupdateglobals.md:
last_write_checksum: sha1:a0cc628cbacaa17d851d26dc3364b6dc7936df75
docs/models/accountingpaymentsupdaterequest.md:
- last_write_checksum: sha1:6ab0e1709dfc04021773f2eaf90c7a88540963fc
+ last_write_checksum: sha1:355bb256bbb25ae8014af9660847fde4f4de45c8
docs/models/accountingpaymentsupdateresponse.md:
last_write_checksum: sha1:a0278bd0a78245f1c822a810f0d9b2b0984145a9
docs/models/accountingperiod.md:
@@ -22370,7 +22420,7 @@ trackedFiles:
docs/models/accountingprojectsupdateglobals.md:
last_write_checksum: sha1:4d85b1d482f54e712d541375df25226ab014aa35
docs/models/accountingprojectsupdaterequest.md:
- last_write_checksum: sha1:7b4cfeb1de9462a4049c78365e44735b0a9a9009
+ last_write_checksum: sha1:07b4af1aca9575fc923216149fa247836c27a8a8
docs/models/accountingprojectsupdateresponse.md:
last_write_checksum: sha1:9bb77e35709ec8661d68f56b621019fe4c34d3a9
docs/models/accountingpurchaseordersaddglobals.md:
@@ -22460,7 +22510,7 @@ trackedFiles:
docs/models/accountingrefundsupdateglobals.md:
last_write_checksum: sha1:d21f5a5e74f52d073539038b2278c34823d8684b
docs/models/accountingrefundsupdaterequest.md:
- last_write_checksum: sha1:712ad48af3b704b5749f357dd2992d5c762ec573
+ last_write_checksum: sha1:dacf93541e48a2f552769b12070f487e9895f7da
docs/models/accountingrefundsupdateresponse.md:
last_write_checksum: sha1:678f3673a94cde429faa5179b81b7765caa6649e
docs/models/accountingsalesordersaddglobals.md:
@@ -22520,7 +22570,7 @@ trackedFiles:
docs/models/accountingsalesreceiptsupdateglobals.md:
last_write_checksum: sha1:1cf2b38c4a242a6de9fdcc30aac72e165f3800f4
docs/models/accountingsalesreceiptsupdaterequest.md:
- last_write_checksum: sha1:bc7918fc286e44e742d01fc6338ade15988785c0
+ last_write_checksum: sha1:3be70f603befcd99844196e9a5304d6854999268
docs/models/accountingsalesreceiptsupdateresponse.md:
last_write_checksum: sha1:8c0a8a3ed70d751d5f06d8b78638765f722bc50a
docs/models/accountingsubsidiariesaddglobals.md:
@@ -23047,6 +23097,14 @@ trackedFiles:
last_write_checksum: sha1:f3ad5264be0d14eb8dfcdd4a156b06c5abed4a64
docs/models/billpaymenttype.md:
last_write_checksum: sha1:f13abce9e8c13c55e827b79f5d569b5423c101f5
+ docs/models/billpaymentupdateinput.md:
+ last_write_checksum: sha1:a4283c42d3cfad37aff5955385bc1a598f04921c
+ docs/models/billpaymentupdateinputallocations.md:
+ last_write_checksum: sha1:8d5a107a7822112853e556d57f6f6b371a79d441
+ docs/models/billpaymentupdateinputallocationtype.md:
+ last_write_checksum: sha1:b9f92f9926a30b1f0330d8a0e3ec884a7baff68d
+ docs/models/billpaymentupdateinputbillpaymenttype.md:
+ last_write_checksum: sha1:1e6d1961d7c3249352d1852365905334b66fac84
docs/models/billsfilter.md:
last_write_checksum: sha1:68119dffda3793b52f9dce27864bfe5a8ffaf6ec
docs/models/billsfilterstatus.md:
@@ -23415,6 +23473,12 @@ trackedFiles:
last_write_checksum: sha1:1faec31112350d09bbb7ba52eb68c7c64d1c48c0
docs/models/creditnotetype.md:
last_write_checksum: sha1:fe336d8d4487c90f26ca00431565300a0bd4613a
+ docs/models/creditnoteupdateinput.md:
+ last_write_checksum: sha1:d8c2216c104559fd468acfa17d187e68f43d9954
+ docs/models/creditnoteupdateinputcreditnotestatus.md:
+ last_write_checksum: sha1:9fb18c8ab07f6b0e09e5c09aa35562c7cac9a18c
+ docs/models/creditnoteupdateinputcreditnotetype.md:
+ last_write_checksum: sha1:70e009ab85f230f7e0411b81711d507044ceb45d
docs/models/creditordebit.md:
last_write_checksum: sha1:422dfcd066d9425a72370c13aec74a5f93c71bcd
docs/models/crmactivitiesaddglobals.md:
@@ -24121,6 +24185,10 @@ trackedFiles:
last_write_checksum: sha1:81da05e5770bd56ba8bc563ccdff1838f40537eb
docs/models/expensecategorystatus.md:
last_write_checksum: sha1:caf2ca18dcaedad0ab9d7bb5c74a488696d0b86a
+ docs/models/expensecategoryupdateinput.md:
+ last_write_checksum: sha1:adcdcc886f90137429ac0772a1714a64c49b1adb
+ docs/models/expensecategoryupdateinputstatus.md:
+ last_write_checksum: sha1:200b3e0101420f074e2bb899c823e6b5673315bb
docs/models/expenseinput.md:
last_write_checksum: sha1:75ab9a1e071884daf9828ada4f4479a49b8b9589
docs/models/expenselineitem.md:
@@ -24145,6 +24213,16 @@ trackedFiles:
last_write_checksum: sha1:8f2339fcb79d520c87ca3406153b2144542b9f2f
docs/models/expensereportstatus.md:
last_write_checksum: sha1:5ad3d9efa944f1ed01c65621e49b03afc29adc2a
+ docs/models/expensereportupdateinput.md:
+ last_write_checksum: sha1:4a3a55c7c2a72b897f07d623cb346590e12f1688
+ docs/models/expensereportupdateinputaccountingperiod.md:
+ last_write_checksum: sha1:348f65b95196d0d9223b04bef3c4e802326f0e87
+ docs/models/expensereportupdateinputapprovedby.md:
+ last_write_checksum: sha1:04e979a34962b1a8fedb8a278c768946c87d14b1
+ docs/models/expensereportupdateinputemployee.md:
+ last_write_checksum: sha1:7c46b79fc1e89a98db0809bbf4624ed3381524a0
+ docs/models/expensereportupdateinputstatus.md:
+ last_write_checksum: sha1:f24af7a8d93c941d64e844aeda8c9f2859cc262a
docs/models/expensesfilter.md:
last_write_checksum: sha1:a49160b91222ffd6a18855ed18866cad6b25dffd
docs/models/expensesfilterstatus.md:
@@ -24157,6 +24235,14 @@ trackedFiles:
last_write_checksum: sha1:b13be026bdba8e8eec2cc8b35bbe33634308f18a
docs/models/expensetype.md:
last_write_checksum: sha1:d0987ead6a8c1f221ab055fd62639307698bb42a
+ docs/models/expenseupdateinput.md:
+ last_write_checksum: sha1:aa0f201321b40774ba5d0bd6d230ef23912ff9d7
+ docs/models/expenseupdateinputexpensetype.md:
+ last_write_checksum: sha1:c2b87ea55ad1f377cf4254d1eb5d63706eafb3a8
+ docs/models/expenseupdateinputpaymenttype.md:
+ last_write_checksum: sha1:57ac272129fccb5a752addfdec1834edc89505d0
+ docs/models/expenseupdateinputstatus.md:
+ last_write_checksum: sha1:1ff7d4d6f984b424500007d734db9b9ce1b60cce
docs/models/extendpaths.md:
last_write_checksum: sha1:22b4c2dfeba68fe7a4ed1fee747d2b98b65bf33f
docs/models/externalguides.md:
@@ -25369,6 +25455,8 @@ trackedFiles:
last_write_checksum: sha1:285d4ed4f33ac66d15dd9527219fe182fb7b335f
docs/models/paymentunit.md:
last_write_checksum: sha1:dc26afb5d22afb7c0c1e2ee029c973a39f7339ab
+ docs/models/paymentupdateinput.md:
+ last_write_checksum: sha1:089d0c10f82c874241a45a41764ff037fe8ef302
docs/models/payroll.md:
last_write_checksum: sha1:edec2dcd1b151c83076afa9118591d540e0df6cf
docs/models/payrollsfilter.md:
@@ -25431,6 +25519,24 @@ trackedFiles:
last_write_checksum: sha1:9767ac7e11f5877f0e3e37705389652763901fa5
docs/models/projecttype.md:
last_write_checksum: sha1:a33408294f6733288572b18b93f81ebc1cb1559a
+ docs/models/projectupdateinput.md:
+ last_write_checksum: sha1:010728c409a8bb69b0075983d8ad8d1a2c69f04c
+ docs/models/projectupdateinputbillingmethod.md:
+ last_write_checksum: sha1:131bf99e6a4bbdd6a62243a425644b051946b6bf
+ docs/models/projectupdateinputdepartment.md:
+ last_write_checksum: sha1:f1f1dc72b252724af32b84742a4ce79d2a72fbc1
+ docs/models/projectupdateinputparentproject.md:
+ last_write_checksum: sha1:94a98d723868efbbfd7855f2f422599b15518153
+ docs/models/projectupdateinputpriority.md:
+ last_write_checksum: sha1:5a6b9fb1fb8952ca75ff88e54cdd0d4b9dd50243
+ docs/models/projectupdateinputprojectphase.md:
+ last_write_checksum: sha1:59c2e8ce47e94ac3f62a21fbe3032a5f61cc1995
+ docs/models/projectupdateinputprojectstatus.md:
+ last_write_checksum: sha1:cee0406a864effca69b7fd9d10006c98bd7a6439
+ docs/models/projectupdateinputprojecttype.md:
+ last_write_checksum: sha1:f03a91743025e93841bf1efee6f67a9e36676f4c
+ docs/models/projectupdateinputschedulestatus.md:
+ last_write_checksum: sha1:5c4336ae037a85827a5ca7b481006d7c91a9273b
docs/models/proxydeleteproxyglobals.md:
last_write_checksum: sha1:c16f7d91cb601bda587c2de8d7d9977d2c34ffb7
docs/models/proxydeleteproxyrequest.md:
@@ -25521,6 +25627,8 @@ trackedFiles:
last_write_checksum: sha1:4730a5415dc75da4b18348c19d1a5b5e2a9e7117
docs/models/refundtype.md:
last_write_checksum: sha1:e105fff033833b9daaeb20fa0d9024f0471088ed
+ docs/models/refundupdateinput.md:
+ last_write_checksum: sha1:e0ada63447b3b616b3cb1fb5e3e88843defdc751
docs/models/reports.md:
last_write_checksum: sha1:fb63b4d156c42f27390a3a349d69a949611c45f5
docs/models/request.md:
@@ -25565,6 +25673,8 @@ trackedFiles:
last_write_checksum: sha1:cf8f276110d210ace9166cc204a54c73daf12d40
docs/models/salesreceiptssortby.md:
last_write_checksum: sha1:3192727a3c47327233213105afde62ab98560689
+ docs/models/salesreceiptupdateinput.md:
+ last_write_checksum: sha1:ffe2a80b38f51b48ae7ba498d7fa430587977284
docs/models/schedule.md:
last_write_checksum: sha1:ccc6fd5f3721e9dbdaae3d1f47607f54d793652e
docs/models/schedulestatus.md:
@@ -26196,7 +26306,7 @@ trackedFiles:
docs/sdks/billcreditnotes/README.md:
last_write_checksum: sha1:38b72f417bc0afb047d13b4040d518c09ea57c38
docs/sdks/billpayments/README.md:
- last_write_checksum: sha1:c4eb7f8792916d330b1908dc851a4e1842db92ff
+ last_write_checksum: sha1:ad638142973fb28a38066b27bd702d49027a02ac
docs/sdks/bills/README.md:
last_write_checksum: sha1:34934da01e8d84ce5001302409ce346ea57f116d
docs/sdks/categories/README.md:
@@ -26240,7 +26350,7 @@ trackedFiles:
docs/sdks/createcallback/README.md:
last_write_checksum: sha1:906eb56b0ddb57494c26dbc43ff017770df07b66
docs/sdks/creditnotes/README.md:
- last_write_checksum: sha1:3c63660ea8960ac69bc7c19d80d4e7976c3dc8aa
+ last_write_checksum: sha1:880f4d925f09fc51efda66bf1b9c5577f58d6a82
docs/sdks/customers/README.md:
last_write_checksum: sha1:4b05791a1b06a639bec9395e320e2438b1bab4a0
docs/sdks/customfields/README.md:
@@ -26266,11 +26376,11 @@ trackedFiles:
docs/sdks/eventlogs/README.md:
last_write_checksum: sha1:a2a4fbc7393de6df2095ac81961aaffea03f2f7a
docs/sdks/expensecategories/README.md:
- last_write_checksum: sha1:85f2904856dda70609a77b43fa67e77d3076d152
+ last_write_checksum: sha1:e1a63da4f799a5e62f655980ff61ecc8bee69b17
docs/sdks/expensereports/README.md:
- last_write_checksum: sha1:c1ca02527652a931551ac36cd89238e2438cae97
+ last_write_checksum: sha1:e7752d23207a28f64482bc05fc14030a0132bde5
docs/sdks/expenses/README.md:
- last_write_checksum: sha1:f748decf00299e345696599932d8318af8159401
+ last_write_checksum: sha1:aa4599295985556a0e8ed7aa8405e1aded437a61
docs/sdks/files/README.md:
last_write_checksum: sha1:9889b57620ab478df4ea91fb4544bdfff422e73c
docs/sdks/fiscalperiods/README.md:
@@ -26314,7 +26424,7 @@ trackedFiles:
docs/sdks/paymentmethods/README.md:
last_write_checksum: sha1:22823ec7b65fa535074dca1090b76679883ac634
docs/sdks/payments/README.md:
- last_write_checksum: sha1:13e787fc2c7d41163f4a9e4f9e476f39e6e55122
+ last_write_checksum: sha1:d631152b577514303c6ac11c8c1b044f1ab85087
docs/sdks/payrolls/README.md:
last_write_checksum: sha1:6ac8986bc3eb1c25eb2fe7070636ad9751c8c585
docs/sdks/pipelines/README.md:
@@ -26324,7 +26434,7 @@ trackedFiles:
docs/sdks/profitandlosssdk/README.md:
last_write_checksum: sha1:d1e7becf00ac178f97ed1eaf988914063cff429c
docs/sdks/projects/README.md:
- last_write_checksum: sha1:cf777bfcb054a636a16123d1f75cc36d4aecc4cc
+ last_write_checksum: sha1:2e1ab6bcbbe6c3d2046179d02361d5cec01bf6ef
docs/sdks/proxy/README.md:
last_write_checksum: sha1:1c0f76a80851bd87fbd73f1db9636c90396f96b0
docs/sdks/purchaseorders/README.md:
@@ -26332,11 +26442,11 @@ trackedFiles:
docs/sdks/quotes/README.md:
last_write_checksum: sha1:f50efc6a9f0b46c2e2ec763968a2dda675bfbe36
docs/sdks/refunds/README.md:
- last_write_checksum: sha1:6af751b31ea64bc4ec0839882b7da4d7c062ed9c
+ last_write_checksum: sha1:6e65ebf13c93151c19bd8e8d30458b3b36bf39ff
docs/sdks/salesorders/README.md:
last_write_checksum: sha1:f243115ffe100bccb11163e58e23f404b1f6ed3b
docs/sdks/salesreceipts/README.md:
- last_write_checksum: sha1:b98c1dbbfc87e8743a1a84cf95f11cbbdc0ec2c7
+ last_write_checksum: sha1:b7ea47c2b50a940810a4a56797fe797d154f98f7
docs/sdks/sessions/README.md:
last_write_checksum: sha1:9c1332fc7b3c3ace6dae6d9e1f127d360135f85c
docs/sdks/sharedlinks/README.md:
@@ -26370,7 +26480,7 @@ trackedFiles:
pylintrc:
last_write_checksum: sha1:ec6665a4862060890cf4c6ba61438d11decf5c3c
pyproject.toml:
- last_write_checksum: sha1:494145d5c6f7f1b23c4059587a746bbccc9c6696
+ last_write_checksum: sha1:f85fbd224a79c37aabb085ddf6457543f1ffccb5
scripts/prepare_readme.py:
last_write_checksum: sha1:798a05bafe4fbbfff5b67037866fa25efc52f11a
scripts/publish.sh:
@@ -26384,7 +26494,7 @@ trackedFiles:
src/apideck_unify/_hooks/types.py:
last_write_checksum: sha1:d57be38e644de01983a9224b9733ae0add898d43
src/apideck_unify/_version.py:
- last_write_checksum: sha1:afd4695243190fafddd6e3147cbcfabc66050a71
+ last_write_checksum: sha1:12d632d214b3bc0fa5f9b03fa723f9ecc79a6c45
src/apideck_unify/accounting.py:
last_write_checksum: sha1:7f9e809f589467dee3bc2719395ce1cdef2d7421
src/apideck_unify/activities.py:
@@ -26400,7 +26510,7 @@ trackedFiles:
src/apideck_unify/apideck_departments.py:
last_write_checksum: sha1:59a81b7d246ffd8a00dbf65a7d660c112548dd74
src/apideck_unify/apideck_employees.py:
- last_write_checksum: sha1:2d97564087b06b8840be84cff6b0172a8ed29adf
+ last_write_checksum: sha1:f3645ee5af43e0c0454bbc397e4138b416cf7403
src/apideck_unify/apideck_hris_companies.py:
last_write_checksum: sha1:4a0e3c47bbedbc5fbed2114c9bd520efa4fbae05
src/apideck_unify/apiresourcecoverage_sdk.py:
@@ -26430,7 +26540,7 @@ trackedFiles:
src/apideck_unify/billcreditnotes.py:
last_write_checksum: sha1:56c354107b41b742cc0354cf9d5c3bf58644f455
src/apideck_unify/billpayments.py:
- last_write_checksum: sha1:793b507a75a7c6295b40de1de208827c8f89244b
+ last_write_checksum: sha1:61b5c343917b7fb84a43a1c4714a8858da410077
src/apideck_unify/bills.py:
last_write_checksum: sha1:2d0da455c619679c7fb0dc6259d560d4fbacf1e5
src/apideck_unify/categories.py:
@@ -26476,7 +26586,7 @@ trackedFiles:
src/apideck_unify/createcallback.py:
last_write_checksum: sha1:fa6cddb89b59b3890fbc0a06c4b7730e91e76f2e
src/apideck_unify/creditnotes.py:
- last_write_checksum: sha1:3c4a31322ad32efe9da0ed69d963329e81506496
+ last_write_checksum: sha1:ec6b67715b115dce97453d2a948f24172b627a04
src/apideck_unify/crm.py:
last_write_checksum: sha1:0a3f32ca2265dd9bf40c9b5c0373685dab9e5da6
src/apideck_unify/customers.py:
@@ -26506,11 +26616,11 @@ trackedFiles:
src/apideck_unify/eventlogs.py:
last_write_checksum: sha1:d1729709f928d9c708ff4d4eb825cb98c5423f1f
src/apideck_unify/expensecategories.py:
- last_write_checksum: sha1:8fe0fa088b4b364ce8b9ef7a32cdde9050caf4ca
+ last_write_checksum: sha1:b2770ea00eb14d3948c9a4c36fcb13b975e739d3
src/apideck_unify/expensereports.py:
- last_write_checksum: sha1:3f6f38c22128c7d4c74bb4fe4305a6c7ab1574f9
+ last_write_checksum: sha1:2b9d80cd307dd083b2a8307dbf57dd4cf4172259
src/apideck_unify/expenses.py:
- last_write_checksum: sha1:ee7092fe810a4c13f525e91f2bde28aaa2eba959
+ last_write_checksum: sha1:a5abe18007f54db73da578cb708e9b780ee9e617
src/apideck_unify/files.py:
last_write_checksum: sha1:21b25dc08beaf72df1e912f498f65cb5f57846e9
src/apideck_unify/filestorage.py:
@@ -26554,7 +26664,7 @@ trackedFiles:
src/apideck_unify/messages.py:
last_write_checksum: sha1:236641f6bc253c8f2943d4118653a42751001b66
src/apideck_unify/models/__init__.py:
- last_write_checksum: sha1:09b20b3f27e1c77a8697ac81be9f7ba5b742c605
+ last_write_checksum: sha1:0f6a1f9142e927b5bba6e08d5e3777e9c028dcdc
src/apideck_unify/models/accounting_agedcreditorsoneop.py:
last_write_checksum: sha1:84bf1980c907ac868efd2e5d54f8649b6263d880
src/apideck_unify/models/accounting_ageddebtorsoneop.py:
@@ -26624,7 +26734,7 @@ trackedFiles:
src/apideck_unify/models/accounting_billpaymentsoneop.py:
last_write_checksum: sha1:ab6ef0cafab679c97f178e251d08cc6e091305ac
src/apideck_unify/models/accounting_billpaymentsupdateop.py:
- last_write_checksum: sha1:b75c22f7141e7ec35fff7d8fc3c7f26174d4f15f
+ last_write_checksum: sha1:b36a0cbc532bbc4d8fa43cc67fd46b8dae8aba9e
src/apideck_unify/models/accounting_billsaddop.py:
last_write_checksum: sha1:316d97d99bb3a935bf6f76b8208d197bbbb71891
src/apideck_unify/models/accounting_billsallop.py:
@@ -26656,7 +26766,7 @@ trackedFiles:
src/apideck_unify/models/accounting_creditnotesoneop.py:
last_write_checksum: sha1:8a477e35e318a6fba9090cc0894c29228a0e362b
src/apideck_unify/models/accounting_creditnotesupdateop.py:
- last_write_checksum: sha1:9a03df3f7ff80222f742976556090f1749561781
+ last_write_checksum: sha1:4b912e3623770d44ff5aaaecc5cd8f1ad1ee8026
src/apideck_unify/models/accounting_customersaddop.py:
last_write_checksum: sha1:91ab278b99a7864679026b8fc6b1c965a25abdbc
src/apideck_unify/models/accounting_customersallop.py:
@@ -26698,7 +26808,7 @@ trackedFiles:
src/apideck_unify/models/accounting_expensecategoriesoneop.py:
last_write_checksum: sha1:43e64537c6e5d69a730dc04f91b9e76e9bceba5b
src/apideck_unify/models/accounting_expensecategoriesupdateop.py:
- last_write_checksum: sha1:8f93a85bf3478dd57cd2e2acac2a78c78a8354b4
+ last_write_checksum: sha1:aa464c1a0a1f28f2144cfe75651968170cb0d096
src/apideck_unify/models/accounting_expensereportsaddop.py:
last_write_checksum: sha1:2087564ed9b07f33bf982e2fbded52a51ef1b781
src/apideck_unify/models/accounting_expensereportsallop.py:
@@ -26708,7 +26818,7 @@ trackedFiles:
src/apideck_unify/models/accounting_expensereportsoneop.py:
last_write_checksum: sha1:20e258683335aa1033a1e2f7a0c59474236d8f91
src/apideck_unify/models/accounting_expensereportsupdateop.py:
- last_write_checksum: sha1:7ddc7620e5a8fd32ef2a0d60aab4b5dfa93321e8
+ last_write_checksum: sha1:41d4fc566ba378d0c0d56cb61c44c8c40bc4e60a
src/apideck_unify/models/accounting_expensesaddop.py:
last_write_checksum: sha1:1cb3a41322357dad48d02d864e8210578889b9d0
src/apideck_unify/models/accounting_expensesallop.py:
@@ -26718,7 +26828,7 @@ trackedFiles:
src/apideck_unify/models/accounting_expensesoneop.py:
last_write_checksum: sha1:dfd878c92ffddcb8d3e3f710e9a44920a7e65711
src/apideck_unify/models/accounting_expensesupdateop.py:
- last_write_checksum: sha1:9daa85816579881d950e05c40076ed281728a7d3
+ last_write_checksum: sha1:cb0191d79ada81889a39e4eda311bc0b2a1f02d0
src/apideck_unify/models/accounting_fiscalperiodsallop.py:
last_write_checksum: sha1:d0f0fea66fbc4bfe4c77eccaf496f49bba4e0d1c
src/apideck_unify/models/accounting_fiscalperiodsoneop.py:
@@ -26818,7 +26928,7 @@ trackedFiles:
src/apideck_unify/models/accounting_paymentsoneop.py:
last_write_checksum: sha1:a504b25360e0c95ff01bb25c41db5b9865f431af
src/apideck_unify/models/accounting_paymentsupdateop.py:
- last_write_checksum: sha1:87a4102eb05dbbb0b6e0cd51a91ce4e9a3b73d38
+ last_write_checksum: sha1:e26833e156518410ab55fa7f0b33d570ae54aab8
src/apideck_unify/models/accounting_profitandlossoneop.py:
last_write_checksum: sha1:19bb298974b5753c4fbeab1834aa5368047752bf
src/apideck_unify/models/accounting_projectsaddop.py:
@@ -26830,7 +26940,7 @@ trackedFiles:
src/apideck_unify/models/accounting_projectsoneop.py:
last_write_checksum: sha1:c8d3975d5d721ebc5519788e2dc0956b925965cc
src/apideck_unify/models/accounting_projectsupdateop.py:
- last_write_checksum: sha1:a4f9ef33f1dc4dea7b10d476e2edaa070805cc1f
+ last_write_checksum: sha1:7b68e988cfd732b5b8f424e663b85dae1b2403e1
src/apideck_unify/models/accounting_purchaseordersaddop.py:
last_write_checksum: sha1:c9a091c0e370eed194a9bc97bb45368ebe799157
src/apideck_unify/models/accounting_purchaseordersallop.py:
@@ -26860,7 +26970,7 @@ trackedFiles:
src/apideck_unify/models/accounting_refundsoneop.py:
last_write_checksum: sha1:2a1ed78953d147af84f79180048653abd615b6fd
src/apideck_unify/models/accounting_refundsupdateop.py:
- last_write_checksum: sha1:71fced621b826217c51d9d0baad33f5047646e68
+ last_write_checksum: sha1:68f4dc07e9787e9bfd831a7812f60088b0ccd437
src/apideck_unify/models/accounting_salesordersaddop.py:
last_write_checksum: sha1:015fd9436129b3d781beac6435e93b8af0dbb6d0
src/apideck_unify/models/accounting_salesordersallop.py:
@@ -26880,7 +26990,7 @@ trackedFiles:
src/apideck_unify/models/accounting_salesreceiptsoneop.py:
last_write_checksum: sha1:ae6062d90db8bea4fba3e425e683de63a3fcd504
src/apideck_unify/models/accounting_salesreceiptsupdateop.py:
- last_write_checksum: sha1:4f80fc2231c9a913ca5bb463f382a8a2302fcdca
+ last_write_checksum: sha1:b3cc33d323073fdd6f412832331b4b023e2a6a40
src/apideck_unify/models/accounting_subsidiariesaddop.py:
last_write_checksum: sha1:2c53218749783b49cdc39828a13d043ec7e38ba0
src/apideck_unify/models/accounting_subsidiariesallop.py:
@@ -27129,6 +27239,8 @@ trackedFiles:
last_write_checksum: sha1:415cc9974224e4a957015c57e0fa1bb377d98a65
src/apideck_unify/models/billpaymentcreateinput.py:
last_write_checksum: sha1:e8a70e84f0af92ddcb6fcc48d9cae63934c0c808
+ src/apideck_unify/models/billpaymentupdateinput.py:
+ last_write_checksum: sha1:022aa6d4734e1a123b15788eb157a7e782851efa
src/apideck_unify/models/billsfilter.py:
last_write_checksum: sha1:2881d6989e8ad218b674ad6c6911cd3173ff20d8
src/apideck_unify/models/billssort.py:
@@ -27373,6 +27485,8 @@ trackedFiles:
last_write_checksum: sha1:dc52d3de09c625ca2babae0c66c10d534e484d87
src/apideck_unify/models/creditnotessort.py:
last_write_checksum: sha1:b0a1c5a0acb96c8179b56f2bbaf9e6c48e0f4872
+ src/apideck_unify/models/creditnoteupdateinput.py:
+ last_write_checksum: sha1:eddc25bc5a6a14fb35f5a9772bdc6f39992a048f
src/apideck_unify/models/creditordebit.py:
last_write_checksum: sha1:edd5178093d2a4b5e97b17266d75c2598b5c090d
src/apideck_unify/models/crm_activitiesaddop.py:
@@ -27715,6 +27829,8 @@ trackedFiles:
last_write_checksum: sha1:54d0116cd709831502dabc70b910ddbea403c560
src/apideck_unify/models/expensecategory.py:
last_write_checksum: sha1:6df6411de454a5cf35c34b38969a79619910d179
+ src/apideck_unify/models/expensecategoryupdateinput.py:
+ last_write_checksum: sha1:7fe8a4ba047eb0337ade99910b5309a1e2b8cb67
src/apideck_unify/models/expenselineitem.py:
last_write_checksum: sha1:1cc563de5344ad838ab48f87d1499d7ddc38cb6f
src/apideck_unify/models/expenselineitem_input.py:
@@ -27727,8 +27843,12 @@ trackedFiles:
last_write_checksum: sha1:61104fdff0285d53643c1597a1113874ea4356d7
src/apideck_unify/models/expensereportsfilter.py:
last_write_checksum: sha1:340c4797a19c391d146a6094c45d282483fa7492
+ src/apideck_unify/models/expensereportupdateinput.py:
+ last_write_checksum: sha1:545815e11cb74b812f6a9ab1a39aba5337b0b069
src/apideck_unify/models/expensesfilter.py:
last_write_checksum: sha1:e976af441c4722197d79f7fbdaba17b052675d8c
+ src/apideck_unify/models/expenseupdateinput.py:
+ last_write_checksum: sha1:bc90c3e7556dcd969d80c172a54ed5ec9a4efffb
src/apideck_unify/models/filesfilter.py:
last_write_checksum: sha1:929828f85b45dd2379793a75f2e1c16032b93a25
src/apideck_unify/models/filessearch.py:
@@ -28439,6 +28559,8 @@ trackedFiles:
last_write_checksum: sha1:37ce9b61ba2c02301036ead4ae0526b010bac3f9
src/apideck_unify/models/paymentunit.py:
last_write_checksum: sha1:07b8e718c872314a055311906bf8c6dd1f35bf68
+ src/apideck_unify/models/paymentupdateinput.py:
+ last_write_checksum: sha1:8556aa727fdb74e0de2cccc584b3cb2de24e4201
src/apideck_unify/models/payroll.py:
last_write_checksum: sha1:1c4157720c5ac74a2902d7f3d0c520ca62a37e6d
src/apideck_unify/models/payrollsfilter.py:
@@ -28469,6 +28591,8 @@ trackedFiles:
last_write_checksum: sha1:e5df91550d9cb82f645b89ca25996f4d03550254
src/apideck_unify/models/projectssort.py:
last_write_checksum: sha1:fe22e634254b65c1f07b98151372852da40e441d
+ src/apideck_unify/models/projectupdateinput.py:
+ last_write_checksum: sha1:72425b8326a6bfb5c5bb3efb711460414417e923
src/apideck_unify/models/proxy_deleteproxyop.py:
last_write_checksum: sha1:4fc93324c1d5274f87eabbe3a437574b81c2b351
src/apideck_unify/models/proxy_getproxyop.py:
@@ -28507,6 +28631,8 @@ trackedFiles:
last_write_checksum: sha1:bae0fc337952a1a249aae12fbdff4d8eb881af76
src/apideck_unify/models/refundtype.py:
last_write_checksum: sha1:8a9e307ba9976bb48cc8d14b679cb6a234470f5a
+ src/apideck_unify/models/refundupdateinput.py:
+ last_write_checksum: sha1:baaab203ee2731ccc5a0890d5c8d5c74942dbf14
src/apideck_unify/models/requestcountallocation.py:
last_write_checksum: sha1:e212bdc841ad7b2c8fec91ccb191dde831283e68
src/apideck_unify/models/resourcestatus.py:
@@ -28525,6 +28651,8 @@ trackedFiles:
last_write_checksum: sha1:39db2d0d76a11ee3a00ab2676322e4523291493a
src/apideck_unify/models/salesreceiptssort.py:
last_write_checksum: sha1:dc6c2d194017d1e34d2b8d5fcf0e2f1b56b195a2
+ src/apideck_unify/models/salesreceiptupdateinput.py:
+ last_write_checksum: sha1:32dabff8e942a9b1a184cc8b7a85346a0c562f6f
src/apideck_unify/models/schedule.py:
last_write_checksum: sha1:0a493f453a3ce36ea3d71c0926d00aabb94b8301
src/apideck_unify/models/schemasupport.py:
@@ -28838,7 +28966,7 @@ trackedFiles:
src/apideck_unify/paymentmethods.py:
last_write_checksum: sha1:9ad408dfe5b2ccf1b5f2e96f08efb265c3c8e092
src/apideck_unify/payments.py:
- last_write_checksum: sha1:069736c6d9114e6a48525e434fb64bdb08180f6b
+ last_write_checksum: sha1:44867d48ab6db8ba5da316050d770d468208f30d
src/apideck_unify/payrolls.py:
last_write_checksum: sha1:5ccd0b249a6acb7ec93202cf3e02d445138a66b0
src/apideck_unify/pipelines.py:
@@ -28848,7 +28976,7 @@ trackedFiles:
src/apideck_unify/profitandloss_sdk.py:
last_write_checksum: sha1:4f8c0556e3d1e6906db32f7939a4096bb9a4d579
src/apideck_unify/projects.py:
- last_write_checksum: sha1:0098027dacc7f7b08783c6a0915d278d9ca43091
+ last_write_checksum: sha1:5b450da5ea86aa76a81e10f7eedc68660b6d995b
src/apideck_unify/proxy.py:
last_write_checksum: sha1:53cac21bb7cb5e5c3424547235d9915d7dcc5319
src/apideck_unify/purchaseorders.py:
@@ -28856,13 +28984,13 @@ trackedFiles:
src/apideck_unify/py.typed:
last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60
src/apideck_unify/quotes.py:
- last_write_checksum: sha1:acdb10639b63a1370b69dcf3d42261cf906b4ee8
+ last_write_checksum: sha1:df05a3073d8db2b356a511ee3b7fb5c8ab3adad5
src/apideck_unify/refunds.py:
- last_write_checksum: sha1:e656f42152706cd51d0c21b8cf5151d1c7fa9049
+ last_write_checksum: sha1:44b73277da1eea9c2933cfd56bec71c1c227a27d
src/apideck_unify/salesorders.py:
last_write_checksum: sha1:b6c3801e13262b0955f4719bdb527c300d289a34
src/apideck_unify/salesreceipts.py:
- last_write_checksum: sha1:1f8adef24efb6e8fd5f5f50e9b3f77f189311146
+ last_write_checksum: sha1:6f1a7e0ef4164589e70eb0ef4a3f50fb23534ce0
src/apideck_unify/sdk.py:
last_write_checksum: sha1:c36fd87d8a9d1b51c46deeb198cc84a9761aedfb
src/apideck_unify/sdkconfiguration.py:
@@ -28882,7 +29010,7 @@ trackedFiles:
src/apideck_unify/taxrates.py:
last_write_checksum: sha1:a0e49e5dac40330d8292c648392358efbcb94e3a
src/apideck_unify/timeoffrequests.py:
- last_write_checksum: sha1:653404a6177c58b53d79d8e89ca7e0f2c4206273
+ last_write_checksum: sha1:679cfedc46f49036f5cce133b0f2b33dcf523713
src/apideck_unify/trackingcategories.py:
last_write_checksum: sha1:3bbe59111e9f9f51d0c70e8a290931fda7738e48
src/apideck_unify/trialbalance_sdk.py:
diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml
index 27a097f8c..4de62f717 100644
--- a/.speakeasy/gen.yaml
+++ b/.speakeasy/gen.yaml
@@ -33,7 +33,7 @@ generation:
persistentEdits: {}
versioningStrategy: automatic
python:
- version: 0.55.0
+ version: 0.56.0
additionalDependencies:
dev: {}
main: {}
diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock
index b804eb9fa..f52470fae 100644
--- a/.speakeasy/workflow.lock
+++ b/.speakeasy/workflow.lock
@@ -2,20 +2,20 @@ speakeasyVersion: 1.656.1
sources:
Apideck:
sourceNamespace: apideck
- sourceRevisionDigest: sha256:cf298bcca833247f38fec53b1e21cbb6267cfe3701c688411239c84f4c8c3b10
- sourceBlobDigest: sha256:3a5bf2ab5057369f7dd50354d0c1d4d0162b3d06e541ee01dea2aedc09fe15f7
+ sourceRevisionDigest: sha256:f2087906494a2e1d2f7669f8c7a4d6b8ead4035101148a6a3b5e47e66e68d6c0
+ sourceBlobDigest: sha256:98ae0dfc4e65d7e45d56cfb135d230552693589c3eafc5d383ea9bde032af79a
tags:
- latest
- - speakeasy-sdk-regen-1793688532
- - 10.76.0
+ - speakeasy-sdk-regen-1793725717
+ - 10.77.0
targets:
apideck:
source: Apideck
sourceNamespace: apideck
- sourceRevisionDigest: sha256:cf298bcca833247f38fec53b1e21cbb6267cfe3701c688411239c84f4c8c3b10
- sourceBlobDigest: sha256:3a5bf2ab5057369f7dd50354d0c1d4d0162b3d06e541ee01dea2aedc09fe15f7
+ sourceRevisionDigest: sha256:f2087906494a2e1d2f7669f8c7a4d6b8ead4035101148a6a3b5e47e66e68d6c0
+ sourceBlobDigest: sha256:98ae0dfc4e65d7e45d56cfb135d230552693589c3eafc5d383ea9bde032af79a
codeSamplesNamespace: apideck-python-code-samples
- codeSamplesRevisionDigest: sha256:181d70b0f7858125290785142557bf6b54c488d3290aa987d2f32aa9daa4add1
+ codeSamplesRevisionDigest: sha256:d98cbed1295b9c609b1bba7c7f8b979c262cd2f15e46acb693e6f7362b7ea8ff
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
diff --git a/RELEASES.md b/RELEASES.md
index bc50b089a..9a046c6b6 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -1778,4 +1778,14 @@ Based on:
### Generated
- [python v0.55.0] .
### Releases
-- [PyPI v0.55.0] https://pypi.org/project/apideck-unify/0.55.0 - .
\ No newline at end of file
+- [PyPI v0.55.0] https://pypi.org/project/apideck-unify/0.55.0 - .
+
+## 2026-11-04 16:08:22
+### Changes
+Based on:
+- OpenAPI Doc
+- Speakeasy CLI 1.656.1 (2.753.1) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [python v0.56.0] .
+### Releases
+- [PyPI v0.56.0] https://pypi.org/project/apideck-unify/0.56.0 - .
\ No newline at end of file
diff --git a/docs/models/accountingbillpaymentsupdaterequest.md b/docs/models/accountingbillpaymentsupdaterequest.md
index fe38a4c72..f71547334 100644
--- a/docs/models/accountingbillpaymentsupdaterequest.md
+++ b/docs/models/accountingbillpaymentsupdaterequest.md
@@ -10,4 +10,4 @@
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
-| `bill_payment` | [models.BillPaymentInput](../models/billpaymentinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
+| `bill_payment_update_input` | [models.BillPaymentUpdateInput](../models/billpaymentupdateinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/accountingcreditnotesupdaterequest.md b/docs/models/accountingcreditnotesupdaterequest.md
index 5cd2fd742..6867e49ae 100644
--- a/docs/models/accountingcreditnotesupdaterequest.md
+++ b/docs/models/accountingcreditnotesupdaterequest.md
@@ -10,4 +10,4 @@
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
-| `credit_note` | [models.CreditNoteInput](../models/creditnoteinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
+| `credit_note_update_input` | [models.CreditNoteUpdateInput](../models/creditnoteupdateinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/accountingexpensecategoriesupdaterequest.md b/docs/models/accountingexpensecategoriesupdaterequest.md
index e0de9547e..9b6ca186c 100644
--- a/docs/models/accountingexpensecategoriesupdaterequest.md
+++ b/docs/models/accountingexpensecategoriesupdaterequest.md
@@ -10,4 +10,4 @@
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
-| `expense_category` | [models.ExpenseCategoryInput](../models/expensecategoryinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
+| `expense_category_update_input` | [models.ExpenseCategoryUpdateInput](../models/expensecategoryupdateinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/accountingexpensereportsupdaterequest.md b/docs/models/accountingexpensereportsupdaterequest.md
index 1a82b3ddd..c908f305e 100644
--- a/docs/models/accountingexpensereportsupdaterequest.md
+++ b/docs/models/accountingexpensereportsupdaterequest.md
@@ -10,4 +10,4 @@
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
-| `expense_report` | [models.ExpenseReportInput](../models/expensereportinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
+| `expense_report_update_input` | [models.ExpenseReportUpdateInput](../models/expensereportupdateinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/accountingexpensesupdaterequest.md b/docs/models/accountingexpensesupdaterequest.md
index b88eee0fc..c929d49e4 100644
--- a/docs/models/accountingexpensesupdaterequest.md
+++ b/docs/models/accountingexpensesupdaterequest.md
@@ -10,4 +10,4 @@
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
-| `expense` | [models.ExpenseInput](../models/expenseinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
+| `expense_update_input` | [models.ExpenseUpdateInput](../models/expenseupdateinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/accountingpaymentsupdaterequest.md b/docs/models/accountingpaymentsupdaterequest.md
index 412b1219e..e302d2263 100644
--- a/docs/models/accountingpaymentsupdaterequest.md
+++ b/docs/models/accountingpaymentsupdaterequest.md
@@ -11,4 +11,4 @@
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `company_id_param` | *Optional[str]* | :heavy_minus_sign: | The ID of the company to scope requests to. For connectors that support multi-company, this overrides the default company configured in connection settings. | 12345 |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
-| `payment` | [models.PaymentInput](../models/paymentinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
+| `payment_update_input` | [models.PaymentUpdateInput](../models/paymentupdateinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/accountingprojectsupdaterequest.md b/docs/models/accountingprojectsupdaterequest.md
index 7141bfe54..597d9bfc8 100644
--- a/docs/models/accountingprojectsupdaterequest.md
+++ b/docs/models/accountingprojectsupdaterequest.md
@@ -11,4 +11,4 @@
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `company_id_param` | *Optional[str]* | :heavy_minus_sign: | The ID of the company to scope requests to. For connectors that support multi-company, this overrides the default company configured in connection settings. | 12345 |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
-| `project` | [models.ProjectInput](../models/projectinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
+| `project_update_input` | [models.ProjectUpdateInput](../models/projectupdateinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/accountingrefundsupdaterequest.md b/docs/models/accountingrefundsupdaterequest.md
index 9839152f4..ecf0eec74 100644
--- a/docs/models/accountingrefundsupdaterequest.md
+++ b/docs/models/accountingrefundsupdaterequest.md
@@ -10,4 +10,4 @@
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
-| `refund` | [models.RefundInput](../models/refundinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
+| `refund_update_input` | [models.RefundUpdateInput](../models/refundupdateinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/accountingsalesreceiptsupdaterequest.md b/docs/models/accountingsalesreceiptsupdaterequest.md
index 361efdcac..5308d7fd0 100644
--- a/docs/models/accountingsalesreceiptsupdaterequest.md
+++ b/docs/models/accountingsalesreceiptsupdaterequest.md
@@ -11,4 +11,4 @@
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
| `company_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the company to scope requests to. For connectors that support multi-company, this overrides the default company configured in connection settings. | 12345 |
-| `sales_receipt` | [models.SalesReceiptInput](../models/salesreceiptinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
+| `sales_receipt_update_input` | [models.SalesReceiptUpdateInput](../models/salesreceiptupdateinput.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/billpaymentupdateinput.md b/docs/models/billpaymentupdateinput.md
new file mode 100644
index 000000000..5b0832930
--- /dev/null
+++ b/docs/models/billpaymentupdateinput.md
@@ -0,0 +1,32 @@
+# BillPaymentUpdateInput
+
+The writable shape of BillPayment for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `currency` | [OptionalNullable[models.Currency]](../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
+| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
+| `total_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | The total amount of the transaction or record | 49.99 |
+| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional transaction reference message ie: Debit remittance detail. | 123456 |
+| `payment_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Payment method used for the transaction, such as cash, credit card, bank transfer, or check | cash |
+| `payment_method_reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference message returned by payment method on processing | 123456 |
+| `payment_method_id` | *OptionalNullable[str]* | :heavy_minus_sign: | A unique identifier for an object. | 12345 |
+| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
+| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
+| `supplier` | [OptionalNullable[models.LinkedSupplierInput]](../models/linkedsupplierinput.md) | :heavy_minus_sign: | The supplier this entity is linked to. | |
+| `company_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The company ID the transaction belongs to | 12345 |
+| `subsidiary` | [OptionalNullable[models.LinkedSubsidiaryInput]](../models/linkedsubsidiaryinput.md) | :heavy_minus_sign: | N/A | |
+| `reconciled` | *OptionalNullable[bool]* | :heavy_minus_sign: | Indicates if the transaction has been reconciled. | true |
+| `status` | [Optional[models.PaymentStatus]](../models/paymentstatus.md) | :heavy_minus_sign: | Status of payment | authorised |
+| `type` | [Optional[models.BillPaymentUpdateInputBillPaymentType]](../models/billpaymentupdateinputbillpaymenttype.md) | :heavy_minus_sign: | Type of payment | accounts_payable |
+| `allocations` | List[[models.BillPaymentUpdateInputAllocations](../models/billpaymentupdateinputallocations.md)] | :heavy_minus_sign: | N/A | |
+| `note` | *OptionalNullable[str]* | :heavy_minus_sign: | Note associated with the transaction | Some notes about this transaction |
+| `number` | *OptionalNullable[str]* | :heavy_minus_sign: | Number associated with the transaction | 123456 |
+| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
+| `custom_fields` | List[[models.CustomField](../models/customfield.md)] | :heavy_minus_sign: | N/A | |
+| `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 |
+| `display_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Id to be displayed. | 123456 |
+| `pass_through` | List[[models.PassThroughBody](../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | |
\ No newline at end of file
diff --git a/docs/models/billpaymentupdateinputallocations.md b/docs/models/billpaymentupdateinputallocations.md
new file mode 100644
index 000000000..cbc3f6ddf
--- /dev/null
+++ b/docs/models/billpaymentupdateinputallocations.md
@@ -0,0 +1,11 @@
+# BillPaymentUpdateInputAllocations
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| `id` | *OptionalNullable[str]* | :heavy_minus_sign: | A unique identifier for an object. | 12345 |
+| `type` | [Optional[models.BillPaymentUpdateInputAllocationType]](../models/billpaymentupdateinputallocationtype.md) | :heavy_minus_sign: | Type of entity this payment should be attributed to. | bill |
+| `amount` | *OptionalNullable[float]* | :heavy_minus_sign: | Amount of payment that should be attributed to this allocation. If null, the total_amount will be used. | 49.99 |
+| `allocation_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the allocation | 123456 |
\ No newline at end of file
diff --git a/docs/models/billpaymentupdateinputallocationtype.md b/docs/models/billpaymentupdateinputallocationtype.md
new file mode 100644
index 000000000..38b29291e
--- /dev/null
+++ b/docs/models/billpaymentupdateinputallocationtype.md
@@ -0,0 +1,16 @@
+# BillPaymentUpdateInputAllocationType
+
+Type of entity this payment should be attributed to.
+
+
+## Values
+
+| Name | Value |
+| --------------- | --------------- |
+| `BILL` | bill |
+| `EXPENSE` | expense |
+| `CREDIT_MEMO` | credit_memo |
+| `OVER_PAYMENT` | over_payment |
+| `PRE_PAYMENT` | pre_payment |
+| `JOURNAL_ENTRY` | journal_entry |
+| `OTHER` | other |
\ No newline at end of file
diff --git a/docs/models/billpaymentupdateinputbillpaymenttype.md b/docs/models/billpaymentupdateinputbillpaymenttype.md
new file mode 100644
index 000000000..a8455fc0d
--- /dev/null
+++ b/docs/models/billpaymentupdateinputbillpaymenttype.md
@@ -0,0 +1,13 @@
+# BillPaymentUpdateInputBillPaymentType
+
+Type of payment
+
+
+## Values
+
+| Name | Value |
+| ------------------------------ | ------------------------------ |
+| `ACCOUNTS_PAYABLE_CREDIT` | accounts_payable_credit |
+| `ACCOUNTS_PAYABLE_OVERPAYMENT` | accounts_payable_overpayment |
+| `ACCOUNTS_PAYABLE_PREPAYMENT` | accounts_payable_prepayment |
+| `ACCOUNTS_PAYABLE` | accounts_payable |
\ No newline at end of file
diff --git a/docs/models/creditnoteupdateinput.md b/docs/models/creditnoteupdateinput.md
new file mode 100644
index 000000000..57b8e5d37
--- /dev/null
+++ b/docs/models/creditnoteupdateinput.md
@@ -0,0 +1,41 @@
+# CreditNoteUpdateInput
+
+The writable shape of CreditNote for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `number` | *OptionalNullable[str]* | :heavy_minus_sign: | Credit note number. | OIT00546 |
+| `customer` | [OptionalNullable[models.LinkedCustomerInput]](../models/linkedcustomerinput.md) | :heavy_minus_sign: | The customer this entity is linked to. | |
+| `company_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The company ID the transaction belongs to | 12345 |
+| `subsidiary` | [OptionalNullable[models.LinkedSubsidiaryInput]](../models/linkedsubsidiaryinput.md) | :heavy_minus_sign: | N/A | |
+| `location_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the location | 12345 |
+| `department_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the department | 12345 |
+| `currency` | [OptionalNullable[models.Currency]](../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
+| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
+| `tax_inclusive` | *OptionalNullable[bool]* | :heavy_minus_sign: | Amounts are including tax | true |
+| `sub_total` | *OptionalNullable[float]* | :heavy_minus_sign: | Sub-total amount, normally before tax. | 27500 |
+| `total_amount` | *Optional[float]* | :heavy_minus_sign: | Amount of transaction | 49.99 |
+| `total_tax` | *OptionalNullable[float]* | :heavy_minus_sign: | Total tax amount applied to this invoice. | 2500 |
+| `tax_code` | *OptionalNullable[str]* | :heavy_minus_sign: | Applicable tax id/code override if tax is not supplied on a line item basis. | 1234 |
+| `balance` | *OptionalNullable[float]* | :heavy_minus_sign: | The balance reflecting any payments made against the transaction. | 27500 |
+| `remaining_credit` | *OptionalNullable[float]* | :heavy_minus_sign: | Indicates the total credit amount still available to apply towards the payment. | 27500 |
+| `status` | [Optional[models.CreditNoteUpdateInputCreditNoteStatus]](../models/creditnoteupdateinputcreditnotestatus.md) | :heavy_minus_sign: | Status of credit notes | authorised |
+| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference message ie: Debit remittance detail. | 123456 |
+| `date_issued` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date credit note issued - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
+| `date_paid` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date credit note paid - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
+| `type` | [Optional[models.CreditNoteUpdateInputCreditNoteType]](../models/creditnoteupdateinputcreditnotetype.md) | :heavy_minus_sign: | Whether this credit note reduces an amount owed by a customer (accounts receivable) or owed to a supplier (accounts payable). `accounts_payable_credit` support is connector-specific — most connectors only expose the accounts-receivable side. Check the connector's gotchas for known deviations. | accounts_receivable_credit |
+| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
+| `line_items` | List[[models.InvoiceLineItemInput](../models/invoicelineiteminput.md)] | :heavy_minus_sign: | N/A | |
+| `allocations` | List[[models.AllocationInput](../models/allocationinput.md)] | :heavy_minus_sign: | N/A | |
+| `note` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional note to be associated with the credit note. | Some notes about this credit note |
+| `terms` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional terms to be associated with the credit note. | Some terms about this credit note |
+| `terms_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the payment terms | 12345 |
+| `billing_address` | [Optional[models.Address]](../models/address.md) | :heavy_minus_sign: | N/A | |
+| `shipping_address` | [Optional[models.Address]](../models/address.md) | :heavy_minus_sign: | N/A | |
+| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
+| `custom_fields` | List[[models.CustomField](../models/customfield.md)] | :heavy_minus_sign: | N/A | |
+| `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 |
+| `pass_through` | List[[models.PassThroughBody](../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | |
\ No newline at end of file
diff --git a/docs/models/creditnoteupdateinputcreditnotestatus.md b/docs/models/creditnoteupdateinputcreditnotestatus.md
new file mode 100644
index 000000000..06bd93b06
--- /dev/null
+++ b/docs/models/creditnoteupdateinputcreditnotestatus.md
@@ -0,0 +1,16 @@
+# CreditNoteUpdateInputCreditNoteStatus
+
+Status of credit notes
+
+
+## Values
+
+| Name | Value |
+| ---------------- | ---------------- |
+| `DRAFT` | draft |
+| `AUTHORISED` | authorised |
+| `POSTED` | posted |
+| `PARTIALLY_PAID` | partially_paid |
+| `PAID` | paid |
+| `VOIDED` | voided |
+| `DELETED` | deleted |
\ No newline at end of file
diff --git a/docs/models/creditnoteupdateinputcreditnotetype.md b/docs/models/creditnoteupdateinputcreditnotetype.md
new file mode 100644
index 000000000..a8da306bf
--- /dev/null
+++ b/docs/models/creditnoteupdateinputcreditnotetype.md
@@ -0,0 +1,11 @@
+# CreditNoteUpdateInputCreditNoteType
+
+Whether this credit note reduces an amount owed by a customer (accounts receivable) or owed to a supplier (accounts payable). `accounts_payable_credit` support is connector-specific — most connectors only expose the accounts-receivable side. Check the connector's gotchas for known deviations.
+
+
+## Values
+
+| Name | Value |
+| ---------------------------- | ---------------------------- |
+| `ACCOUNTS_RECEIVABLE_CREDIT` | accounts_receivable_credit |
+| `ACCOUNTS_PAYABLE_CREDIT` | accounts_payable_credit |
\ No newline at end of file
diff --git a/docs/models/expensecategoryupdateinput.md b/docs/models/expensecategoryupdateinput.md
new file mode 100644
index 000000000..efdbb94ae
--- /dev/null
+++ b/docs/models/expensecategoryupdateinput.md
@@ -0,0 +1,21 @@
+# ExpenseCategoryUpdateInput
+
+The writable shape of ExpenseCategory for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `display_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Id to be displayed. | 123456 |
+| `name` | *Optional[str]* | :heavy_minus_sign: | The name of the expense category. | Travel |
+| `code` | *OptionalNullable[str]* | :heavy_minus_sign: | The code or external identifier of the expense category. | TRAVEL-001 |
+| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | The description of the expense category. | Travel-related expenses including flights, hotels, and ground transportation. |
+| `status` | [OptionalNullable[models.ExpenseCategoryUpdateInputStatus]](../models/expensecategoryupdateinputstatus.md) | :heavy_minus_sign: | The status of the expense category. | active |
+| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
+| `offset_account` | [OptionalNullable[models.LinkedLedgerAccount]](../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
+| `tax_rate` | [Optional[models.LinkedTaxRateInput]](../models/linkedtaxrateinput.md) | :heavy_minus_sign: | N/A | |
+| `rate_required` | *OptionalNullable[bool]* | :heavy_minus_sign: | Whether the expense category requires rate/quantity entry (e.g. mileage at $/mile). | false |
+| `default_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Default rate when rate_required is true (e.g. 0.67 for mileage). | 0.67 |
+| `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 |
+| `pass_through` | List[[models.PassThroughBody](../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | |
\ No newline at end of file
diff --git a/docs/models/expensecategoryupdateinputstatus.md b/docs/models/expensecategoryupdateinputstatus.md
new file mode 100644
index 000000000..5e57ab8e1
--- /dev/null
+++ b/docs/models/expensecategoryupdateinputstatus.md
@@ -0,0 +1,11 @@
+# ExpenseCategoryUpdateInputStatus
+
+The status of the expense category.
+
+
+## Values
+
+| Name | Value |
+| ---------- | ---------- |
+| `ACTIVE` | active |
+| `INACTIVE` | inactive |
\ No newline at end of file
diff --git a/docs/models/expensereportupdateinput.md b/docs/models/expensereportupdateinput.md
new file mode 100644
index 000000000..82622759e
--- /dev/null
+++ b/docs/models/expensereportupdateinput.md
@@ -0,0 +1,37 @@
+# ExpenseReportUpdateInput
+
+The writable shape of ExpenseReport for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `display_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Id to be displayed. | 123456 |
+| `number` | *OptionalNullable[str]* | :heavy_minus_sign: | The expense report number. | ER-001 |
+| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title or purpose of the expense report. | Q1 Business Travel |
+| `employee` | [Optional[models.ExpenseReportUpdateInputEmployee]](../models/expensereportupdateinputemployee.md) | :heavy_minus_sign: | The employee who submitted the expense report. | |
+| `status` | [OptionalNullable[models.ExpenseReportUpdateInputStatus]](../models/expensereportupdateinputstatus.md) | :heavy_minus_sign: | The status of the expense report. | submitted |
+| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
+| `posting_date` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | The date the expense report was posted to the general ledger. | 2024-06-01 |
+| `due_date` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | Date when reimbursement is due. | 2024-06-15 |
+| `currency` | [OptionalNullable[models.Currency]](../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
+| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
+| `sub_total` | *OptionalNullable[float]* | :heavy_minus_sign: | Subtotal amount, normally before tax. | 250 |
+| `total_tax` | *OptionalNullable[float]* | :heavy_minus_sign: | Total tax amount applied to this transaction. | 25 |
+| `total_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | Total amount of all expense lines including tax. | 1250.75 |
+| `reimbursable_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | Total reimbursable amount (may differ from total if some expenses are non-reimbursable). | 1100 |
+| `memo` | *OptionalNullable[str]* | :heavy_minus_sign: | The memo of the expense report. | Business travel expenses for Q1 client meetings |
+| `department` | [OptionalNullable[models.LinkedDepartmentInput]](../models/linkeddepartmentinput.md) | :heavy_minus_sign: | N/A | |
+| `location` | [OptionalNullable[models.LinkedLocationInput]](../models/linkedlocationinput.md) | :heavy_minus_sign: | N/A | |
+| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
+| `accounting_period` | [OptionalNullable[models.ExpenseReportUpdateInputAccountingPeriod]](../models/expensereportupdateinputaccountingperiod.md) | :heavy_minus_sign: | The accounting period the expense report is posted to. | |
+| `line_items` | List[[models.ExpenseReportLineItemInput](../models/expensereportlineiteminput.md)] | :heavy_minus_sign: | Expense line items linked to this expense report. | |
+| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference identifier for the transaction. | INV-2024-001 |
+| `subsidiary` | [OptionalNullable[models.LinkedSubsidiaryInput]](../models/linkedsubsidiaryinput.md) | :heavy_minus_sign: | N/A | |
+| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
+| `tax_inclusive` | *OptionalNullable[bool]* | :heavy_minus_sign: | Amounts are including tax | true |
+| `approved_by` | [OptionalNullable[models.ExpenseReportUpdateInputApprovedBy]](../models/expensereportupdateinputapprovedby.md) | :heavy_minus_sign: | The person who approved the expense report. | |
+| `custom_fields` | List[[models.CustomField](../models/customfield.md)] | :heavy_minus_sign: | N/A | |
+| `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 |
+| `pass_through` | List[[models.PassThroughBody](../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | |
\ No newline at end of file
diff --git a/docs/models/expensereportupdateinputaccountingperiod.md b/docs/models/expensereportupdateinputaccountingperiod.md
new file mode 100644
index 000000000..dbc5604d0
--- /dev/null
+++ b/docs/models/expensereportupdateinputaccountingperiod.md
@@ -0,0 +1,11 @@
+# ExpenseReportUpdateInputAccountingPeriod
+
+The accounting period the expense report is posted to.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- |
+| `id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier for the accounting period. | 12345 |
+| `name` | *OptionalNullable[str]* | :heavy_minus_sign: | The name of the accounting period. | Q1 2024 |
\ No newline at end of file
diff --git a/docs/models/expensereportupdateinputapprovedby.md b/docs/models/expensereportupdateinputapprovedby.md
new file mode 100644
index 000000000..f1e5b82a7
--- /dev/null
+++ b/docs/models/expensereportupdateinputapprovedby.md
@@ -0,0 +1,11 @@
+# ExpenseReportUpdateInputApprovedBy
+
+The person who approved the expense report.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- |
+| `id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier for the approver. | 12345 |
+| `display_name` | *OptionalNullable[str]* | :heavy_minus_sign: | The display name of the approver. | Jane Smith |
\ No newline at end of file
diff --git a/docs/models/expensereportupdateinputemployee.md b/docs/models/expensereportupdateinputemployee.md
new file mode 100644
index 000000000..b3645dae5
--- /dev/null
+++ b/docs/models/expensereportupdateinputemployee.md
@@ -0,0 +1,11 @@
+# ExpenseReportUpdateInputEmployee
+
+The employee who submitted the expense report.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- |
+| `id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier for the employee. | 12345 |
+| `display_name` | *OptionalNullable[str]* | :heavy_minus_sign: | The display name of the employee. | John Doe |
\ No newline at end of file
diff --git a/docs/models/expensereportupdateinputstatus.md b/docs/models/expensereportupdateinputstatus.md
new file mode 100644
index 000000000..752f7ba11
--- /dev/null
+++ b/docs/models/expensereportupdateinputstatus.md
@@ -0,0 +1,16 @@
+# ExpenseReportUpdateInputStatus
+
+The status of the expense report.
+
+
+## Values
+
+| Name | Value |
+| ------------ | ------------ |
+| `DRAFT` | draft |
+| `SUBMITTED` | submitted |
+| `APPROVED` | approved |
+| `REIMBURSED` | reimbursed |
+| `REJECTED` | rejected |
+| `REVERSED` | reversed |
+| `VOIDED` | voided |
\ No newline at end of file
diff --git a/docs/models/expenseupdateinput.md b/docs/models/expenseupdateinput.md
new file mode 100644
index 000000000..20c58b9e5
--- /dev/null
+++ b/docs/models/expenseupdateinput.md
@@ -0,0 +1,38 @@
+# ExpenseUpdateInput
+
+The writable shape of Expense for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `display_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Id to be displayed. | 123456 |
+| `number` | *OptionalNullable[str]* | :heavy_minus_sign: | Number. | OIT00546 |
+| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
+| ~~`account_id`~~ | *Optional[str]* | :heavy_minus_sign: | : warning: ** DEPRECATED **: Deprecated. Use account instead..
The unique identifier for the ledger account that this expense should be credited to. Deprecated, use account instead. | 123456 |
+| `account` | [OptionalNullable[models.LinkedFinancialAccountInput]](../models/linkedfinancialaccountinput.md) | :heavy_minus_sign: | A flexible account reference that can represent a ledger account (GL account), a bank account, or an employee payable account, depending on the connector's requirements. | |
+| ~~`supplier_id`~~ | *Optional[str]* | :heavy_minus_sign: | : warning: ** DEPRECATED **: Deprecated. Use supplier instead..
The ID of the supplier this entity is linked to. Deprecated, use supplier instead. | 12345 |
+| `supplier` | [OptionalNullable[models.LinkedSupplierInput]](../models/linkedsupplierinput.md) | :heavy_minus_sign: | The supplier this entity is linked to. | |
+| `company_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The company ID the transaction belongs to | 12345 |
+| `location` | [OptionalNullable[models.LinkedLocationInput]](../models/linkedlocationinput.md) | :heavy_minus_sign: | N/A | |
+| `department_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the department | 12345 |
+| `department` | [OptionalNullable[models.LinkedDepartmentInput]](../models/linkeddepartmentinput.md) | :heavy_minus_sign: | N/A | |
+| `payment_type` | [OptionalNullable[models.ExpenseUpdateInputPaymentType]](../models/expenseupdateinputpaymenttype.md) | :heavy_minus_sign: | The type of payment for the expense. | cash |
+| `currency` | [OptionalNullable[models.Currency]](../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
+| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
+| `type` | [OptionalNullable[models.ExpenseUpdateInputExpenseType]](../models/expenseupdateinputexpensetype.md) | :heavy_minus_sign: | The type of expense. | expense |
+| `memo` | *OptionalNullable[str]* | :heavy_minus_sign: | The memo of the expense. | For travel expenses incurred on 2024-05-15 |
+| `tax_rate` | [Optional[models.LinkedTaxRateInput]](../models/linkedtaxrateinput.md) | :heavy_minus_sign: | N/A | |
+| `tax_inclusive` | *OptionalNullable[bool]* | :heavy_minus_sign: | Amounts are including tax | true |
+| `sub_total` | *OptionalNullable[float]* | :heavy_minus_sign: | Subtotal amount, normally before tax. | 250 |
+| `total_tax` | *OptionalNullable[float]* | :heavy_minus_sign: | Total tax amount applied to this transaction. | 25 |
+| `total_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | The total amount of the expense line item. | 275 |
+| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
+| `line_items` | List[[models.ExpenseLineItemInput](../models/expenselineiteminput.md)] | :heavy_minus_sign: | Expense line items linked to this expense. | |
+| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference identifier for the transaction. | INV-2024-001 |
+| `source_document_url` | *OptionalNullable[str]* | :heavy_minus_sign: | URL link to a source document - shown as 'Go to [appName]' in the downstream app. Currently only supported for Xero. | https://www.invoicesolution.com/expense/123456 |
+| `custom_fields` | List[[models.CustomField](../models/customfield.md)] | :heavy_minus_sign: | N/A | |
+| `status` | [OptionalNullable[models.ExpenseUpdateInputStatus]](../models/expenseupdateinputstatus.md) | :heavy_minus_sign: | Expense status | draft |
+| `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 |
+| `pass_through` | List[[models.PassThroughBody](../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | |
\ No newline at end of file
diff --git a/docs/models/expenseupdateinputexpensetype.md b/docs/models/expenseupdateinputexpensetype.md
new file mode 100644
index 000000000..96df29f40
--- /dev/null
+++ b/docs/models/expenseupdateinputexpensetype.md
@@ -0,0 +1,11 @@
+# ExpenseUpdateInputExpenseType
+
+The type of expense.
+
+
+## Values
+
+| Name | Value |
+| --------- | --------- |
+| `EXPENSE` | expense |
+| `REFUND` | refund |
\ No newline at end of file
diff --git a/docs/models/expenseupdateinputpaymenttype.md b/docs/models/expenseupdateinputpaymenttype.md
new file mode 100644
index 000000000..ee8d29d70
--- /dev/null
+++ b/docs/models/expenseupdateinputpaymenttype.md
@@ -0,0 +1,13 @@
+# ExpenseUpdateInputPaymentType
+
+The type of payment for the expense.
+
+
+## Values
+
+| Name | Value |
+| ------------- | ------------- |
+| `CASH` | cash |
+| `CHECK` | check |
+| `CREDIT_CARD` | credit_card |
+| `OTHER` | other |
\ No newline at end of file
diff --git a/docs/models/expenseupdateinputstatus.md b/docs/models/expenseupdateinputstatus.md
new file mode 100644
index 000000000..2cc9d7c90
--- /dev/null
+++ b/docs/models/expenseupdateinputstatus.md
@@ -0,0 +1,12 @@
+# ExpenseUpdateInputStatus
+
+Expense status
+
+
+## Values
+
+| Name | Value |
+| -------- | -------- |
+| `DRAFT` | draft |
+| `POSTED` | posted |
+| `VOIDED` | voided |
\ No newline at end of file
diff --git a/docs/models/paymentupdateinput.md b/docs/models/paymentupdateinput.md
new file mode 100644
index 000000000..e9544359f
--- /dev/null
+++ b/docs/models/paymentupdateinput.md
@@ -0,0 +1,35 @@
+# PaymentUpdateInput
+
+The writable shape of Payment for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `currency` | [OptionalNullable[models.Currency]](../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
+| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
+| `total_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | The total amount of the transaction or record | 49.99 |
+| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional transaction reference message ie: Debit remittance detail. | 123456 |
+| `payment_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Payment method used for the transaction, such as cash, credit card, bank transfer, or check | cash |
+| `payment_method_reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference message returned by payment method on processing | 123456 |
+| `payment_method_id` | *OptionalNullable[str]* | :heavy_minus_sign: | A unique identifier for an object. | 12345 |
+| ~~`accounts_receivable_account_type`~~ | *OptionalNullable[str]* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This field is deprecated and may be removed in a future version..
Type of accounts receivable account. | Account |
+| ~~`accounts_receivable_account_id`~~ | *OptionalNullable[str]* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This field is deprecated and may be removed in a future version..
Unique identifier for the account to allocate payment to. | 123456 |
+| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
+| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
+| `customer` | [OptionalNullable[models.LinkedCustomerInput]](../models/linkedcustomerinput.md) | :heavy_minus_sign: | The customer this entity is linked to. | |
+| ~~`supplier`~~ | [OptionalNullable[models.DeprecatedLinkedSupplierInput]](../models/deprecatedlinkedsupplierinput.md) | :heavy_minus_sign: | : warning: ** DEPRECATED **: This field is deprecated and may be removed in a future version..
The supplier this entity is linked to. | |
+| `company_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The company ID the transaction belongs to | 12345 |
+| `subsidiary` | [OptionalNullable[models.LinkedSubsidiaryInput]](../models/linkedsubsidiaryinput.md) | :heavy_minus_sign: | N/A | |
+| `reconciled` | *OptionalNullable[bool]* | :heavy_minus_sign: | Indicates if the transaction has been reconciled. | true |
+| `status` | [Optional[models.PaymentStatus]](../models/paymentstatus.md) | :heavy_minus_sign: | Status of payment | authorised |
+| `type` | [Optional[models.PaymentType]](../models/paymenttype.md) | :heavy_minus_sign: | Type of payment | accounts_receivable |
+| `allocations` | List[[models.AllocationInput](../models/allocationinput.md)] | :heavy_minus_sign: | N/A | |
+| `note` | *OptionalNullable[str]* | :heavy_minus_sign: | Note associated with the transaction | Some notes about this transaction |
+| `number` | *OptionalNullable[str]* | :heavy_minus_sign: | Number associated with the transaction | 123456 |
+| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
+| `custom_fields` | List[[models.CustomField](../models/customfield.md)] | :heavy_minus_sign: | N/A | |
+| `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 |
+| `display_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Id to be displayed. | 123456 |
+| `pass_through` | List[[models.PassThroughBody](../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | |
\ No newline at end of file
diff --git a/docs/models/projectupdateinput.md b/docs/models/projectupdateinput.md
new file mode 100644
index 000000000..3d800423e
--- /dev/null
+++ b/docs/models/projectupdateinput.md
@@ -0,0 +1,45 @@
+# ProjectUpdateInput
+
+The writable shape of Project for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| `name` | *Optional[str]* | :heavy_minus_sign: | Name of the project | Website Redesign Project |
+| `display_id` | *OptionalNullable[str]* | :heavy_minus_sign: | User-friendly project identifier | PROJ-001 |
+| `reference_id` | *OptionalNullable[str]* | :heavy_minus_sign: | External reference identifier for the project | WD-REF-2024-001 |
+| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | Detailed description of the project | Complete redesign of the company website including new branding and improved user experience |
+| `status` | [OptionalNullable[models.ProjectUpdateInputProjectStatus]](../models/projectupdateinputprojectstatus.md) | :heavy_minus_sign: | Current status of the project | active |
+| `active` | *OptionalNullable[bool]* | :heavy_minus_sign: | Indicates whether the project is currently active or inactive | true |
+| `project_type` | [OptionalNullable[models.ProjectUpdateInputProjectType]](../models/projectupdateinputprojecttype.md) | :heavy_minus_sign: | Type or category of the project | client_project |
+| `priority` | [OptionalNullable[models.ProjectUpdateInputPriority]](../models/projectupdateinputpriority.md) | :heavy_minus_sign: | Priority level of the project | high |
+| `completion_percentage` | *OptionalNullable[float]* | :heavy_minus_sign: | Percentage of project completion (0-100) | 75.5 |
+| `start_date` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | Start date of the project | 2024-01-15 |
+| `end_date` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | Expected or planned end date of the project | 2024-06-30 |
+| `completion_date` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | Actual end date of the project | 2024-08-06 |
+| `customer` | [OptionalNullable[models.LinkedCustomerInput]](../models/linkedcustomerinput.md) | :heavy_minus_sign: | The customer this entity is linked to. | |
+| `department` | [OptionalNullable[models.ProjectUpdateInputDepartment]](../models/projectupdateinputdepartment.md) | :heavy_minus_sign: | Department or organizational unit associated with the project | |
+| `company_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The company ID the transaction belongs to | 12345 |
+| `owner_id` | *OptionalNullable[str]* | :heavy_minus_sign: | ID of the user who owns/manages this project | 12345 |
+| `parent_project` | [OptionalNullable[models.ProjectUpdateInputParentProject]](../models/projectupdateinputparentproject.md) | :heavy_minus_sign: | Parent project if this is a subproject | |
+| `currency` | [OptionalNullable[models.Currency]](../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
+| `budget_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | Total budgeted amount for the project | 50000 |
+| `approved_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | Approved budget amount for the project | 48000 |
+| `budget_hours` | *OptionalNullable[float]* | :heavy_minus_sign: | Total budgeted hours for the project | 400 |
+| `hourly_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Default hourly rate for project work | 125 |
+| `billing_method` | [OptionalNullable[models.ProjectUpdateInputBillingMethod]](../models/projectupdateinputbillingmethod.md) | :heavy_minus_sign: | Method used for billing this project | time_and_materials |
+| `is_billable` | *OptionalNullable[bool]* | :heavy_minus_sign: | Indicates if the project is billable to the customer | true |
+| `phase` | [OptionalNullable[models.ProjectUpdateInputProjectPhase]](../models/projectupdateinputprojectphase.md) | :heavy_minus_sign: | Current phase of the project lifecycle | execution |
+| `tax_rate` | [Optional[models.LinkedTaxRateInput]](../models/linkedtaxrateinput.md) | :heavy_minus_sign: | N/A | |
+| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
+| `tags` | List[*str*] | :heavy_minus_sign: | Tags associated with the project | [
"website",
"redesign",
"urgent"
] |
+| `notes` | *OptionalNullable[str]* | :heavy_minus_sign: | Additional notes about the project | Client has requested modern design with mobile-first approach |
+| `contract_number` | *OptionalNullable[str]* | :heavy_minus_sign: | Contract or agreement number associated with the project | CNT-2024-001 |
+| `profit_margin` | *OptionalNullable[float]* | :heavy_minus_sign: | Expected profit margin percentage for the project | 15.5 |
+| `schedule_status` | [OptionalNullable[models.ProjectUpdateInputScheduleStatus]](../models/projectupdateinputschedulestatus.md) | :heavy_minus_sign: | Current status of project schedule compared to plan | on_schedule |
+| `addresses` | List[[models.Address](../models/address.md)] | :heavy_minus_sign: | An array of addresses associated with the project (billing, job site, etc.) | |
+| `team_size` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of team members assigned to the project | 8 |
+| `custom_fields` | List[[models.CustomField](../models/customfield.md)] | :heavy_minus_sign: | N/A | |
+| `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 |
\ No newline at end of file
diff --git a/docs/models/projectupdateinputbillingmethod.md b/docs/models/projectupdateinputbillingmethod.md
new file mode 100644
index 000000000..38ed40fcc
--- /dev/null
+++ b/docs/models/projectupdateinputbillingmethod.md
@@ -0,0 +1,14 @@
+# ProjectUpdateInputBillingMethod
+
+Method used for billing this project
+
+
+## Values
+
+| Name | Value |
+| -------------------- | -------------------- |
+| `FIXED_PRICE` | fixed_price |
+| `TIME_AND_MATERIALS` | time_and_materials |
+| `MILESTONE_BASED` | milestone_based |
+| `RETAINER` | retainer |
+| `NON_BILLABLE` | non_billable |
\ No newline at end of file
diff --git a/docs/models/projectupdateinputdepartment.md b/docs/models/projectupdateinputdepartment.md
new file mode 100644
index 000000000..4293117f0
--- /dev/null
+++ b/docs/models/projectupdateinputdepartment.md
@@ -0,0 +1,11 @@
+# ProjectUpdateInputDepartment
+
+Department or organizational unit associated with the project
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
+| `id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier for the department | DEPT-001 |
+| `name` | *Optional[str]* | :heavy_minus_sign: | Name of the department | Marketing |
\ No newline at end of file
diff --git a/docs/models/projectupdateinputparentproject.md b/docs/models/projectupdateinputparentproject.md
new file mode 100644
index 000000000..ccd54f283
--- /dev/null
+++ b/docs/models/projectupdateinputparentproject.md
@@ -0,0 +1,11 @@
+# ProjectUpdateInputParentProject
+
+Parent project if this is a subproject
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| `id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier for the parent project | PROJ-PARENT-001 |
+| `name` | *Optional[str]* | :heavy_minus_sign: | Name of the parent project | Company Website Overhaul |
\ No newline at end of file
diff --git a/docs/models/projectupdateinputpriority.md b/docs/models/projectupdateinputpriority.md
new file mode 100644
index 000000000..4a154015a
--- /dev/null
+++ b/docs/models/projectupdateinputpriority.md
@@ -0,0 +1,13 @@
+# ProjectUpdateInputPriority
+
+Priority level of the project
+
+
+## Values
+
+| Name | Value |
+| ---------- | ---------- |
+| `LOW` | low |
+| `MEDIUM` | medium |
+| `HIGH` | high |
+| `CRITICAL` | critical |
\ No newline at end of file
diff --git a/docs/models/projectupdateinputprojectphase.md b/docs/models/projectupdateinputprojectphase.md
new file mode 100644
index 000000000..4a47bc662
--- /dev/null
+++ b/docs/models/projectupdateinputprojectphase.md
@@ -0,0 +1,15 @@
+# ProjectUpdateInputProjectPhase
+
+Current phase of the project lifecycle
+
+
+## Values
+
+| Name | Value |
+| ------------ | ------------ |
+| `INITIATION` | initiation |
+| `PLANNING` | planning |
+| `EXECUTION` | execution |
+| `MONITORING` | monitoring |
+| `CLOSURE` | closure |
+| `OTHER` | other |
\ No newline at end of file
diff --git a/docs/models/projectupdateinputprojectstatus.md b/docs/models/projectupdateinputprojectstatus.md
new file mode 100644
index 000000000..f28126cba
--- /dev/null
+++ b/docs/models/projectupdateinputprojectstatus.md
@@ -0,0 +1,17 @@
+# ProjectUpdateInputProjectStatus
+
+Current status of the project
+
+
+## Values
+
+| Name | Value |
+| ------------- | ------------- |
+| `ACTIVE` | active |
+| `COMPLETED` | completed |
+| `ON_HOLD` | on_hold |
+| `CANCELLED` | cancelled |
+| `DRAFT` | draft |
+| `IN_PROGRESS` | in_progress |
+| `APPROVED` | approved |
+| `OTHER` | other |
\ No newline at end of file
diff --git a/docs/models/projectupdateinputprojecttype.md b/docs/models/projectupdateinputprojecttype.md
new file mode 100644
index 000000000..6744ddf1b
--- /dev/null
+++ b/docs/models/projectupdateinputprojecttype.md
@@ -0,0 +1,15 @@
+# ProjectUpdateInputProjectType
+
+Type or category of the project
+
+
+## Values
+
+| Name | Value |
+| ---------------------- | ---------------------- |
+| `CLIENT_PROJECT` | client_project |
+| `INTERNAL_PROJECT` | internal_project |
+| `MAINTENANCE` | maintenance |
+| `RESEARCH_DEVELOPMENT` | research_development |
+| `TRAINING` | training |
+| `OTHER` | other |
\ No newline at end of file
diff --git a/docs/models/projectupdateinputschedulestatus.md b/docs/models/projectupdateinputschedulestatus.md
new file mode 100644
index 000000000..aa826f70c
--- /dev/null
+++ b/docs/models/projectupdateinputschedulestatus.md
@@ -0,0 +1,13 @@
+# ProjectUpdateInputScheduleStatus
+
+Current status of project schedule compared to plan
+
+
+## Values
+
+| Name | Value |
+| ------------------- | ------------------- |
+| `AHEAD_OF_SCHEDULE` | ahead_of_schedule |
+| `ON_SCHEDULE` | on_schedule |
+| `BEHIND_SCHEDULE` | behind_schedule |
+| `CRITICAL_DELAY` | critical_delay |
\ No newline at end of file
diff --git a/docs/models/refundupdateinput.md b/docs/models/refundupdateinput.md
new file mode 100644
index 000000000..878ec64b2
--- /dev/null
+++ b/docs/models/refundupdateinput.md
@@ -0,0 +1,41 @@
+# RefundUpdateInput
+
+The writable shape of Refund for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `number` | *OptionalNullable[str]* | :heavy_minus_sign: | Reference number for the refund. | RF-00001 |
+| `customer` | [OptionalNullable[models.LinkedCustomerInput]](../models/linkedcustomerinput.md) | :heavy_minus_sign: | The customer this entity is linked to. | |
+| `company_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The company ID the transaction belongs to | 12345 |
+| `currency` | [OptionalNullable[models.Currency]](../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
+| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
+| `tax_inclusive` | *OptionalNullable[bool]* | :heavy_minus_sign: | Amounts are including tax | true |
+| `sub_total` | *OptionalNullable[float]* | :heavy_minus_sign: | Subtotal amount, normally before tax. | 250 |
+| `total_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | The total amount of the transaction or record | 49.99 |
+| `total_tax` | *OptionalNullable[float]* | :heavy_minus_sign: | Total tax amount applied to this transaction. | 25 |
+| `refund_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the refund - YYYY-MM-DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
+| `status` | [Optional[models.RefundStatus]](../models/refundstatus.md) | :heavy_minus_sign: | Status of refund. Maps to: QBO (limited status), NetSuite CashRefund status, Sage Intacct state (draft/posted/voided), Zoho Books vis_state. | paid |
+| `type` | [Optional[models.RefundType]](../models/refundtype.md) | :heavy_minus_sign: | Type of refund. `refund_receipt` for itemized refunds with product/service lines and payment (QBO RefundReceipt; also NetSuite's apply-list-based CustomerRefund). `cash_refund` for cash-out refunds with GL distribution or allocations (Sage Intacct). `credit_note_refund` for refunds applied against a credit note (Zoho Books). `sale_refund` for itemized refunds tied to a cash sale or return authorization, without an apply-list (NetSuite CashRefund) — NetSuite's apply-list-based CustomerRefund reports as `refund_receipt` instead. | refund_receipt |
+| `payment_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Payment method used for the transaction, such as cash, credit card, bank transfer, or check | cash |
+| `payment_method_reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference message returned by payment method on processing | 123456 |
+| `payment_method_id` | *OptionalNullable[str]* | :heavy_minus_sign: | A unique identifier for an object. | 12345 |
+| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
+| `line_items` | List[[models.InvoiceLineItemInput](../models/invoicelineiteminput.md)] | :heavy_minus_sign: | Line items for itemized refunds (type: refund_receipt or sale_refund). Used when the refund includes product/service details with quantities and pricing. Supported by QBO RefundReceipt and NetSuite CashRefund. | |
+| `allocations` | List[[models.AllocationInput](../models/allocationinput.md)] | :heavy_minus_sign: | Allocations linking refund to existing documents (invoices, credit notes, overpayments). Used for credit_note_refund and cash_refund types where the refund is applied against prior transactions. Supported by Sage Intacct and Zoho Books. | |
+| `tax_code` | *OptionalNullable[str]* | :heavy_minus_sign: | Applicable tax id/code override if tax is not supplied on a line item basis. | 1234 |
+| `discount_percentage` | *OptionalNullable[float]* | :heavy_minus_sign: | Discount percentage applied to this refund. | 5.5 |
+| `discount_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | Discount amount applied to this refund. | 25 |
+| `note` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional note to be associated with the refund. | Refund for returned items |
+| `customer_memo` | *OptionalNullable[str]* | :heavy_minus_sign: | Customer memo | Thank you for your business and have a great day! |
+| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference message for the refund. | REF-123456 |
+| `billing_address` | [Optional[models.Address]](../models/address.md) | :heavy_minus_sign: | N/A | |
+| `shipping_address` | [Optional[models.Address]](../models/address.md) | :heavy_minus_sign: | N/A | |
+| `department` | [OptionalNullable[models.LinkedDepartmentInput]](../models/linkeddepartmentinput.md) | :heavy_minus_sign: | N/A | |
+| `location` | [OptionalNullable[models.LinkedLocationInput]](../models/linkedlocationinput.md) | :heavy_minus_sign: | N/A | |
+| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
+| `custom_fields` | List[[models.CustomField](../models/customfield.md)] | :heavy_minus_sign: | N/A | |
+| `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 |
+| `pass_through` | List[[models.PassThroughBody](../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | |
\ No newline at end of file
diff --git a/docs/models/salesreceiptupdateinput.md b/docs/models/salesreceiptupdateinput.md
new file mode 100644
index 000000000..7f4b8c8e8
--- /dev/null
+++ b/docs/models/salesreceiptupdateinput.md
@@ -0,0 +1,36 @@
+# SalesReceiptUpdateInput
+
+The writable shape of SalesReceipt for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `number` | *OptionalNullable[str]* | :heavy_minus_sign: | Reference number for the sales receipt. | SR-00001 |
+| `customer` | [OptionalNullable[models.LinkedCustomerInput]](../models/linkedcustomerinput.md) | :heavy_minus_sign: | The customer this entity is linked to. | |
+| `currency` | [OptionalNullable[models.Currency]](../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
+| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
+| `tax_inclusive` | *OptionalNullable[bool]* | :heavy_minus_sign: | Amounts are including tax | true |
+| `sub_total` | *OptionalNullable[float]* | :heavy_minus_sign: | Subtotal amount, normally before tax. | 250 |
+| `total_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | The total amount of the transaction or record | 49.99 |
+| `total_tax` | *OptionalNullable[float]* | :heavy_minus_sign: | Total tax amount applied to this transaction. | 25 |
+| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the sales receipt transaction - YYYY-MM-DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
+| `payment_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Payment method used for the transaction, such as cash, credit card, bank transfer, or check | cash |
+| `payment_method_reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference message returned by payment method on processing | 123456 |
+| `payment_method_id` | *OptionalNullable[str]* | :heavy_minus_sign: | A unique identifier for an object. | 12345 |
+| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
+| `line_items` | List[[models.InvoiceLineItemInput](../models/invoicelineiteminput.md)] | :heavy_minus_sign: | Line items for itemized sales receipts. Used when the sales receipt includes product/service details with quantities and pricing. | |
+| `tax_code` | *OptionalNullable[str]* | :heavy_minus_sign: | Applicable tax id/code override if tax is not supplied on a line item basis. | 1234 |
+| `discount_percentage` | *OptionalNullable[float]* | :heavy_minus_sign: | Discount percentage applied to this sales receipt. | 5.5 |
+| `discount_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | Discount amount applied to this sales receipt. | 25 |
+| `note` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional note to be associated with the sales receipt. | Thank you for your purchase |
+| `customer_memo` | *OptionalNullable[str]* | :heavy_minus_sign: | Customer memo | Thank you for your business and have a great day! |
+| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference message for the sales receipt. | REF-123456 |
+| `billing_address` | [Optional[models.Address]](../models/address.md) | :heavy_minus_sign: | N/A | |
+| `shipping_address` | [Optional[models.Address]](../models/address.md) | :heavy_minus_sign: | N/A | |
+| `department` | [OptionalNullable[models.LinkedDepartmentInput]](../models/linkeddepartmentinput.md) | :heavy_minus_sign: | N/A | |
+| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
+| `custom_fields` | List[[models.CustomField](../models/customfield.md)] | :heavy_minus_sign: | N/A | |
+| `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 |
+| `pass_through` | List[[models.PassThroughBody](../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | |
\ No newline at end of file
diff --git a/docs/sdks/billpayments/README.md b/docs/sdks/billpayments/README.md
index b78aeb6bc..01b9905cb 100644
--- a/docs/sdks/billpayments/README.md
+++ b/docs/sdks/billpayments/README.md
@@ -413,11 +413,11 @@ with Apideck(
api_key=os.getenv("APIDECK_API_KEY", ""),
) as apideck:
- res = apideck.accounting.bill_payments.update(id="", total_amount=49.99, transaction_date=parse_datetime("2021-05-01T12:00:00.000Z"), service_id="salesforce", raw=False, currency=apideck_unify.Currency.USD, currency_rate=0.69, reference="123456", payment_method="cash", payment_method_reference="123456", payment_method_id="12345", account={
+ res = apideck.accounting.bill_payments.update(id="", service_id="salesforce", raw=False, currency=apideck_unify.Currency.USD, currency_rate=0.69, total_amount=49.99, reference="123456", payment_method="cash", payment_method_reference="123456", payment_method_id="12345", account={
"id": "123456",
"nominal_code": "N091",
"code": "453",
- }, supplier={
+ }, transaction_date=parse_datetime("2021-05-01T12:00:00.000Z"), supplier={
"id": "12345",
"display_name": "Windsurf Shop",
"address": {
@@ -449,10 +449,10 @@ with Apideck(
}, company_id="12345", subsidiary={
"display_id": "123456",
"name": "Acme Inc.",
- }, reconciled=True, status=apideck_unify.PaymentStatus.AUTHORISED, type_=apideck_unify.BillPaymentType.ACCOUNTS_PAYABLE, allocations=[
+ }, reconciled=True, status=apideck_unify.PaymentStatus.AUTHORISED, type_=apideck_unify.BillPaymentUpdateInputBillPaymentType.ACCOUNTS_PAYABLE, allocations=[
{
"id": "12345",
- "type": apideck_unify.BillPaymentAllocationType.BILL,
+ "type": apideck_unify.BillPaymentUpdateInputAllocationType.BILL,
"amount": 49.99,
"allocation_id": "123456",
},
@@ -528,26 +528,26 @@ with Apideck(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | *str* | :heavy_check_mark: | ID of the record you are acting upon. | |
-| `total_amount` | *Nullable[float]* | :heavy_check_mark: | The total amount of the transaction or record | 49.99 |
-| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
| `consumer_id` | *Optional[str]* | :heavy_minus_sign: | ID of the consumer which you want to get or push data from | test-consumer |
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
| `currency` | [OptionalNullable[models.Currency]](../../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
+| `total_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | The total amount of the transaction or record | 49.99 |
| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional transaction reference message ie: Debit remittance detail. | 123456 |
| `payment_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Payment method used for the transaction, such as cash, credit card, bank transfer, or check | cash |
| `payment_method_reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference message returned by payment method on processing | 123456 |
| `payment_method_id` | *OptionalNullable[str]* | :heavy_minus_sign: | A unique identifier for an object. | 12345 |
| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
+| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
| `supplier` | [OptionalNullable[models.LinkedSupplierInput]](../../models/linkedsupplierinput.md) | :heavy_minus_sign: | The supplier this entity is linked to. | |
| `company_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The company ID the transaction belongs to | 12345 |
| `subsidiary` | [OptionalNullable[models.LinkedSubsidiaryInput]](../../models/linkedsubsidiaryinput.md) | :heavy_minus_sign: | N/A | |
| `reconciled` | *OptionalNullable[bool]* | :heavy_minus_sign: | Indicates if the transaction has been reconciled. | true |
| `status` | [Optional[models.PaymentStatus]](../../models/paymentstatus.md) | :heavy_minus_sign: | Status of payment | authorised |
-| `type` | [Optional[models.BillPaymentType]](../../models/billpaymenttype.md) | :heavy_minus_sign: | Type of payment | accounts_payable |
-| `allocations` | List[[models.BillPaymentAllocations](../../models/billpaymentallocations.md)] | :heavy_minus_sign: | N/A | |
+| `type` | [Optional[models.BillPaymentUpdateInputBillPaymentType]](../../models/billpaymentupdateinputbillpaymenttype.md) | :heavy_minus_sign: | Type of payment | accounts_payable |
+| `allocations` | List[[models.BillPaymentUpdateInputAllocations](../../models/billpaymentupdateinputallocations.md)] | :heavy_minus_sign: | N/A | |
| `note` | *OptionalNullable[str]* | :heavy_minus_sign: | Note associated with the transaction | Some notes about this transaction |
| `number` | *OptionalNullable[str]* | :heavy_minus_sign: | Number associated with the transaction | 123456 |
| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
diff --git a/docs/sdks/creditnotes/README.md b/docs/sdks/creditnotes/README.md
index 310e47c4a..35d05ff02 100644
--- a/docs/sdks/creditnotes/README.md
+++ b/docs/sdks/creditnotes/README.md
@@ -490,14 +490,14 @@ with Apideck(
api_key=os.getenv("APIDECK_API_KEY", ""),
) as apideck:
- res = apideck.accounting.credit_notes.update(id="", total_amount=49.99, service_id="salesforce", raw=False, number="OIT00546", customer={
+ res = apideck.accounting.credit_notes.update(id="", service_id="salesforce", raw=False, number="OIT00546", customer={
"id": "12345",
"display_name": "Windsurf Shop",
"email": "boring@boring.com",
}, company_id="12345", subsidiary={
"display_id": "123456",
"name": "Acme Inc.",
- }, location_id="12345", department_id="12345", currency=apideck_unify.Currency.USD, currency_rate=0.69, tax_inclusive=True, sub_total=27500, total_tax=2500, tax_code="1234", balance=27500, remaining_credit=27500, status=apideck_unify.CreditNoteStatus.AUTHORISED, reference="123456", date_issued=parse_datetime("2021-05-01T12:00:00.000Z"), date_paid=parse_datetime("2021-05-01T12:00:00.000Z"), type_=apideck_unify.CreditNoteType.ACCOUNTS_RECEIVABLE_CREDIT, account={
+ }, location_id="12345", department_id="12345", currency=apideck_unify.Currency.USD, currency_rate=0.69, tax_inclusive=True, sub_total=27500, total_amount=49.99, total_tax=2500, tax_code="1234", balance=27500, remaining_credit=27500, status=apideck_unify.CreditNoteUpdateInputCreditNoteStatus.AUTHORISED, reference="123456", date_issued=parse_datetime("2021-05-01T12:00:00.000Z"), date_paid=parse_datetime("2021-05-01T12:00:00.000Z"), type_=apideck_unify.CreditNoteUpdateInputCreditNoteType.ACCOUNTS_RECEIVABLE_CREDIT, account={
"id": "123456",
"nominal_code": "N091",
"code": "453",
@@ -775,7 +775,6 @@ with Apideck(
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | *str* | :heavy_check_mark: | ID of the record you are acting upon. | |
-| `total_amount` | *float* | :heavy_check_mark: | Amount of transaction | 49.99 |
| `consumer_id` | *Optional[str]* | :heavy_minus_sign: | ID of the consumer which you want to get or push data from | test-consumer |
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
@@ -790,15 +789,16 @@ with Apideck(
| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
| `tax_inclusive` | *OptionalNullable[bool]* | :heavy_minus_sign: | Amounts are including tax | true |
| `sub_total` | *OptionalNullable[float]* | :heavy_minus_sign: | Sub-total amount, normally before tax. | 27500 |
+| `total_amount` | *Optional[float]* | :heavy_minus_sign: | Amount of transaction | 49.99 |
| `total_tax` | *OptionalNullable[float]* | :heavy_minus_sign: | Total tax amount applied to this invoice. | 2500 |
| `tax_code` | *OptionalNullable[str]* | :heavy_minus_sign: | Applicable tax id/code override if tax is not supplied on a line item basis. | 1234 |
| `balance` | *OptionalNullable[float]* | :heavy_minus_sign: | The balance reflecting any payments made against the transaction. | 27500 |
| `remaining_credit` | *OptionalNullable[float]* | :heavy_minus_sign: | Indicates the total credit amount still available to apply towards the payment. | 27500 |
-| `status` | [Optional[models.CreditNoteStatus]](../../models/creditnotestatus.md) | :heavy_minus_sign: | Status of credit notes | authorised |
+| `status` | [Optional[models.CreditNoteUpdateInputCreditNoteStatus]](../../models/creditnoteupdateinputcreditnotestatus.md) | :heavy_minus_sign: | Status of credit notes | authorised |
| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference message ie: Debit remittance detail. | 123456 |
| `date_issued` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date credit note issued - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
| `date_paid` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date credit note paid - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
-| `type` | [Optional[models.CreditNoteType]](../../models/creditnotetype.md) | :heavy_minus_sign: | Whether this credit note reduces an amount owed by a customer (accounts receivable) or owed to a supplier (accounts payable). `accounts_payable_credit` support is connector-specific — most connectors only expose the accounts-receivable side. Check the connector's gotchas for known deviations. | accounts_receivable_credit |
+| `type` | [Optional[models.CreditNoteUpdateInputCreditNoteType]](../../models/creditnoteupdateinputcreditnotetype.md) | :heavy_minus_sign: | Whether this credit note reduces an amount owed by a customer (accounts receivable) or owed to a supplier (accounts payable). `accounts_payable_credit` support is connector-specific — most connectors only expose the accounts-receivable side. Check the connector's gotchas for known deviations. | accounts_receivable_credit |
| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
| `line_items` | List[[models.InvoiceLineItemInput](../../models/invoicelineiteminput.md)] | :heavy_minus_sign: | N/A | |
| `allocations` | List[[models.AllocationInput](../../models/allocationinput.md)] | :heavy_minus_sign: | N/A | |
diff --git a/docs/sdks/expensecategories/README.md b/docs/sdks/expensecategories/README.md
index 907f50ec6..030c930d5 100644
--- a/docs/sdks/expensecategories/README.md
+++ b/docs/sdks/expensecategories/README.md
@@ -245,7 +245,7 @@ with Apideck(
api_key=os.getenv("APIDECK_API_KEY", ""),
) as apideck:
- res = apideck.accounting.expense_categories.update(id="", name="Travel", service_id="salesforce", raw=False, display_id="123456", code="TRAVEL-001", description="Travel-related expenses including flights, hotels, and ground transportation.", status=apideck_unify.ExpenseCategoryStatus.ACTIVE, account={
+ res = apideck.accounting.expense_categories.update(id="", service_id="salesforce", raw=False, display_id="123456", name="Travel", code="TRAVEL-001", description="Travel-related expenses including flights, hotels, and ground transportation.", status=apideck_unify.ExpenseCategoryUpdateInputStatus.ACTIVE, account={
"id": "123456",
"name": "Bank account",
"nominal_code": "N091",
@@ -291,15 +291,15 @@ with Apideck(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | *str* | :heavy_check_mark: | ID of the record you are acting upon. | |
-| `name` | *str* | :heavy_check_mark: | The name of the expense category. | Travel |
| `consumer_id` | *Optional[str]* | :heavy_minus_sign: | ID of the consumer which you want to get or push data from | test-consumer |
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
| `display_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Id to be displayed. | 123456 |
+| `name` | *Optional[str]* | :heavy_minus_sign: | The name of the expense category. | Travel |
| `code` | *OptionalNullable[str]* | :heavy_minus_sign: | The code or external identifier of the expense category. | TRAVEL-001 |
| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | The description of the expense category. | Travel-related expenses including flights, hotels, and ground transportation. |
-| `status` | [OptionalNullable[models.ExpenseCategoryStatus]](../../models/expensecategorystatus.md) | :heavy_minus_sign: | The status of the expense category. | active |
+| `status` | [OptionalNullable[models.ExpenseCategoryUpdateInputStatus]](../../models/expensecategoryupdateinputstatus.md) | :heavy_minus_sign: | The status of the expense category. | active |
| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
| `offset_account` | [OptionalNullable[models.LinkedLedgerAccount]](../../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
| `tax_rate` | [Optional[models.LinkedTaxRateInput]](../../models/linkedtaxrateinput.md) | :heavy_minus_sign: | N/A | |
diff --git a/docs/sdks/expensereports/README.md b/docs/sdks/expensereports/README.md
index 80ab36c67..6f43d2df8 100644
--- a/docs/sdks/expensereports/README.md
+++ b/docs/sdks/expensereports/README.md
@@ -281,10 +281,10 @@ with Apideck(
api_key=os.getenv("APIDECK_API_KEY", ""),
) as apideck:
- res = apideck.accounting.expense_reports.update(id="", employee={
+ res = apideck.accounting.expense_reports.update(id="", service_id="salesforce", raw=False, display_id="123456", number="ER-001", title="Q1 Business Travel", employee={
"id": "12345",
"display_name": "John Doe",
- }, transaction_date=parse_datetime("2021-05-01T12:00:00.000Z"), line_items=[], service_id="salesforce", raw=False, display_id="123456", number="ER-001", title="Q1 Business Travel", status=apideck_unify.ExpenseReportStatus.SUBMITTED, posting_date=date.fromisoformat("2024-06-01"), due_date=date.fromisoformat("2024-06-15"), currency=apideck_unify.Currency.USD, currency_rate=0.69, sub_total=250, total_tax=25, total_amount=1250.75, reimbursable_amount=1100, memo="Business travel expenses for Q1 client meetings", department={
+ }, status=apideck_unify.ExpenseReportUpdateInputStatus.SUBMITTED, transaction_date=parse_datetime("2021-05-01T12:00:00.000Z"), posting_date=date.fromisoformat("2024-06-01"), due_date=date.fromisoformat("2024-06-15"), currency=apideck_unify.Currency.USD, currency_rate=0.69, sub_total=250, total_tax=25, total_amount=1250.75, reimbursable_amount=1100, memo="Business travel expenses for Q1 client meetings", department={
"display_id": "123456",
"name": "Acme Inc.",
}, location={
@@ -301,7 +301,7 @@ with Apideck(
}, accounting_period={
"id": "12345",
"name": "Q1 2024",
- }, reference="INV-2024-001", subsidiary={
+ }, line_items=[], reference="INV-2024-001", subsidiary={
"display_id": "123456",
"name": "Acme Inc.",
}, tracking_categories=None, tax_inclusive=True, approved_by={
@@ -342,9 +342,6 @@ with Apideck(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | *str* | :heavy_check_mark: | ID of the record you are acting upon. | |
-| `employee` | [models.ExpenseReportEmployee](../../models/expensereportemployee.md) | :heavy_check_mark: | The employee who submitted the expense report. | |
-| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
-| `line_items` | List[[models.ExpenseReportLineItemInput](../../models/expensereportlineiteminput.md)] | :heavy_check_mark: | Expense line items linked to this expense report. | |
| `consumer_id` | *Optional[str]* | :heavy_minus_sign: | ID of the consumer which you want to get or push data from | test-consumer |
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
@@ -352,7 +349,9 @@ with Apideck(
| `display_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Id to be displayed. | 123456 |
| `number` | *OptionalNullable[str]* | :heavy_minus_sign: | The expense report number. | ER-001 |
| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title or purpose of the expense report. | Q1 Business Travel |
-| `status` | [OptionalNullable[models.ExpenseReportStatus]](../../models/expensereportstatus.md) | :heavy_minus_sign: | The status of the expense report. | submitted |
+| `employee` | [Optional[models.ExpenseReportUpdateInputEmployee]](../../models/expensereportupdateinputemployee.md) | :heavy_minus_sign: | The employee who submitted the expense report. | |
+| `status` | [OptionalNullable[models.ExpenseReportUpdateInputStatus]](../../models/expensereportupdateinputstatus.md) | :heavy_minus_sign: | The status of the expense report. | submitted |
+| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
| `posting_date` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | The date the expense report was posted to the general ledger. | 2024-06-01 |
| `due_date` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | Date when reimbursement is due. | 2024-06-15 |
| `currency` | [OptionalNullable[models.Currency]](../../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
@@ -365,12 +364,13 @@ with Apideck(
| `department` | [OptionalNullable[models.LinkedDepartmentInput]](../../models/linkeddepartmentinput.md) | :heavy_minus_sign: | N/A | |
| `location` | [OptionalNullable[models.LinkedLocationInput]](../../models/linkedlocationinput.md) | :heavy_minus_sign: | N/A | |
| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
-| `accounting_period` | [OptionalNullable[models.AccountingPeriod]](../../models/accountingperiod.md) | :heavy_minus_sign: | The accounting period the expense report is posted to. | |
+| `accounting_period` | [OptionalNullable[models.ExpenseReportUpdateInputAccountingPeriod]](../../models/expensereportupdateinputaccountingperiod.md) | :heavy_minus_sign: | The accounting period the expense report is posted to. | |
+| `line_items` | List[[models.ExpenseReportLineItemInput](../../models/expensereportlineiteminput.md)] | :heavy_minus_sign: | Expense line items linked to this expense report. | |
| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference identifier for the transaction. | INV-2024-001 |
| `subsidiary` | [OptionalNullable[models.LinkedSubsidiaryInput]](../../models/linkedsubsidiaryinput.md) | :heavy_minus_sign: | N/A | |
| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
| `tax_inclusive` | *OptionalNullable[bool]* | :heavy_minus_sign: | Amounts are including tax | true |
-| `approved_by` | [OptionalNullable[models.ApprovedBy]](../../models/approvedby.md) | :heavy_minus_sign: | The person who approved the expense report. | |
+| `approved_by` | [OptionalNullable[models.ExpenseReportUpdateInputApprovedBy]](../../models/expensereportupdateinputapprovedby.md) | :heavy_minus_sign: | The person who approved the expense report. | |
| `custom_fields` | List[[models.CustomField](../../models/customfield.md)] | :heavy_minus_sign: | N/A | |
| `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 |
| `pass_through` | List[[models.PassThroughBody](../../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | |
diff --git a/docs/sdks/expenses/README.md b/docs/sdks/expenses/README.md
index a3881b7b3..544d77569 100644
--- a/docs/sdks/expenses/README.md
+++ b/docs/sdks/expenses/README.md
@@ -402,31 +402,7 @@ with Apideck(
api_key=os.getenv("APIDECK_API_KEY", ""),
) as apideck:
- res = apideck.accounting.expenses.update(id="", transaction_date=parse_datetime("2021-05-01T12:00:00.000Z"), line_items=[
- {
- "tracking_categories": [
- {
- "id": "123456",
- "name": "New York",
- },
- {
- "id": "123456",
- "name": "New York",
- },
- ],
- "account_id": "123456",
- "customer_id": "12345",
- "department_id": "12345",
- "location_id": "12345",
- "tax_rate": {
- "id": "123456",
- "rate": 10,
- },
- "description": "Travel US.",
- "total_amount": 275,
- "line_number": 1,
- },
- ], service_id="salesforce", raw=False, display_id="123456", number="OIT00546", account_id="123456", account={
+ res = apideck.accounting.expenses.update(id="", service_id="salesforce", raw=False, display_id="123456", number="OIT00546", transaction_date=parse_datetime("2021-05-01T12:00:00.000Z"), account_id="123456", account={
"id": "123456",
"type": apideck_unify.LinkedFinancialAccountAccountType.LEDGER_ACCOUNT,
"code": "1100",
@@ -466,7 +442,7 @@ with Apideck(
"id": "123456",
"display_id": "123456",
"name": "New York Office",
- }, department_id="12345", department=None, payment_type=apideck_unify.ExpensePaymentType.CASH, currency=apideck_unify.Currency.USD, currency_rate=0.69, type_=apideck_unify.ExpenseType.EXPENSE, memo="For travel expenses incurred on 2024-05-15", tax_rate={
+ }, department_id="12345", department=None, payment_type=apideck_unify.ExpenseUpdateInputPaymentType.CASH, currency=apideck_unify.Currency.USD, currency_rate=0.69, type_=apideck_unify.ExpenseUpdateInputExpenseType.EXPENSE, memo="For travel expenses incurred on 2024-05-15", tax_rate={
"id": "123456",
"rate": 10,
}, tax_inclusive=True, sub_total=250, total_tax=25, total_amount=275, tracking_categories=[
@@ -477,6 +453,30 @@ with Apideck(
"parent_id": "123456",
"parent_name": "New York",
},
+ ], line_items=[
+ {
+ "tracking_categories": [
+ {
+ "id": "123456",
+ "name": "New York",
+ },
+ {
+ "id": "123456",
+ "name": "New York",
+ },
+ ],
+ "account_id": "123456",
+ "customer_id": "12345",
+ "department_id": "12345",
+ "location_id": "12345",
+ "tax_rate": {
+ "id": "123456",
+ "rate": 10,
+ },
+ "description": "Travel US.",
+ "total_amount": 275,
+ "line_number": 1,
+ },
], reference="INV-2024-001", source_document_url="https://www.invoicesolution.com/expense/123456", custom_fields=[
{
"id": "2389328923893298",
@@ -496,7 +496,7 @@ with Apideck(
"description": "Employee Level",
"value": "Uses Salesforce and Marketo",
},
- ], status=apideck_unify.ExpenseStatus.DRAFT, row_version="1-12345", pass_through=[
+ ], status=apideck_unify.ExpenseUpdateInputStatus.DRAFT, row_version="1-12345", pass_through=[
{
"service_id": "",
"extend_paths": [
@@ -598,14 +598,13 @@ with Apideck(
| Parameter | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | *str* | :heavy_check_mark: | ID of the record you are acting upon. | |
-| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
-| `line_items` | List[[models.ExpenseLineItemInput](../../models/expenselineiteminput.md)] | :heavy_check_mark: | Expense line items linked to this expense. | |
| `consumer_id` | *Optional[str]* | :heavy_minus_sign: | ID of the consumer which you want to get or push data from | test-consumer |
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
| `display_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Id to be displayed. | 123456 |
| `number` | *OptionalNullable[str]* | :heavy_minus_sign: | Number. | OIT00546 |
+| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
| `account_id` | *Optional[str]* | :heavy_minus_sign: | : warning: ** DEPRECATED **: Deprecated. Use account instead..
The unique identifier for the ledger account that this expense should be credited to. Deprecated, use account instead. | 123456 |
| `account` | [OptionalNullable[models.LinkedFinancialAccountInput]](../../models/linkedfinancialaccountinput.md) | :heavy_minus_sign: | A flexible account reference that can represent a ledger account (GL account), a bank account, or an employee payable account, depending on the connector's requirements. | |
| `supplier_id` | *Optional[str]* | :heavy_minus_sign: | : warning: ** DEPRECATED **: Deprecated. Use supplier instead..
The ID of the supplier this entity is linked to. Deprecated, use supplier instead. | 12345 |
@@ -614,10 +613,10 @@ with Apideck(
| `location` | [OptionalNullable[models.LinkedLocationInput]](../../models/linkedlocationinput.md) | :heavy_minus_sign: | N/A | |
| `department_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the department | 12345 |
| `department` | [OptionalNullable[models.LinkedDepartmentInput]](../../models/linkeddepartmentinput.md) | :heavy_minus_sign: | N/A | |
-| `payment_type` | [OptionalNullable[models.ExpensePaymentType]](../../models/expensepaymenttype.md) | :heavy_minus_sign: | The type of payment for the expense. | cash |
+| `payment_type` | [OptionalNullable[models.ExpenseUpdateInputPaymentType]](../../models/expenseupdateinputpaymenttype.md) | :heavy_minus_sign: | The type of payment for the expense. | cash |
| `currency` | [OptionalNullable[models.Currency]](../../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
-| `type` | [OptionalNullable[models.ExpenseType]](../../models/expensetype.md) | :heavy_minus_sign: | The type of expense. | expense |
+| `type` | [OptionalNullable[models.ExpenseUpdateInputExpenseType]](../../models/expenseupdateinputexpensetype.md) | :heavy_minus_sign: | The type of expense. | expense |
| `memo` | *OptionalNullable[str]* | :heavy_minus_sign: | The memo of the expense. | For travel expenses incurred on 2024-05-15 |
| `tax_rate` | [Optional[models.LinkedTaxRateInput]](../../models/linkedtaxrateinput.md) | :heavy_minus_sign: | N/A | |
| `tax_inclusive` | *OptionalNullable[bool]* | :heavy_minus_sign: | Amounts are including tax | true |
@@ -625,10 +624,11 @@ with Apideck(
| `total_tax` | *OptionalNullable[float]* | :heavy_minus_sign: | Total tax amount applied to this transaction. | 25 |
| `total_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | The total amount of the expense line item. | 275 |
| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
+| `line_items` | List[[models.ExpenseLineItemInput](../../models/expenselineiteminput.md)] | :heavy_minus_sign: | Expense line items linked to this expense. | |
| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference identifier for the transaction. | INV-2024-001 |
| `source_document_url` | *OptionalNullable[str]* | :heavy_minus_sign: | URL link to a source document - shown as 'Go to [appName]' in the downstream app. Currently only supported for Xero. | https://www.invoicesolution.com/expense/123456 |
| `custom_fields` | List[[models.CustomField](../../models/customfield.md)] | :heavy_minus_sign: | N/A | |
-| `status` | [OptionalNullable[models.ExpenseStatus]](../../models/expensestatus.md) | :heavy_minus_sign: | Expense status | draft |
+| `status` | [OptionalNullable[models.ExpenseUpdateInputStatus]](../../models/expenseupdateinputstatus.md) | :heavy_minus_sign: | Expense status | draft |
| `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 |
| `pass_through` | List[[models.PassThroughBody](../../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
diff --git a/docs/sdks/payments/README.md b/docs/sdks/payments/README.md
index 6728adada..2181bd7c5 100644
--- a/docs/sdks/payments/README.md
+++ b/docs/sdks/payments/README.md
@@ -330,11 +330,11 @@ with Apideck(
api_key=os.getenv("APIDECK_API_KEY", ""),
) as apideck:
- res = apideck.accounting.payments.update(id="", total_amount=49.99, transaction_date=parse_datetime("2021-05-01T12:00:00.000Z"), service_id="salesforce", company_id_param="12345", raw=False, currency=apideck_unify.Currency.USD, currency_rate=0.69, reference="123456", payment_method="cash", payment_method_reference="123456", payment_method_id="12345", account={
+ res = apideck.accounting.payments.update(id="", service_id="salesforce", company_id_param="12345", raw=False, currency=apideck_unify.Currency.USD, currency_rate=0.69, total_amount=49.99, reference="123456", payment_method="cash", payment_method_reference="123456", payment_method_id="12345", account={
"id": "123456",
"nominal_code": "N091",
"code": "453",
- }, customer={
+ }, transaction_date=parse_datetime("2021-05-01T12:00:00.000Z"), customer={
"id": "12345",
"display_name": "Windsurf Shop",
"email": "boring@boring.com",
@@ -463,8 +463,6 @@ with Apideck(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id` | *str* | :heavy_check_mark: | ID of the record you are acting upon. | |
-| `total_amount` | *Nullable[float]* | :heavy_check_mark: | The total amount of the transaction or record | 49.99 |
-| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
| `consumer_id` | *Optional[str]* | :heavy_minus_sign: | ID of the consumer which you want to get or push data from | test-consumer |
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
@@ -472,6 +470,7 @@ with Apideck(
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
| `currency` | [OptionalNullable[models.Currency]](../../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
+| `total_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | The total amount of the transaction or record | 49.99 |
| `reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional transaction reference message ie: Debit remittance detail. | 123456 |
| `payment_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Payment method used for the transaction, such as cash, credit card, bank transfer, or check | cash |
| `payment_method_reference` | *OptionalNullable[str]* | :heavy_minus_sign: | Optional reference message returned by payment method on processing | 123456 |
@@ -479,6 +478,7 @@ with Apideck(
| `accounts_receivable_account_type` | *OptionalNullable[str]* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This field is deprecated and may be removed in a future version..
Type of accounts receivable account. | Account |
| `accounts_receivable_account_id` | *OptionalNullable[str]* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This field is deprecated and may be removed in a future version..
Unique identifier for the account to allocate payment to. | 123456 |
| `account` | [OptionalNullable[models.LinkedLedgerAccount]](../../models/linkedledgeraccount.md) | :heavy_minus_sign: | N/A | |
+| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
| `customer` | [OptionalNullable[models.LinkedCustomerInput]](../../models/linkedcustomerinput.md) | :heavy_minus_sign: | The customer this entity is linked to. | |
| `supplier` | [OptionalNullable[models.DeprecatedLinkedSupplierInput]](../../models/deprecatedlinkedsupplierinput.md) | :heavy_minus_sign: | : warning: ** DEPRECATED **: This field is deprecated and may be removed in a future version..
The supplier this entity is linked to. | |
| `company_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The company ID the transaction belongs to | 12345 |
diff --git a/docs/sdks/projects/README.md b/docs/sdks/projects/README.md
index 1eaa52a8c..ae66382ee 100644
--- a/docs/sdks/projects/README.md
+++ b/docs/sdks/projects/README.md
@@ -306,13 +306,13 @@ with Apideck(
api_key=os.getenv("APIDECK_API_KEY", ""),
) as apideck:
- res = apideck.accounting.projects.update(id="", name="Website Redesign Project", service_id="salesforce", company_id_param="12345", raw=False, display_id="PROJ-001", reference_id="WD-REF-2024-001", description="Complete redesign of the company website including new branding and improved user experience", status=apideck_unify.ProjectProjectStatus.ACTIVE, active=True, project_type=apideck_unify.ProjectType.CLIENT_PROJECT, priority=apideck_unify.Priority.HIGH, completion_percentage=75.5, start_date=date.fromisoformat("2024-01-15"), end_date=date.fromisoformat("2024-06-30"), completion_date=date.fromisoformat("2024-08-06"), customer=None, department={
+ res = apideck.accounting.projects.update(id="", service_id="salesforce", company_id_param="12345", raw=False, name="Website Redesign Project", display_id="PROJ-001", reference_id="WD-REF-2024-001", description="Complete redesign of the company website including new branding and improved user experience", status=apideck_unify.ProjectUpdateInputProjectStatus.ACTIVE, active=True, project_type=apideck_unify.ProjectUpdateInputProjectType.CLIENT_PROJECT, priority=apideck_unify.ProjectUpdateInputPriority.HIGH, completion_percentage=75.5, start_date=date.fromisoformat("2024-01-15"), end_date=date.fromisoformat("2024-06-30"), completion_date=date.fromisoformat("2024-08-06"), customer=None, department={
"id": "DEPT-001",
"name": "Marketing",
}, company_id="12345", owner_id="12345", parent_project={
"id": "PROJ-PARENT-001",
"name": "Company Website Overhaul",
- }, currency=apideck_unify.Currency.USD, budget_amount=50000, approved_amount=48000, budget_hours=400, hourly_rate=125, billing_method=apideck_unify.BillingMethod.TIME_AND_MATERIALS, is_billable=True, phase=apideck_unify.ProjectPhase.EXECUTION, tax_rate={
+ }, currency=apideck_unify.Currency.USD, budget_amount=50000, approved_amount=48000, budget_hours=400, hourly_rate=125, billing_method=apideck_unify.ProjectUpdateInputBillingMethod.TIME_AND_MATERIALS, is_billable=True, phase=apideck_unify.ProjectUpdateInputProjectPhase.EXECUTION, tax_rate={
"id": "123456",
"code": "N-T",
"rate": 10,
@@ -327,7 +327,7 @@ with Apideck(
"website",
"redesign",
"urgent",
- ], notes="Client has requested modern design with mobile-first approach", contract_number="CNT-2024-001", profit_margin=15.5, schedule_status=apideck_unify.ScheduleStatus.ON_SCHEDULE, addresses=[
+ ], notes="Client has requested modern design with mobile-first approach", contract_number="CNT-2024-001", profit_margin=15.5, schedule_status=apideck_unify.ProjectUpdateInputScheduleStatus.ON_SCHEDULE, addresses=[
{
"id": "123",
"type": apideck_unify.Type.PRIMARY,
@@ -376,43 +376,43 @@ with Apideck(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id` | *str* | :heavy_check_mark: | ID of the record you are acting upon. | |
-| `name` | *str* | :heavy_check_mark: | Name of the project | Website Redesign Project |
| `consumer_id` | *Optional[str]* | :heavy_minus_sign: | ID of the consumer which you want to get or push data from | test-consumer |
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
| `company_id_param` | *Optional[str]* | :heavy_minus_sign: | The ID of the company to scope requests to. For connectors that support multi-company, this overrides the default company configured in connection settings. | 12345 |
| `raw` | *Optional[bool]* | :heavy_minus_sign: | Include raw response. Mostly used for debugging purposes | |
+| `name` | *Optional[str]* | :heavy_minus_sign: | Name of the project | Website Redesign Project |
| `display_id` | *OptionalNullable[str]* | :heavy_minus_sign: | User-friendly project identifier | PROJ-001 |
| `reference_id` | *OptionalNullable[str]* | :heavy_minus_sign: | External reference identifier for the project | WD-REF-2024-001 |
| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | Detailed description of the project | Complete redesign of the company website including new branding and improved user experience |
-| `status` | [OptionalNullable[models.ProjectProjectStatus]](../../models/projectprojectstatus.md) | :heavy_minus_sign: | Current status of the project | active |
+| `status` | [OptionalNullable[models.ProjectUpdateInputProjectStatus]](../../models/projectupdateinputprojectstatus.md) | :heavy_minus_sign: | Current status of the project | active |
| `active` | *OptionalNullable[bool]* | :heavy_minus_sign: | Indicates whether the project is currently active or inactive | true |
-| `project_type` | [OptionalNullable[models.ProjectType]](../../models/projecttype.md) | :heavy_minus_sign: | Type or category of the project | client_project |
-| `priority` | [OptionalNullable[models.Priority]](../../models/priority.md) | :heavy_minus_sign: | Priority level of the project | high |
+| `project_type` | [OptionalNullable[models.ProjectUpdateInputProjectType]](../../models/projectupdateinputprojecttype.md) | :heavy_minus_sign: | Type or category of the project | client_project |
+| `priority` | [OptionalNullable[models.ProjectUpdateInputPriority]](../../models/projectupdateinputpriority.md) | :heavy_minus_sign: | Priority level of the project | high |
| `completion_percentage` | *OptionalNullable[float]* | :heavy_minus_sign: | Percentage of project completion (0-100) | 75.5 |
| `start_date` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | Start date of the project | 2024-01-15 |
| `end_date` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | Expected or planned end date of the project | 2024-06-30 |
| `completion_date` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | Actual end date of the project | 2024-08-06 |
| `customer` | [OptionalNullable[models.LinkedCustomerInput]](../../models/linkedcustomerinput.md) | :heavy_minus_sign: | The customer this entity is linked to. | |
-| `department` | [OptionalNullable[models.ProjectDepartment]](../../models/projectdepartment.md) | :heavy_minus_sign: | Department or organizational unit associated with the project | |
+| `department` | [OptionalNullable[models.ProjectUpdateInputDepartment]](../../models/projectupdateinputdepartment.md) | :heavy_minus_sign: | Department or organizational unit associated with the project | |
| `company_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The company ID the transaction belongs to | 12345 |
| `owner_id` | *OptionalNullable[str]* | :heavy_minus_sign: | ID of the user who owns/manages this project | 12345 |
-| `parent_project` | [OptionalNullable[models.ParentProject]](../../models/parentproject.md) | :heavy_minus_sign: | Parent project if this is a subproject | |
+| `parent_project` | [OptionalNullable[models.ProjectUpdateInputParentProject]](../../models/projectupdateinputparentproject.md) | :heavy_minus_sign: | Parent project if this is a subproject | |
| `currency` | [OptionalNullable[models.Currency]](../../models/currency.md) | :heavy_minus_sign: | Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). | USD |
| `budget_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | Total budgeted amount for the project | 50000 |
| `approved_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | Approved budget amount for the project | 48000 |
| `budget_hours` | *OptionalNullable[float]* | :heavy_minus_sign: | Total budgeted hours for the project | 400 |
| `hourly_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Default hourly rate for project work | 125 |
-| `billing_method` | [OptionalNullable[models.BillingMethod]](../../models/billingmethod.md) | :heavy_minus_sign: | Method used for billing this project | time_and_materials |
+| `billing_method` | [OptionalNullable[models.ProjectUpdateInputBillingMethod]](../../models/projectupdateinputbillingmethod.md) | :heavy_minus_sign: | Method used for billing this project | time_and_materials |
| `is_billable` | *OptionalNullable[bool]* | :heavy_minus_sign: | Indicates if the project is billable to the customer | true |
-| `phase` | [OptionalNullable[models.ProjectPhase]](../../models/projectphase.md) | :heavy_minus_sign: | Current phase of the project lifecycle | execution |
+| `phase` | [OptionalNullable[models.ProjectUpdateInputProjectPhase]](../../models/projectupdateinputprojectphase.md) | :heavy_minus_sign: | Current phase of the project lifecycle | execution |
| `tax_rate` | [Optional[models.LinkedTaxRateInput]](../../models/linkedtaxrateinput.md) | :heavy_minus_sign: | N/A | |
| `tracking_categories` | List[[Nullable[models.LinkedTrackingCategory]](../../models/linkedtrackingcategory.md)] | :heavy_minus_sign: | A list of linked tracking categories. | |
| `tags` | List[*str*] | :heavy_minus_sign: | Tags associated with the project | [
"website",
"redesign",
"urgent"
] |
| `notes` | *OptionalNullable[str]* | :heavy_minus_sign: | Additional notes about the project | Client has requested modern design with mobile-first approach |
| `contract_number` | *OptionalNullable[str]* | :heavy_minus_sign: | Contract or agreement number associated with the project | CNT-2024-001 |
| `profit_margin` | *OptionalNullable[float]* | :heavy_minus_sign: | Expected profit margin percentage for the project | 15.5 |
-| `schedule_status` | [OptionalNullable[models.ScheduleStatus]](../../models/schedulestatus.md) | :heavy_minus_sign: | Current status of project schedule compared to plan | on_schedule |
+| `schedule_status` | [OptionalNullable[models.ProjectUpdateInputScheduleStatus]](../../models/projectupdateinputschedulestatus.md) | :heavy_minus_sign: | Current status of project schedule compared to plan | on_schedule |
| `addresses` | List[[models.Address](../../models/address.md)] | :heavy_minus_sign: | An array of addresses associated with the project (billing, job site, etc.) | |
| `team_size` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of team members assigned to the project | 8 |
| `custom_fields` | List[[models.CustomField](../../models/customfield.md)] | :heavy_minus_sign: | N/A | |
diff --git a/docs/sdks/refunds/README.md b/docs/sdks/refunds/README.md
index 1327ab016..a0f1af073 100644
--- a/docs/sdks/refunds/README.md
+++ b/docs/sdks/refunds/README.md
@@ -411,11 +411,11 @@ with Apideck(
api_key=os.getenv("APIDECK_API_KEY", ""),
) as apideck:
- res = apideck.accounting.refunds.update(id="", total_amount=49.99, service_id="salesforce", raw=False, number="RF-00001", customer={
+ res = apideck.accounting.refunds.update(id="", service_id="salesforce", raw=False, number="RF-00001", customer={
"id": "12345",
"display_name": "Windsurf Shop",
"email": "boring@boring.com",
- }, company_id="12345", currency=apideck_unify.Currency.USD, currency_rate=0.69, tax_inclusive=True, sub_total=250, total_tax=25, refund_date=parse_datetime("2021-05-01T12:00:00.000Z"), status=apideck_unify.RefundStatus.PAID, type_=apideck_unify.RefundType.REFUND_RECEIPT, payment_method="cash", payment_method_reference="123456", payment_method_id="12345", account={
+ }, company_id="12345", currency=apideck_unify.Currency.USD, currency_rate=0.69, tax_inclusive=True, sub_total=250, total_amount=49.99, total_tax=25, refund_date=parse_datetime("2021-05-01T12:00:00.000Z"), status=apideck_unify.RefundStatus.PAID, type_=apideck_unify.RefundType.REFUND_RECEIPT, payment_method="cash", payment_method_reference="123456", payment_method_id="12345", account={
"id": "123456",
"name": "Bank account",
"nominal_code": "N091",
@@ -599,7 +599,6 @@ with Apideck(
| Parameter | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | *str* | :heavy_check_mark: | ID of the record you are acting upon. | |
-| `total_amount` | *Nullable[float]* | :heavy_check_mark: | The total amount of the transaction or record | 49.99 |
| `consumer_id` | *Optional[str]* | :heavy_minus_sign: | ID of the consumer which you want to get or push data from | test-consumer |
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
@@ -611,6 +610,7 @@ with Apideck(
| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
| `tax_inclusive` | *OptionalNullable[bool]* | :heavy_minus_sign: | Amounts are including tax | true |
| `sub_total` | *OptionalNullable[float]* | :heavy_minus_sign: | Subtotal amount, normally before tax. | 250 |
+| `total_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | The total amount of the transaction or record | 49.99 |
| `total_tax` | *OptionalNullable[float]* | :heavy_minus_sign: | Total tax amount applied to this transaction. | 25 |
| `refund_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the refund - YYYY-MM-DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
| `status` | [Optional[models.RefundStatus]](../../models/refundstatus.md) | :heavy_minus_sign: | Status of refund. Maps to: QBO (limited status), NetSuite CashRefund status, Sage Intacct state (draft/posted/voided), Zoho Books vis_state. | paid |
diff --git a/docs/sdks/salesreceipts/README.md b/docs/sdks/salesreceipts/README.md
index 4be03e958..a0617b2f0 100644
--- a/docs/sdks/salesreceipts/README.md
+++ b/docs/sdks/salesreceipts/README.md
@@ -405,11 +405,11 @@ with Apideck(
api_key=os.getenv("APIDECK_API_KEY", ""),
) as apideck:
- res = apideck.accounting.sales_receipts.update(id="", total_amount=49.99, service_id="salesforce", raw=False, company_id="12345", number="SR-00001", customer={
+ res = apideck.accounting.sales_receipts.update(id="", service_id="salesforce", raw=False, company_id="12345", number="SR-00001", customer={
"id": "12345",
"display_name": "Windsurf Shop",
"email": "boring@boring.com",
- }, currency=apideck_unify.Currency.USD, currency_rate=0.69, tax_inclusive=True, sub_total=250, total_tax=25, transaction_date=parse_datetime("2021-05-01T12:00:00.000Z"), payment_method="cash", payment_method_reference="123456", payment_method_id="12345", account={
+ }, currency=apideck_unify.Currency.USD, currency_rate=0.69, tax_inclusive=True, sub_total=250, total_amount=49.99, total_tax=25, transaction_date=parse_datetime("2021-05-01T12:00:00.000Z"), payment_method="cash", payment_method_reference="123456", payment_method_id="12345", account={
"id": "123456",
"name": "Bank account",
"nominal_code": "N091",
@@ -585,7 +585,6 @@ with Apideck(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id` | *str* | :heavy_check_mark: | ID of the record you are acting upon. | |
-| `total_amount` | *Nullable[float]* | :heavy_check_mark: | The total amount of the transaction or record | 49.99 |
| `consumer_id` | *Optional[str]* | :heavy_minus_sign: | ID of the consumer which you want to get or push data from | test-consumer |
| `app_id` | *Optional[str]* | :heavy_minus_sign: | The ID of your Unify application | dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX |
| `service_id` | *Optional[str]* | :heavy_minus_sign: | Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API. | salesforce |
@@ -597,6 +596,7 @@ with Apideck(
| `currency_rate` | *OptionalNullable[float]* | :heavy_minus_sign: | Currency Exchange Rate at the time entity was recorded/generated. | 0.69 |
| `tax_inclusive` | *OptionalNullable[bool]* | :heavy_minus_sign: | Amounts are including tax | true |
| `sub_total` | *OptionalNullable[float]* | :heavy_minus_sign: | Subtotal amount, normally before tax. | 250 |
+| `total_amount` | *OptionalNullable[float]* | :heavy_minus_sign: | The total amount of the transaction or record | 49.99 |
| `total_tax` | *OptionalNullable[float]* | :heavy_minus_sign: | Total tax amount applied to this transaction. | 25 |
| `transaction_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date of the sales receipt transaction - YYYY-MM-DDThh:mm:ss.sTZD | 2021-05-01T12:00:00.000Z |
| `payment_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Payment method used for the transaction, such as cash, credit card, bank transfer, or check | cash |
diff --git a/pyproject.toml b/pyproject.toml
index 0d88d54fd..42be760e5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,7 +1,7 @@
[project]
name = "apideck-unify"
-version = "0.55.0"
+version = "0.56.0"
description = "Python Client SDK Generated by Speakeasy."
authors = [{ name = "Speakeasy" },]
readme = "README-PYPI.md"
diff --git a/src/apideck_unify/_version.py b/src/apideck_unify/_version.py
index c992f3380..087e47ce5 100644
--- a/src/apideck_unify/_version.py
+++ b/src/apideck_unify/_version.py
@@ -3,10 +3,10 @@
import importlib.metadata
__title__: str = "apideck-unify"
-__version__: str = "0.55.0"
-__openapi_doc_version__: str = "10.76.0"
+__version__: str = "0.56.0"
+__openapi_doc_version__: str = "10.77.0"
__gen_version__: str = "2.753.1"
-__user_agent__: str = "speakeasy-sdk/python 0.55.0 2.753.1 10.76.0 apideck-unify"
+__user_agent__: str = "speakeasy-sdk/python 0.56.0 2.753.1 10.77.0 apideck-unify"
try:
if __package__ is not None:
diff --git a/src/apideck_unify/billpayments.py b/src/apideck_unify/billpayments.py
index 736cddb75..8d5169ea7 100644
--- a/src/apideck_unify/billpayments.py
+++ b/src/apideck_unify/billpayments.py
@@ -1200,14 +1200,13 @@ def update(
self,
*,
id: str,
- total_amount: Nullable[float],
- transaction_date: Nullable[datetime],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
raw: Optional[bool] = False,
currency: OptionalNullable[models.Currency] = UNSET,
currency_rate: OptionalNullable[float] = UNSET,
+ total_amount: OptionalNullable[float] = UNSET,
reference: OptionalNullable[str] = UNSET,
payment_method: OptionalNullable[str] = UNSET,
payment_method_reference: OptionalNullable[str] = UNSET,
@@ -1215,6 +1214,7 @@ def update(
account: OptionalNullable[
Union[models.LinkedLedgerAccount, models.LinkedLedgerAccountTypedDict]
] = UNSET,
+ transaction_date: OptionalNullable[datetime] = UNSET,
supplier: OptionalNullable[
Union[models.LinkedSupplierInput, models.LinkedSupplierInputTypedDict]
] = UNSET,
@@ -1224,11 +1224,11 @@ def update(
] = UNSET,
reconciled: OptionalNullable[bool] = UNSET,
status: Optional[models.PaymentStatus] = None,
- type_: Optional[models.BillPaymentType] = None,
+ type_: Optional[models.BillPaymentUpdateInputBillPaymentType] = None,
allocations: Optional[
Union[
- List[models.BillPaymentAllocations],
- List[models.BillPaymentAllocationsTypedDict],
+ List[models.BillPaymentUpdateInputAllocations],
+ List[models.BillPaymentUpdateInputAllocationsTypedDict],
]
] = None,
note: OptionalNullable[str] = UNSET,
@@ -1257,19 +1257,19 @@ def update(
Update Bill Payment
:param id: ID of the record you are acting upon.
- :param total_amount: The total amount of the transaction or record
- :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
:param raw: Include raw response. Mostly used for debugging purposes
:param currency: Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
:param currency_rate: Currency Exchange Rate at the time entity was recorded/generated.
+ :param total_amount: The total amount of the transaction or record
:param reference: Optional transaction reference message ie: Debit remittance detail.
:param payment_method: Payment method used for the transaction, such as cash, credit card, bank transfer, or check
:param payment_method_reference: Optional reference message returned by payment method on processing
:param payment_method_id: A unique identifier for an object.
:param account:
+ :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param supplier: The supplier this entity is linked to.
:param company_id: The company ID the transaction belongs to
:param subsidiary:
@@ -1305,7 +1305,7 @@ def update(
app_id=app_id,
service_id=service_id,
raw=raw,
- bill_payment=models.BillPaymentInput(
+ bill_payment_update_input=models.BillPaymentUpdateInput(
currency=currency,
currency_rate=currency_rate,
total_amount=total_amount,
@@ -1328,7 +1328,8 @@ def update(
status=status,
type=type_,
allocations=utils.get_pydantic_model(
- allocations, Optional[List[models.BillPaymentAllocations]]
+ allocations,
+ Optional[List[models.BillPaymentUpdateInputAllocations]],
),
note=note,
number=number,
@@ -1365,7 +1366,11 @@ def update(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.bill_payment, False, False, "json", models.BillPaymentInput
+ request.bill_payment_update_input,
+ False,
+ False,
+ "json",
+ models.BillPaymentUpdateInput,
),
timeout_ms=timeout_ms,
)
@@ -1452,14 +1457,13 @@ async def update_async(
self,
*,
id: str,
- total_amount: Nullable[float],
- transaction_date: Nullable[datetime],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
raw: Optional[bool] = False,
currency: OptionalNullable[models.Currency] = UNSET,
currency_rate: OptionalNullable[float] = UNSET,
+ total_amount: OptionalNullable[float] = UNSET,
reference: OptionalNullable[str] = UNSET,
payment_method: OptionalNullable[str] = UNSET,
payment_method_reference: OptionalNullable[str] = UNSET,
@@ -1467,6 +1471,7 @@ async def update_async(
account: OptionalNullable[
Union[models.LinkedLedgerAccount, models.LinkedLedgerAccountTypedDict]
] = UNSET,
+ transaction_date: OptionalNullable[datetime] = UNSET,
supplier: OptionalNullable[
Union[models.LinkedSupplierInput, models.LinkedSupplierInputTypedDict]
] = UNSET,
@@ -1476,11 +1481,11 @@ async def update_async(
] = UNSET,
reconciled: OptionalNullable[bool] = UNSET,
status: Optional[models.PaymentStatus] = None,
- type_: Optional[models.BillPaymentType] = None,
+ type_: Optional[models.BillPaymentUpdateInputBillPaymentType] = None,
allocations: Optional[
Union[
- List[models.BillPaymentAllocations],
- List[models.BillPaymentAllocationsTypedDict],
+ List[models.BillPaymentUpdateInputAllocations],
+ List[models.BillPaymentUpdateInputAllocationsTypedDict],
]
] = None,
note: OptionalNullable[str] = UNSET,
@@ -1509,19 +1514,19 @@ async def update_async(
Update Bill Payment
:param id: ID of the record you are acting upon.
- :param total_amount: The total amount of the transaction or record
- :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
:param raw: Include raw response. Mostly used for debugging purposes
:param currency: Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
:param currency_rate: Currency Exchange Rate at the time entity was recorded/generated.
+ :param total_amount: The total amount of the transaction or record
:param reference: Optional transaction reference message ie: Debit remittance detail.
:param payment_method: Payment method used for the transaction, such as cash, credit card, bank transfer, or check
:param payment_method_reference: Optional reference message returned by payment method on processing
:param payment_method_id: A unique identifier for an object.
:param account:
+ :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param supplier: The supplier this entity is linked to.
:param company_id: The company ID the transaction belongs to
:param subsidiary:
@@ -1557,7 +1562,7 @@ async def update_async(
app_id=app_id,
service_id=service_id,
raw=raw,
- bill_payment=models.BillPaymentInput(
+ bill_payment_update_input=models.BillPaymentUpdateInput(
currency=currency,
currency_rate=currency_rate,
total_amount=total_amount,
@@ -1580,7 +1585,8 @@ async def update_async(
status=status,
type=type_,
allocations=utils.get_pydantic_model(
- allocations, Optional[List[models.BillPaymentAllocations]]
+ allocations,
+ Optional[List[models.BillPaymentUpdateInputAllocations]],
),
note=note,
number=number,
@@ -1617,7 +1623,11 @@ async def update_async(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.bill_payment, False, False, "json", models.BillPaymentInput
+ request.bill_payment_update_input,
+ False,
+ False,
+ "json",
+ models.BillPaymentUpdateInput,
),
timeout_ms=timeout_ms,
)
diff --git a/src/apideck_unify/creditnotes.py b/src/apideck_unify/creditnotes.py
index ba81bcfd1..32655bad2 100644
--- a/src/apideck_unify/creditnotes.py
+++ b/src/apideck_unify/creditnotes.py
@@ -1292,7 +1292,6 @@ def update(
self,
*,
id: str,
- total_amount: float,
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
@@ -1311,15 +1310,16 @@ def update(
currency_rate: OptionalNullable[float] = UNSET,
tax_inclusive: OptionalNullable[bool] = UNSET,
sub_total: OptionalNullable[float] = UNSET,
+ total_amount: Optional[float] = None,
total_tax: OptionalNullable[float] = UNSET,
tax_code: OptionalNullable[str] = UNSET,
balance: OptionalNullable[float] = UNSET,
remaining_credit: OptionalNullable[float] = UNSET,
- status: Optional[models.CreditNoteStatus] = None,
+ status: Optional[models.CreditNoteUpdateInputCreditNoteStatus] = None,
reference: OptionalNullable[str] = UNSET,
date_issued: Optional[datetime] = None,
date_paid: OptionalNullable[datetime] = UNSET,
- type_: Optional[models.CreditNoteType] = None,
+ type_: Optional[models.CreditNoteUpdateInputCreditNoteType] = None,
account: OptionalNullable[
Union[models.LinkedLedgerAccount, models.LinkedLedgerAccountTypedDict]
] = UNSET,
@@ -1364,7 +1364,6 @@ def update(
Update Credit Note
:param id: ID of the record you are acting upon.
- :param total_amount: Amount of transaction
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
@@ -1379,6 +1378,7 @@ def update(
:param currency_rate: Currency Exchange Rate at the time entity was recorded/generated.
:param tax_inclusive: Amounts are including tax
:param sub_total: Sub-total amount, normally before tax.
+ :param total_amount: Amount of transaction
:param total_tax: Total tax amount applied to this invoice.
:param tax_code: Applicable tax id/code override if tax is not supplied on a line item basis.
:param balance: The balance reflecting any payments made against the transaction.
@@ -1421,7 +1421,7 @@ def update(
app_id=app_id,
service_id=service_id,
raw=raw,
- credit_note=models.CreditNoteInput(
+ credit_note_update_input=models.CreditNoteUpdateInput(
number=number,
customer=utils.get_pydantic_model(
customer, OptionalNullable[models.LinkedCustomerInput]
@@ -1496,7 +1496,11 @@ def update(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.credit_note, False, False, "json", models.CreditNoteInput
+ request.credit_note_update_input,
+ False,
+ False,
+ "json",
+ models.CreditNoteUpdateInput,
),
timeout_ms=timeout_ms,
)
@@ -1583,7 +1587,6 @@ async def update_async(
self,
*,
id: str,
- total_amount: float,
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
@@ -1602,15 +1605,16 @@ async def update_async(
currency_rate: OptionalNullable[float] = UNSET,
tax_inclusive: OptionalNullable[bool] = UNSET,
sub_total: OptionalNullable[float] = UNSET,
+ total_amount: Optional[float] = None,
total_tax: OptionalNullable[float] = UNSET,
tax_code: OptionalNullable[str] = UNSET,
balance: OptionalNullable[float] = UNSET,
remaining_credit: OptionalNullable[float] = UNSET,
- status: Optional[models.CreditNoteStatus] = None,
+ status: Optional[models.CreditNoteUpdateInputCreditNoteStatus] = None,
reference: OptionalNullable[str] = UNSET,
date_issued: Optional[datetime] = None,
date_paid: OptionalNullable[datetime] = UNSET,
- type_: Optional[models.CreditNoteType] = None,
+ type_: Optional[models.CreditNoteUpdateInputCreditNoteType] = None,
account: OptionalNullable[
Union[models.LinkedLedgerAccount, models.LinkedLedgerAccountTypedDict]
] = UNSET,
@@ -1655,7 +1659,6 @@ async def update_async(
Update Credit Note
:param id: ID of the record you are acting upon.
- :param total_amount: Amount of transaction
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
@@ -1670,6 +1673,7 @@ async def update_async(
:param currency_rate: Currency Exchange Rate at the time entity was recorded/generated.
:param tax_inclusive: Amounts are including tax
:param sub_total: Sub-total amount, normally before tax.
+ :param total_amount: Amount of transaction
:param total_tax: Total tax amount applied to this invoice.
:param tax_code: Applicable tax id/code override if tax is not supplied on a line item basis.
:param balance: The balance reflecting any payments made against the transaction.
@@ -1712,7 +1716,7 @@ async def update_async(
app_id=app_id,
service_id=service_id,
raw=raw,
- credit_note=models.CreditNoteInput(
+ credit_note_update_input=models.CreditNoteUpdateInput(
number=number,
customer=utils.get_pydantic_model(
customer, OptionalNullable[models.LinkedCustomerInput]
@@ -1787,7 +1791,11 @@ async def update_async(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.credit_note, False, False, "json", models.CreditNoteInput
+ request.credit_note_update_input,
+ False,
+ False,
+ "json",
+ models.CreditNoteUpdateInput,
),
timeout_ms=timeout_ms,
)
diff --git a/src/apideck_unify/expensecategories.py b/src/apideck_unify/expensecategories.py
index 5aaf5269a..7071585ae 100644
--- a/src/apideck_unify/expensecategories.py
+++ b/src/apideck_unify/expensecategories.py
@@ -1083,15 +1083,15 @@ def update(
self,
*,
id: str,
- name: str,
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
raw: Optional[bool] = False,
display_id: OptionalNullable[str] = UNSET,
+ name: Optional[str] = None,
code: OptionalNullable[str] = UNSET,
description: OptionalNullable[str] = UNSET,
- status: OptionalNullable[models.ExpenseCategoryStatus] = UNSET,
+ status: OptionalNullable[models.ExpenseCategoryUpdateInputStatus] = UNSET,
account: OptionalNullable[
Union[models.LinkedLedgerAccount, models.LinkedLedgerAccountTypedDict]
] = UNSET,
@@ -1117,12 +1117,12 @@ def update(
Update Expense Category
:param id: ID of the record you are acting upon.
- :param name: The name of the expense category.
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
:param raw: Include raw response. Mostly used for debugging purposes
:param display_id: Id to be displayed.
+ :param name: The name of the expense category.
:param code: The code or external identifier of the expense category.
:param description: The description of the expense category.
:param status: The status of the expense category.
@@ -1154,7 +1154,7 @@ def update(
app_id=app_id,
service_id=service_id,
raw=raw,
- expense_category=models.ExpenseCategoryInput(
+ expense_category_update_input=models.ExpenseCategoryUpdateInput(
display_id=display_id,
name=name,
code=code,
@@ -1196,11 +1196,11 @@ def update(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.expense_category,
+ request.expense_category_update_input,
False,
False,
"json",
- models.ExpenseCategoryInput,
+ models.ExpenseCategoryUpdateInput,
),
timeout_ms=timeout_ms,
)
@@ -1287,15 +1287,15 @@ async def update_async(
self,
*,
id: str,
- name: str,
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
raw: Optional[bool] = False,
display_id: OptionalNullable[str] = UNSET,
+ name: Optional[str] = None,
code: OptionalNullable[str] = UNSET,
description: OptionalNullable[str] = UNSET,
- status: OptionalNullable[models.ExpenseCategoryStatus] = UNSET,
+ status: OptionalNullable[models.ExpenseCategoryUpdateInputStatus] = UNSET,
account: OptionalNullable[
Union[models.LinkedLedgerAccount, models.LinkedLedgerAccountTypedDict]
] = UNSET,
@@ -1321,12 +1321,12 @@ async def update_async(
Update Expense Category
:param id: ID of the record you are acting upon.
- :param name: The name of the expense category.
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
:param raw: Include raw response. Mostly used for debugging purposes
:param display_id: Id to be displayed.
+ :param name: The name of the expense category.
:param code: The code or external identifier of the expense category.
:param description: The description of the expense category.
:param status: The status of the expense category.
@@ -1358,7 +1358,7 @@ async def update_async(
app_id=app_id,
service_id=service_id,
raw=raw,
- expense_category=models.ExpenseCategoryInput(
+ expense_category_update_input=models.ExpenseCategoryUpdateInput(
display_id=display_id,
name=name,
code=code,
@@ -1400,11 +1400,11 @@ async def update_async(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.expense_category,
+ request.expense_category_update_input,
False,
False,
"json",
- models.ExpenseCategoryInput,
+ models.ExpenseCategoryUpdateInput,
),
timeout_ms=timeout_ms,
)
diff --git a/src/apideck_unify/expensereports.py b/src/apideck_unify/expensereports.py
index 4f991a164..d74761473 100644
--- a/src/apideck_unify/expensereports.py
+++ b/src/apideck_unify/expensereports.py
@@ -1234,14 +1234,6 @@ def update(
self,
*,
id: str,
- employee: Union[
- models.ExpenseReportEmployee, models.ExpenseReportEmployeeTypedDict
- ],
- transaction_date: Nullable[datetime],
- line_items: Union[
- List[models.ExpenseReportLineItemInput],
- List[models.ExpenseReportLineItemInputTypedDict],
- ],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
@@ -1249,7 +1241,14 @@ def update(
display_id: OptionalNullable[str] = UNSET,
number: OptionalNullable[str] = UNSET,
title: OptionalNullable[str] = UNSET,
- status: OptionalNullable[models.ExpenseReportStatus] = UNSET,
+ employee: Optional[
+ Union[
+ models.ExpenseReportUpdateInputEmployee,
+ models.ExpenseReportUpdateInputEmployeeTypedDict,
+ ]
+ ] = None,
+ status: OptionalNullable[models.ExpenseReportUpdateInputStatus] = UNSET,
+ transaction_date: OptionalNullable[datetime] = UNSET,
posting_date: OptionalNullable[date] = UNSET,
due_date: OptionalNullable[date] = UNSET,
currency: OptionalNullable[models.Currency] = UNSET,
@@ -1269,8 +1268,17 @@ def update(
Union[models.LinkedLedgerAccount, models.LinkedLedgerAccountTypedDict]
] = UNSET,
accounting_period: OptionalNullable[
- Union[models.AccountingPeriod, models.AccountingPeriodTypedDict]
+ Union[
+ models.ExpenseReportUpdateInputAccountingPeriod,
+ models.ExpenseReportUpdateInputAccountingPeriodTypedDict,
+ ]
] = UNSET,
+ line_items: Optional[
+ Union[
+ List[models.ExpenseReportLineItemInput],
+ List[models.ExpenseReportLineItemInputTypedDict],
+ ]
+ ] = None,
reference: OptionalNullable[str] = UNSET,
subsidiary: OptionalNullable[
Union[models.LinkedSubsidiaryInput, models.LinkedSubsidiaryInputTypedDict]
@@ -1283,7 +1291,10 @@ def update(
] = UNSET,
tax_inclusive: OptionalNullable[bool] = UNSET,
approved_by: OptionalNullable[
- Union[models.ApprovedBy, models.ApprovedByTypedDict]
+ Union[
+ models.ExpenseReportUpdateInputApprovedBy,
+ models.ExpenseReportUpdateInputApprovedByTypedDict,
+ ]
] = UNSET,
custom_fields: Optional[
Union[List[models.CustomField], List[models.CustomFieldTypedDict]]
@@ -1302,9 +1313,6 @@ def update(
Update Expense Report
:param id: ID of the record you are acting upon.
- :param employee: The employee who submitted the expense report.
- :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
- :param line_items: Expense line items linked to this expense report.
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
@@ -1312,7 +1320,9 @@ def update(
:param display_id: Id to be displayed.
:param number: The expense report number.
:param title: Title or purpose of the expense report.
+ :param employee: The employee who submitted the expense report.
:param status: The status of the expense report.
+ :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param posting_date: The date the expense report was posted to the general ledger.
:param due_date: Date when reimbursement is due.
:param currency: Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
@@ -1326,6 +1336,7 @@ def update(
:param location:
:param account:
:param accounting_period: The accounting period the expense report is posted to.
+ :param line_items: Expense line items linked to this expense report.
:param reference: Optional reference identifier for the transaction.
:param subsidiary:
:param tracking_categories: A list of linked tracking categories.
@@ -1355,12 +1366,12 @@ def update(
app_id=app_id,
service_id=service_id,
raw=raw,
- expense_report=models.ExpenseReportInput(
+ expense_report_update_input=models.ExpenseReportUpdateInput(
display_id=display_id,
number=number,
title=title,
employee=utils.get_pydantic_model(
- employee, models.ExpenseReportEmployee
+ employee, Optional[models.ExpenseReportUpdateInputEmployee]
),
status=status,
transaction_date=transaction_date,
@@ -1383,10 +1394,11 @@ def update(
account, OptionalNullable[models.LinkedLedgerAccount]
),
accounting_period=utils.get_pydantic_model(
- accounting_period, OptionalNullable[models.AccountingPeriod]
+ accounting_period,
+ OptionalNullable[models.ExpenseReportUpdateInputAccountingPeriod],
),
line_items=utils.get_pydantic_model(
- line_items, List[models.ExpenseReportLineItemInput]
+ line_items, Optional[List[models.ExpenseReportLineItemInput]]
),
reference=reference,
subsidiary=utils.get_pydantic_model(
@@ -1398,7 +1410,8 @@ def update(
),
tax_inclusive=tax_inclusive,
approved_by=utils.get_pydantic_model(
- approved_by, OptionalNullable[models.ApprovedBy]
+ approved_by,
+ OptionalNullable[models.ExpenseReportUpdateInputApprovedBy],
),
custom_fields=utils.get_pydantic_model(
custom_fields, Optional[List[models.CustomField]]
@@ -1428,7 +1441,11 @@ def update(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.expense_report, False, False, "json", models.ExpenseReportInput
+ request.expense_report_update_input,
+ False,
+ False,
+ "json",
+ models.ExpenseReportUpdateInput,
),
timeout_ms=timeout_ms,
)
@@ -1515,14 +1532,6 @@ async def update_async(
self,
*,
id: str,
- employee: Union[
- models.ExpenseReportEmployee, models.ExpenseReportEmployeeTypedDict
- ],
- transaction_date: Nullable[datetime],
- line_items: Union[
- List[models.ExpenseReportLineItemInput],
- List[models.ExpenseReportLineItemInputTypedDict],
- ],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
@@ -1530,7 +1539,14 @@ async def update_async(
display_id: OptionalNullable[str] = UNSET,
number: OptionalNullable[str] = UNSET,
title: OptionalNullable[str] = UNSET,
- status: OptionalNullable[models.ExpenseReportStatus] = UNSET,
+ employee: Optional[
+ Union[
+ models.ExpenseReportUpdateInputEmployee,
+ models.ExpenseReportUpdateInputEmployeeTypedDict,
+ ]
+ ] = None,
+ status: OptionalNullable[models.ExpenseReportUpdateInputStatus] = UNSET,
+ transaction_date: OptionalNullable[datetime] = UNSET,
posting_date: OptionalNullable[date] = UNSET,
due_date: OptionalNullable[date] = UNSET,
currency: OptionalNullable[models.Currency] = UNSET,
@@ -1550,8 +1566,17 @@ async def update_async(
Union[models.LinkedLedgerAccount, models.LinkedLedgerAccountTypedDict]
] = UNSET,
accounting_period: OptionalNullable[
- Union[models.AccountingPeriod, models.AccountingPeriodTypedDict]
+ Union[
+ models.ExpenseReportUpdateInputAccountingPeriod,
+ models.ExpenseReportUpdateInputAccountingPeriodTypedDict,
+ ]
] = UNSET,
+ line_items: Optional[
+ Union[
+ List[models.ExpenseReportLineItemInput],
+ List[models.ExpenseReportLineItemInputTypedDict],
+ ]
+ ] = None,
reference: OptionalNullable[str] = UNSET,
subsidiary: OptionalNullable[
Union[models.LinkedSubsidiaryInput, models.LinkedSubsidiaryInputTypedDict]
@@ -1564,7 +1589,10 @@ async def update_async(
] = UNSET,
tax_inclusive: OptionalNullable[bool] = UNSET,
approved_by: OptionalNullable[
- Union[models.ApprovedBy, models.ApprovedByTypedDict]
+ Union[
+ models.ExpenseReportUpdateInputApprovedBy,
+ models.ExpenseReportUpdateInputApprovedByTypedDict,
+ ]
] = UNSET,
custom_fields: Optional[
Union[List[models.CustomField], List[models.CustomFieldTypedDict]]
@@ -1583,9 +1611,6 @@ async def update_async(
Update Expense Report
:param id: ID of the record you are acting upon.
- :param employee: The employee who submitted the expense report.
- :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
- :param line_items: Expense line items linked to this expense report.
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
@@ -1593,7 +1618,9 @@ async def update_async(
:param display_id: Id to be displayed.
:param number: The expense report number.
:param title: Title or purpose of the expense report.
+ :param employee: The employee who submitted the expense report.
:param status: The status of the expense report.
+ :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param posting_date: The date the expense report was posted to the general ledger.
:param due_date: Date when reimbursement is due.
:param currency: Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
@@ -1607,6 +1634,7 @@ async def update_async(
:param location:
:param account:
:param accounting_period: The accounting period the expense report is posted to.
+ :param line_items: Expense line items linked to this expense report.
:param reference: Optional reference identifier for the transaction.
:param subsidiary:
:param tracking_categories: A list of linked tracking categories.
@@ -1636,12 +1664,12 @@ async def update_async(
app_id=app_id,
service_id=service_id,
raw=raw,
- expense_report=models.ExpenseReportInput(
+ expense_report_update_input=models.ExpenseReportUpdateInput(
display_id=display_id,
number=number,
title=title,
employee=utils.get_pydantic_model(
- employee, models.ExpenseReportEmployee
+ employee, Optional[models.ExpenseReportUpdateInputEmployee]
),
status=status,
transaction_date=transaction_date,
@@ -1664,10 +1692,11 @@ async def update_async(
account, OptionalNullable[models.LinkedLedgerAccount]
),
accounting_period=utils.get_pydantic_model(
- accounting_period, OptionalNullable[models.AccountingPeriod]
+ accounting_period,
+ OptionalNullable[models.ExpenseReportUpdateInputAccountingPeriod],
),
line_items=utils.get_pydantic_model(
- line_items, List[models.ExpenseReportLineItemInput]
+ line_items, Optional[List[models.ExpenseReportLineItemInput]]
),
reference=reference,
subsidiary=utils.get_pydantic_model(
@@ -1679,7 +1708,8 @@ async def update_async(
),
tax_inclusive=tax_inclusive,
approved_by=utils.get_pydantic_model(
- approved_by, OptionalNullable[models.ApprovedBy]
+ approved_by,
+ OptionalNullable[models.ExpenseReportUpdateInputApprovedBy],
),
custom_fields=utils.get_pydantic_model(
custom_fields, Optional[List[models.CustomField]]
@@ -1709,7 +1739,11 @@ async def update_async(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.expense_report, False, False, "json", models.ExpenseReportInput
+ request.expense_report_update_input,
+ False,
+ False,
+ "json",
+ models.ExpenseReportUpdateInput,
),
timeout_ms=timeout_ms,
)
diff --git a/src/apideck_unify/expenses.py b/src/apideck_unify/expenses.py
index efc09d854..9b8f22569 100644
--- a/src/apideck_unify/expenses.py
+++ b/src/apideck_unify/expenses.py
@@ -1232,17 +1232,13 @@ def update(
self,
*,
id: str,
- transaction_date: Nullable[datetime],
- line_items: Union[
- List[models.ExpenseLineItemInput],
- List[models.ExpenseLineItemInputTypedDict],
- ],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
raw: Optional[bool] = False,
display_id: OptionalNullable[str] = UNSET,
number: OptionalNullable[str] = UNSET,
+ transaction_date: OptionalNullable[datetime] = UNSET,
account_id: Optional[str] = None,
account: OptionalNullable[
Union[
@@ -1262,10 +1258,10 @@ def update(
department: OptionalNullable[
Union[models.LinkedDepartmentInput, models.LinkedDepartmentInputTypedDict]
] = UNSET,
- payment_type: OptionalNullable[models.ExpensePaymentType] = UNSET,
+ payment_type: OptionalNullable[models.ExpenseUpdateInputPaymentType] = UNSET,
currency: OptionalNullable[models.Currency] = UNSET,
currency_rate: OptionalNullable[float] = UNSET,
- type_: OptionalNullable[models.ExpenseType] = UNSET,
+ type_: OptionalNullable[models.ExpenseUpdateInputExpenseType] = UNSET,
memo: OptionalNullable[str] = UNSET,
tax_rate: Optional[
Union[models.LinkedTaxRateInput, models.LinkedTaxRateInputTypedDict]
@@ -1280,12 +1276,18 @@ def update(
List[Nullable[models.LinkedTrackingCategoryTypedDict]],
]
] = UNSET,
+ line_items: Optional[
+ Union[
+ List[models.ExpenseLineItemInput],
+ List[models.ExpenseLineItemInputTypedDict],
+ ]
+ ] = None,
reference: OptionalNullable[str] = UNSET,
source_document_url: OptionalNullable[str] = UNSET,
custom_fields: Optional[
Union[List[models.CustomField], List[models.CustomFieldTypedDict]]
] = None,
- status: OptionalNullable[models.ExpenseStatus] = UNSET,
+ status: OptionalNullable[models.ExpenseUpdateInputStatus] = UNSET,
row_version: OptionalNullable[str] = UNSET,
pass_through: Optional[
Union[List[models.PassThroughBody], List[models.PassThroughBodyTypedDict]]
@@ -1300,14 +1302,13 @@ def update(
Update Expense
:param id: ID of the record you are acting upon.
- :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
- :param line_items: Expense line items linked to this expense.
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
:param raw: Include raw response. Mostly used for debugging purposes
:param display_id: Id to be displayed.
:param number: Number.
+ :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param account_id: The unique identifier for the ledger account that this expense should be credited to. Deprecated, use account instead.
:param account: A flexible account reference that can represent a ledger account (GL account), a bank account, or an employee payable account, depending on the connector's requirements.
:param supplier_id: The ID of the supplier this entity is linked to. Deprecated, use supplier instead.
@@ -1327,6 +1328,7 @@ def update(
:param total_tax: Total tax amount applied to this transaction.
:param total_amount: The total amount of the expense line item.
:param tracking_categories: A list of linked tracking categories.
+ :param line_items: Expense line items linked to this expense.
:param reference: Optional reference identifier for the transaction.
:param source_document_url: URL link to a source document - shown as 'Go to [appName]' in the downstream app. Currently only supported for Xero.
:param custom_fields:
@@ -1354,7 +1356,7 @@ def update(
app_id=app_id,
service_id=service_id,
raw=raw,
- expense=models.ExpenseInput(
+ expense_update_input=models.ExpenseUpdateInput(
display_id=display_id,
number=number,
transaction_date=transaction_date,
@@ -1391,7 +1393,7 @@ def update(
OptionalNullable[List[Nullable[models.LinkedTrackingCategory]]],
),
line_items=utils.get_pydantic_model(
- line_items, List[models.ExpenseLineItemInput]
+ line_items, Optional[List[models.ExpenseLineItemInput]]
),
reference=reference,
source_document_url=source_document_url,
@@ -1424,7 +1426,11 @@ def update(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.expense, False, False, "json", models.ExpenseInput
+ request.expense_update_input,
+ False,
+ False,
+ "json",
+ models.ExpenseUpdateInput,
),
timeout_ms=timeout_ms,
)
@@ -1511,17 +1517,13 @@ async def update_async(
self,
*,
id: str,
- transaction_date: Nullable[datetime],
- line_items: Union[
- List[models.ExpenseLineItemInput],
- List[models.ExpenseLineItemInputTypedDict],
- ],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
raw: Optional[bool] = False,
display_id: OptionalNullable[str] = UNSET,
number: OptionalNullable[str] = UNSET,
+ transaction_date: OptionalNullable[datetime] = UNSET,
account_id: Optional[str] = None,
account: OptionalNullable[
Union[
@@ -1541,10 +1543,10 @@ async def update_async(
department: OptionalNullable[
Union[models.LinkedDepartmentInput, models.LinkedDepartmentInputTypedDict]
] = UNSET,
- payment_type: OptionalNullable[models.ExpensePaymentType] = UNSET,
+ payment_type: OptionalNullable[models.ExpenseUpdateInputPaymentType] = UNSET,
currency: OptionalNullable[models.Currency] = UNSET,
currency_rate: OptionalNullable[float] = UNSET,
- type_: OptionalNullable[models.ExpenseType] = UNSET,
+ type_: OptionalNullable[models.ExpenseUpdateInputExpenseType] = UNSET,
memo: OptionalNullable[str] = UNSET,
tax_rate: Optional[
Union[models.LinkedTaxRateInput, models.LinkedTaxRateInputTypedDict]
@@ -1559,12 +1561,18 @@ async def update_async(
List[Nullable[models.LinkedTrackingCategoryTypedDict]],
]
] = UNSET,
+ line_items: Optional[
+ Union[
+ List[models.ExpenseLineItemInput],
+ List[models.ExpenseLineItemInputTypedDict],
+ ]
+ ] = None,
reference: OptionalNullable[str] = UNSET,
source_document_url: OptionalNullable[str] = UNSET,
custom_fields: Optional[
Union[List[models.CustomField], List[models.CustomFieldTypedDict]]
] = None,
- status: OptionalNullable[models.ExpenseStatus] = UNSET,
+ status: OptionalNullable[models.ExpenseUpdateInputStatus] = UNSET,
row_version: OptionalNullable[str] = UNSET,
pass_through: Optional[
Union[List[models.PassThroughBody], List[models.PassThroughBodyTypedDict]]
@@ -1579,14 +1587,13 @@ async def update_async(
Update Expense
:param id: ID of the record you are acting upon.
- :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
- :param line_items: Expense line items linked to this expense.
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
:param raw: Include raw response. Mostly used for debugging purposes
:param display_id: Id to be displayed.
:param number: Number.
+ :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param account_id: The unique identifier for the ledger account that this expense should be credited to. Deprecated, use account instead.
:param account: A flexible account reference that can represent a ledger account (GL account), a bank account, or an employee payable account, depending on the connector's requirements.
:param supplier_id: The ID of the supplier this entity is linked to. Deprecated, use supplier instead.
@@ -1606,6 +1613,7 @@ async def update_async(
:param total_tax: Total tax amount applied to this transaction.
:param total_amount: The total amount of the expense line item.
:param tracking_categories: A list of linked tracking categories.
+ :param line_items: Expense line items linked to this expense.
:param reference: Optional reference identifier for the transaction.
:param source_document_url: URL link to a source document - shown as 'Go to [appName]' in the downstream app. Currently only supported for Xero.
:param custom_fields:
@@ -1633,7 +1641,7 @@ async def update_async(
app_id=app_id,
service_id=service_id,
raw=raw,
- expense=models.ExpenseInput(
+ expense_update_input=models.ExpenseUpdateInput(
display_id=display_id,
number=number,
transaction_date=transaction_date,
@@ -1670,7 +1678,7 @@ async def update_async(
OptionalNullable[List[Nullable[models.LinkedTrackingCategory]]],
),
line_items=utils.get_pydantic_model(
- line_items, List[models.ExpenseLineItemInput]
+ line_items, Optional[List[models.ExpenseLineItemInput]]
),
reference=reference,
source_document_url=source_document_url,
@@ -1703,7 +1711,11 @@ async def update_async(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.expense, False, False, "json", models.ExpenseInput
+ request.expense_update_input,
+ False,
+ False,
+ "json",
+ models.ExpenseUpdateInput,
),
timeout_ms=timeout_ms,
)
diff --git a/src/apideck_unify/models/__init__.py b/src/apideck_unify/models/__init__.py
index 1830b8014..5b6431603 100644
--- a/src/apideck_unify/models/__init__.py
+++ b/src/apideck_unify/models/__init__.py
@@ -2037,6 +2037,14 @@
BillPaymentCreateInputBillPaymentType,
BillPaymentCreateInputTypedDict,
)
+ from .billpaymentupdateinput import (
+ BillPaymentUpdateInput,
+ BillPaymentUpdateInputAllocationType,
+ BillPaymentUpdateInputAllocations,
+ BillPaymentUpdateInputAllocationsTypedDict,
+ BillPaymentUpdateInputBillPaymentType,
+ BillPaymentUpdateInputTypedDict,
+ )
from .billsfilter import BillsFilter, BillsFilterStatus, BillsFilterTypedDict
from .billssort import BillsSort, BillsSortTypedDict, By
from .categoriesfilter import (
@@ -2520,6 +2528,12 @@
CreditNotesSortBy,
CreditNotesSortTypedDict,
)
+ from .creditnoteupdateinput import (
+ CreditNoteUpdateInput,
+ CreditNoteUpdateInputCreditNoteStatus,
+ CreditNoteUpdateInputCreditNoteType,
+ CreditNoteUpdateInputTypedDict,
+ )
from .creditordebit import CreditOrDebit
from .crm_activitiesaddop import (
CrmActivitiesAddGlobals,
@@ -3421,6 +3435,11 @@
ExpenseCategoryStatus,
ExpenseCategoryTypedDict,
)
+ from .expensecategoryupdateinput import (
+ ExpenseCategoryUpdateInput,
+ ExpenseCategoryUpdateInputStatus,
+ ExpenseCategoryUpdateInputTypedDict,
+ )
from .expenselineitem import ExpenseLineItem, ExpenseLineItemTypedDict
from .expenselineitem_input import (
ExpenseLineItemInput,
@@ -3452,12 +3471,30 @@
ExpenseReportsFilterStatus,
ExpenseReportsFilterTypedDict,
)
+ from .expensereportupdateinput import (
+ ExpenseReportUpdateInput,
+ ExpenseReportUpdateInputAccountingPeriod,
+ ExpenseReportUpdateInputAccountingPeriodTypedDict,
+ ExpenseReportUpdateInputApprovedBy,
+ ExpenseReportUpdateInputApprovedByTypedDict,
+ ExpenseReportUpdateInputEmployee,
+ ExpenseReportUpdateInputEmployeeTypedDict,
+ ExpenseReportUpdateInputStatus,
+ ExpenseReportUpdateInputTypedDict,
+ )
from .expensesfilter import (
ExpensesFilter,
ExpensesFilterStatus,
ExpensesFilterType,
ExpensesFilterTypedDict,
)
+ from .expenseupdateinput import (
+ ExpenseUpdateInput,
+ ExpenseUpdateInputExpenseType,
+ ExpenseUpdateInputPaymentType,
+ ExpenseUpdateInputStatus,
+ ExpenseUpdateInputTypedDict,
+ )
from .filesfilter import FilesFilter, FilesFilterTypedDict
from .filessearch import FilesSearch, FilesSearchTypedDict
from .filessort import FilesSort, FilesSortBy, FilesSortTypedDict
@@ -4920,6 +4957,7 @@
from .paymentstatus import PaymentStatus
from .paymenttype import PaymentType
from .paymentunit import PaymentUnit
+ from .paymentupdateinput import PaymentUpdateInput, PaymentUpdateInputTypedDict
from .payroll import Payroll, PayrollTypedDict
from .payrollsfilter import PayrollsFilter, PayrollsFilterTypedDict
from .payrolltotals import PayrollTotals, PayrollTotalsTypedDict
@@ -4977,6 +5015,20 @@
)
from .projectsfilter import ProjectStatus, ProjectsFilter, ProjectsFilterTypedDict
from .projectssort import ProjectsSort, ProjectsSortSortBy, ProjectsSortTypedDict
+ from .projectupdateinput import (
+ ProjectUpdateInput,
+ ProjectUpdateInputBillingMethod,
+ ProjectUpdateInputDepartment,
+ ProjectUpdateInputDepartmentTypedDict,
+ ProjectUpdateInputParentProject,
+ ProjectUpdateInputParentProjectTypedDict,
+ ProjectUpdateInputPriority,
+ ProjectUpdateInputProjectPhase,
+ ProjectUpdateInputProjectStatus,
+ ProjectUpdateInputProjectType,
+ ProjectUpdateInputScheduleStatus,
+ ProjectUpdateInputTypedDict,
+ )
from .proxy_deleteproxyop import (
ProxyDeleteProxyGlobals,
ProxyDeleteProxyGlobalsTypedDict,
@@ -5076,6 +5128,7 @@
from .refundssort import RefundsSort, RefundsSortBy, RefundsSortTypedDict
from .refundstatus import RefundStatus
from .refundtype import RefundType
+ from .refundupdateinput import RefundUpdateInput, RefundUpdateInputTypedDict
from .requestcountallocation import (
RequestCountAllocation,
RequestCountAllocationTypedDict,
@@ -5098,6 +5151,10 @@
SalesReceiptsSortBy,
SalesReceiptsSortTypedDict,
)
+ from .salesreceiptupdateinput import (
+ SalesReceiptUpdateInput,
+ SalesReceiptUpdateInputTypedDict,
+ )
from .schedule import (
EvenWeeks,
EvenWeeksTypedDict,
@@ -7349,6 +7406,12 @@
"BillPaymentInputTypedDict",
"BillPaymentType",
"BillPaymentTypedDict",
+ "BillPaymentUpdateInput",
+ "BillPaymentUpdateInputAllocationType",
+ "BillPaymentUpdateInputAllocations",
+ "BillPaymentUpdateInputAllocationsTypedDict",
+ "BillPaymentUpdateInputBillPaymentType",
+ "BillPaymentUpdateInputTypedDict",
"BillStatus",
"BillTypedDict",
"BillingMethod",
@@ -7686,6 +7749,10 @@
"CreditNoteStatus",
"CreditNoteType",
"CreditNoteTypedDict",
+ "CreditNoteUpdateInput",
+ "CreditNoteUpdateInputCreditNoteStatus",
+ "CreditNoteUpdateInputCreditNoteType",
+ "CreditNoteUpdateInputTypedDict",
"CreditNotesFilter",
"CreditNotesFilterTypedDict",
"CreditNotesSort",
@@ -8367,6 +8434,9 @@
"ExpenseCategoryInputTypedDict",
"ExpenseCategoryStatus",
"ExpenseCategoryTypedDict",
+ "ExpenseCategoryUpdateInput",
+ "ExpenseCategoryUpdateInputStatus",
+ "ExpenseCategoryUpdateInputTypedDict",
"ExpenseInput",
"ExpenseInputTypedDict",
"ExpenseLineItem",
@@ -8385,12 +8455,26 @@
"ExpenseReportLineItemTypedDict",
"ExpenseReportStatus",
"ExpenseReportTypedDict",
+ "ExpenseReportUpdateInput",
+ "ExpenseReportUpdateInputAccountingPeriod",
+ "ExpenseReportUpdateInputAccountingPeriodTypedDict",
+ "ExpenseReportUpdateInputApprovedBy",
+ "ExpenseReportUpdateInputApprovedByTypedDict",
+ "ExpenseReportUpdateInputEmployee",
+ "ExpenseReportUpdateInputEmployeeTypedDict",
+ "ExpenseReportUpdateInputStatus",
+ "ExpenseReportUpdateInputTypedDict",
"ExpenseReportsFilter",
"ExpenseReportsFilterStatus",
"ExpenseReportsFilterTypedDict",
"ExpenseStatus",
"ExpenseType",
"ExpenseTypedDict",
+ "ExpenseUpdateInput",
+ "ExpenseUpdateInputExpenseType",
+ "ExpenseUpdateInputPaymentType",
+ "ExpenseUpdateInputStatus",
+ "ExpenseUpdateInputTypedDict",
"ExpensesFilter",
"ExpensesFilterStatus",
"ExpensesFilterType",
@@ -9529,6 +9613,8 @@
"PaymentType",
"PaymentTypedDict",
"PaymentUnit",
+ "PaymentUpdateInput",
+ "PaymentUpdateInputTypedDict",
"PaymentsFilter",
"PaymentsFilterPaymentStatus",
"PaymentsFilterType",
@@ -9582,6 +9668,18 @@
"ProjectStatus",
"ProjectType",
"ProjectTypedDict",
+ "ProjectUpdateInput",
+ "ProjectUpdateInputBillingMethod",
+ "ProjectUpdateInputDepartment",
+ "ProjectUpdateInputDepartmentTypedDict",
+ "ProjectUpdateInputParentProject",
+ "ProjectUpdateInputParentProjectTypedDict",
+ "ProjectUpdateInputPriority",
+ "ProjectUpdateInputProjectPhase",
+ "ProjectUpdateInputProjectStatus",
+ "ProjectUpdateInputProjectType",
+ "ProjectUpdateInputScheduleStatus",
+ "ProjectUpdateInputTypedDict",
"ProjectsFilter",
"ProjectsFilterTypedDict",
"ProjectsSort",
@@ -9663,6 +9761,8 @@
"RefundStatus",
"RefundType",
"RefundTypedDict",
+ "RefundUpdateInput",
+ "RefundUpdateInputTypedDict",
"RefundsFilter",
"RefundsFilterTypedDict",
"RefundsSort",
@@ -9704,6 +9804,8 @@
"SalesReceiptInput",
"SalesReceiptInputTypedDict",
"SalesReceiptTypedDict",
+ "SalesReceiptUpdateInput",
+ "SalesReceiptUpdateInputTypedDict",
"SalesReceiptsFilter",
"SalesReceiptsFilterTypedDict",
"SalesReceiptsSort",
@@ -11785,6 +11887,12 @@
"BillPaymentCreateInputAllocationsTypedDict": ".billpaymentcreateinput",
"BillPaymentCreateInputBillPaymentType": ".billpaymentcreateinput",
"BillPaymentCreateInputTypedDict": ".billpaymentcreateinput",
+ "BillPaymentUpdateInput": ".billpaymentupdateinput",
+ "BillPaymentUpdateInputAllocationType": ".billpaymentupdateinput",
+ "BillPaymentUpdateInputAllocations": ".billpaymentupdateinput",
+ "BillPaymentUpdateInputAllocationsTypedDict": ".billpaymentupdateinput",
+ "BillPaymentUpdateInputBillPaymentType": ".billpaymentupdateinput",
+ "BillPaymentUpdateInputTypedDict": ".billpaymentupdateinput",
"BillsFilter": ".billsfilter",
"BillsFilterStatus": ".billsfilter",
"BillsFilterTypedDict": ".billsfilter",
@@ -12141,6 +12249,10 @@
"CreditNotesSort": ".creditnotessort",
"CreditNotesSortBy": ".creditnotessort",
"CreditNotesSortTypedDict": ".creditnotessort",
+ "CreditNoteUpdateInput": ".creditnoteupdateinput",
+ "CreditNoteUpdateInputCreditNoteStatus": ".creditnoteupdateinput",
+ "CreditNoteUpdateInputCreditNoteType": ".creditnoteupdateinput",
+ "CreditNoteUpdateInputTypedDict": ".creditnoteupdateinput",
"CreditOrDebit": ".creditordebit",
"CrmActivitiesAddGlobals": ".crm_activitiesaddop",
"CrmActivitiesAddGlobalsTypedDict": ".crm_activitiesaddop",
@@ -12804,6 +12916,9 @@
"ExpenseCategoryInputTypedDict": ".expensecategory",
"ExpenseCategoryStatus": ".expensecategory",
"ExpenseCategoryTypedDict": ".expensecategory",
+ "ExpenseCategoryUpdateInput": ".expensecategoryupdateinput",
+ "ExpenseCategoryUpdateInputStatus": ".expensecategoryupdateinput",
+ "ExpenseCategoryUpdateInputTypedDict": ".expensecategoryupdateinput",
"ExpenseLineItem": ".expenselineitem",
"ExpenseLineItemTypedDict": ".expenselineitem",
"ExpenseLineItemInput": ".expenselineitem_input",
@@ -12826,10 +12941,24 @@
"ExpenseReportsFilter": ".expensereportsfilter",
"ExpenseReportsFilterStatus": ".expensereportsfilter",
"ExpenseReportsFilterTypedDict": ".expensereportsfilter",
+ "ExpenseReportUpdateInput": ".expensereportupdateinput",
+ "ExpenseReportUpdateInputAccountingPeriod": ".expensereportupdateinput",
+ "ExpenseReportUpdateInputAccountingPeriodTypedDict": ".expensereportupdateinput",
+ "ExpenseReportUpdateInputApprovedBy": ".expensereportupdateinput",
+ "ExpenseReportUpdateInputApprovedByTypedDict": ".expensereportupdateinput",
+ "ExpenseReportUpdateInputEmployee": ".expensereportupdateinput",
+ "ExpenseReportUpdateInputEmployeeTypedDict": ".expensereportupdateinput",
+ "ExpenseReportUpdateInputStatus": ".expensereportupdateinput",
+ "ExpenseReportUpdateInputTypedDict": ".expensereportupdateinput",
"ExpensesFilter": ".expensesfilter",
"ExpensesFilterStatus": ".expensesfilter",
"ExpensesFilterType": ".expensesfilter",
"ExpensesFilterTypedDict": ".expensesfilter",
+ "ExpenseUpdateInput": ".expenseupdateinput",
+ "ExpenseUpdateInputExpenseType": ".expenseupdateinput",
+ "ExpenseUpdateInputPaymentType": ".expenseupdateinput",
+ "ExpenseUpdateInputStatus": ".expenseupdateinput",
+ "ExpenseUpdateInputTypedDict": ".expenseupdateinput",
"FilesFilter": ".filesfilter",
"FilesFilterTypedDict": ".filesfilter",
"FilesSearch": ".filessearch",
@@ -13954,6 +14083,8 @@
"PaymentStatus": ".paymentstatus",
"PaymentType": ".paymenttype",
"PaymentUnit": ".paymentunit",
+ "PaymentUpdateInput": ".paymentupdateinput",
+ "PaymentUpdateInputTypedDict": ".paymentupdateinput",
"Payroll": ".payroll",
"PayrollTypedDict": ".payroll",
"PayrollsFilter": ".payrollsfilter",
@@ -14015,6 +14146,18 @@
"ProjectsSort": ".projectssort",
"ProjectsSortSortBy": ".projectssort",
"ProjectsSortTypedDict": ".projectssort",
+ "ProjectUpdateInput": ".projectupdateinput",
+ "ProjectUpdateInputBillingMethod": ".projectupdateinput",
+ "ProjectUpdateInputDepartment": ".projectupdateinput",
+ "ProjectUpdateInputDepartmentTypedDict": ".projectupdateinput",
+ "ProjectUpdateInputParentProject": ".projectupdateinput",
+ "ProjectUpdateInputParentProjectTypedDict": ".projectupdateinput",
+ "ProjectUpdateInputPriority": ".projectupdateinput",
+ "ProjectUpdateInputProjectPhase": ".projectupdateinput",
+ "ProjectUpdateInputProjectStatus": ".projectupdateinput",
+ "ProjectUpdateInputProjectType": ".projectupdateinput",
+ "ProjectUpdateInputScheduleStatus": ".projectupdateinput",
+ "ProjectUpdateInputTypedDict": ".projectupdateinput",
"ProxyDeleteProxyGlobals": ".proxy_deleteproxyop",
"ProxyDeleteProxyGlobalsTypedDict": ".proxy_deleteproxyop",
"ProxyDeleteProxyRequest": ".proxy_deleteproxyop",
@@ -14100,6 +14243,8 @@
"RefundsSortTypedDict": ".refundssort",
"RefundStatus": ".refundstatus",
"RefundType": ".refundtype",
+ "RefundUpdateInput": ".refundupdateinput",
+ "RefundUpdateInputTypedDict": ".refundupdateinput",
"RequestCountAllocation": ".requestcountallocation",
"RequestCountAllocationTypedDict": ".requestcountallocation",
"ResourceStatus": ".resourcestatus",
@@ -14120,6 +14265,8 @@
"SalesReceiptsSort": ".salesreceiptssort",
"SalesReceiptsSortBy": ".salesreceiptssort",
"SalesReceiptsSortTypedDict": ".salesreceiptssort",
+ "SalesReceiptUpdateInput": ".salesreceiptupdateinput",
+ "SalesReceiptUpdateInputTypedDict": ".salesreceiptupdateinput",
"EvenWeeks": ".schedule",
"EvenWeeksTypedDict": ".schedule",
"OddWeeks": ".schedule",
diff --git a/src/apideck_unify/models/accounting_billpaymentsupdateop.py b/src/apideck_unify/models/accounting_billpaymentsupdateop.py
index 64455a18a..5dd6763f8 100644
--- a/src/apideck_unify/models/accounting_billpaymentsupdateop.py
+++ b/src/apideck_unify/models/accounting_billpaymentsupdateop.py
@@ -1,7 +1,10 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
-from .billpayment import BillPaymentInput, BillPaymentInputTypedDict
+from .billpaymentupdateinput import (
+ BillPaymentUpdateInput,
+ BillPaymentUpdateInputTypedDict,
+)
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
from .unexpectederrorresponse import (
UnexpectedErrorResponse,
@@ -50,7 +53,7 @@ class AccountingBillPaymentsUpdateGlobals(BaseModel):
class AccountingBillPaymentsUpdateRequestTypedDict(TypedDict):
id: str
r"""ID of the record you are acting upon."""
- bill_payment: BillPaymentInputTypedDict
+ bill_payment_update_input: BillPaymentUpdateInputTypedDict
consumer_id: NotRequired[str]
r"""ID of the consumer which you want to get or push data from"""
app_id: NotRequired[str]
@@ -67,8 +70,8 @@ class AccountingBillPaymentsUpdateRequest(BaseModel):
]
r"""ID of the record you are acting upon."""
- bill_payment: Annotated[
- BillPaymentInput,
+ bill_payment_update_input: Annotated[
+ BillPaymentUpdateInput,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
diff --git a/src/apideck_unify/models/accounting_creditnotesupdateop.py b/src/apideck_unify/models/accounting_creditnotesupdateop.py
index 9ca89fcb9..8ad467310 100644
--- a/src/apideck_unify/models/accounting_creditnotesupdateop.py
+++ b/src/apideck_unify/models/accounting_creditnotesupdateop.py
@@ -1,7 +1,7 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
-from .creditnote import CreditNoteInput, CreditNoteInputTypedDict
+from .creditnoteupdateinput import CreditNoteUpdateInput, CreditNoteUpdateInputTypedDict
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
from .unexpectederrorresponse import (
UnexpectedErrorResponse,
@@ -50,7 +50,7 @@ class AccountingCreditNotesUpdateGlobals(BaseModel):
class AccountingCreditNotesUpdateRequestTypedDict(TypedDict):
id: str
r"""ID of the record you are acting upon."""
- credit_note: CreditNoteInputTypedDict
+ credit_note_update_input: CreditNoteUpdateInputTypedDict
consumer_id: NotRequired[str]
r"""ID of the consumer which you want to get or push data from"""
app_id: NotRequired[str]
@@ -67,8 +67,8 @@ class AccountingCreditNotesUpdateRequest(BaseModel):
]
r"""ID of the record you are acting upon."""
- credit_note: Annotated[
- CreditNoteInput,
+ credit_note_update_input: Annotated[
+ CreditNoteUpdateInput,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
diff --git a/src/apideck_unify/models/accounting_expensecategoriesupdateop.py b/src/apideck_unify/models/accounting_expensecategoriesupdateop.py
index 7ad44e483..9f828af5f 100644
--- a/src/apideck_unify/models/accounting_expensecategoriesupdateop.py
+++ b/src/apideck_unify/models/accounting_expensecategoriesupdateop.py
@@ -1,7 +1,10 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
-from .expensecategory import ExpenseCategoryInput, ExpenseCategoryInputTypedDict
+from .expensecategoryupdateinput import (
+ ExpenseCategoryUpdateInput,
+ ExpenseCategoryUpdateInputTypedDict,
+)
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
from .unexpectederrorresponse import (
UnexpectedErrorResponse,
@@ -50,7 +53,7 @@ class AccountingExpenseCategoriesUpdateGlobals(BaseModel):
class AccountingExpenseCategoriesUpdateRequestTypedDict(TypedDict):
id: str
r"""ID of the record you are acting upon."""
- expense_category: ExpenseCategoryInputTypedDict
+ expense_category_update_input: ExpenseCategoryUpdateInputTypedDict
consumer_id: NotRequired[str]
r"""ID of the consumer which you want to get or push data from"""
app_id: NotRequired[str]
@@ -67,8 +70,8 @@ class AccountingExpenseCategoriesUpdateRequest(BaseModel):
]
r"""ID of the record you are acting upon."""
- expense_category: Annotated[
- ExpenseCategoryInput,
+ expense_category_update_input: Annotated[
+ ExpenseCategoryUpdateInput,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
diff --git a/src/apideck_unify/models/accounting_expensereportsupdateop.py b/src/apideck_unify/models/accounting_expensereportsupdateop.py
index ab1c50c4b..4f389706b 100644
--- a/src/apideck_unify/models/accounting_expensereportsupdateop.py
+++ b/src/apideck_unify/models/accounting_expensereportsupdateop.py
@@ -1,7 +1,10 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
-from .expensereport import ExpenseReportInput, ExpenseReportInputTypedDict
+from .expensereportupdateinput import (
+ ExpenseReportUpdateInput,
+ ExpenseReportUpdateInputTypedDict,
+)
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
from .unexpectederrorresponse import (
UnexpectedErrorResponse,
@@ -50,7 +53,7 @@ class AccountingExpenseReportsUpdateGlobals(BaseModel):
class AccountingExpenseReportsUpdateRequestTypedDict(TypedDict):
id: str
r"""ID of the record you are acting upon."""
- expense_report: ExpenseReportInputTypedDict
+ expense_report_update_input: ExpenseReportUpdateInputTypedDict
consumer_id: NotRequired[str]
r"""ID of the consumer which you want to get or push data from"""
app_id: NotRequired[str]
@@ -67,8 +70,8 @@ class AccountingExpenseReportsUpdateRequest(BaseModel):
]
r"""ID of the record you are acting upon."""
- expense_report: Annotated[
- ExpenseReportInput,
+ expense_report_update_input: Annotated[
+ ExpenseReportUpdateInput,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
diff --git a/src/apideck_unify/models/accounting_expensesupdateop.py b/src/apideck_unify/models/accounting_expensesupdateop.py
index 8cc87fbcc..353061a9b 100644
--- a/src/apideck_unify/models/accounting_expensesupdateop.py
+++ b/src/apideck_unify/models/accounting_expensesupdateop.py
@@ -1,7 +1,7 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
-from .expense import ExpenseInput, ExpenseInputTypedDict
+from .expenseupdateinput import ExpenseUpdateInput, ExpenseUpdateInputTypedDict
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
from .unexpectederrorresponse import (
UnexpectedErrorResponse,
@@ -47,7 +47,7 @@ class AccountingExpensesUpdateGlobals(BaseModel):
class AccountingExpensesUpdateRequestTypedDict(TypedDict):
id: str
r"""ID of the record you are acting upon."""
- expense: ExpenseInputTypedDict
+ expense_update_input: ExpenseUpdateInputTypedDict
consumer_id: NotRequired[str]
r"""ID of the consumer which you want to get or push data from"""
app_id: NotRequired[str]
@@ -64,8 +64,8 @@ class AccountingExpensesUpdateRequest(BaseModel):
]
r"""ID of the record you are acting upon."""
- expense: Annotated[
- ExpenseInput,
+ expense_update_input: Annotated[
+ ExpenseUpdateInput,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
diff --git a/src/apideck_unify/models/accounting_paymentsupdateop.py b/src/apideck_unify/models/accounting_paymentsupdateop.py
index 03508509b..fbd3faf32 100644
--- a/src/apideck_unify/models/accounting_paymentsupdateop.py
+++ b/src/apideck_unify/models/accounting_paymentsupdateop.py
@@ -2,7 +2,7 @@
from __future__ import annotations
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
-from .payment_input import PaymentInput, PaymentInputTypedDict
+from .paymentupdateinput import PaymentUpdateInput, PaymentUpdateInputTypedDict
from .unexpectederrorresponse import (
UnexpectedErrorResponse,
UnexpectedErrorResponseTypedDict,
@@ -47,7 +47,7 @@ class AccountingPaymentsUpdateGlobals(BaseModel):
class AccountingPaymentsUpdateRequestTypedDict(TypedDict):
id: str
r"""ID of the record you are acting upon."""
- payment: PaymentInputTypedDict
+ payment_update_input: PaymentUpdateInputTypedDict
consumer_id: NotRequired[str]
r"""ID of the consumer which you want to get or push data from"""
app_id: NotRequired[str]
@@ -66,8 +66,8 @@ class AccountingPaymentsUpdateRequest(BaseModel):
]
r"""ID of the record you are acting upon."""
- payment: Annotated[
- PaymentInput,
+ payment_update_input: Annotated[
+ PaymentUpdateInput,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
diff --git a/src/apideck_unify/models/accounting_projectsupdateop.py b/src/apideck_unify/models/accounting_projectsupdateop.py
index 1fbeda92e..890501810 100644
--- a/src/apideck_unify/models/accounting_projectsupdateop.py
+++ b/src/apideck_unify/models/accounting_projectsupdateop.py
@@ -2,7 +2,7 @@
from __future__ import annotations
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
-from .project import ProjectInput, ProjectInputTypedDict
+from .projectupdateinput import ProjectUpdateInput, ProjectUpdateInputTypedDict
from .unexpectederrorresponse import (
UnexpectedErrorResponse,
UnexpectedErrorResponseTypedDict,
@@ -47,7 +47,7 @@ class AccountingProjectsUpdateGlobals(BaseModel):
class AccountingProjectsUpdateRequestTypedDict(TypedDict):
id: str
r"""ID of the record you are acting upon."""
- project: ProjectInputTypedDict
+ project_update_input: ProjectUpdateInputTypedDict
consumer_id: NotRequired[str]
r"""ID of the consumer which you want to get or push data from"""
app_id: NotRequired[str]
@@ -66,8 +66,8 @@ class AccountingProjectsUpdateRequest(BaseModel):
]
r"""ID of the record you are acting upon."""
- project: Annotated[
- ProjectInput,
+ project_update_input: Annotated[
+ ProjectUpdateInput,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
diff --git a/src/apideck_unify/models/accounting_refundsupdateop.py b/src/apideck_unify/models/accounting_refundsupdateop.py
index cf11a7cbc..b986d9d81 100644
--- a/src/apideck_unify/models/accounting_refundsupdateop.py
+++ b/src/apideck_unify/models/accounting_refundsupdateop.py
@@ -2,7 +2,7 @@
from __future__ import annotations
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
-from .refund_input import RefundInput, RefundInputTypedDict
+from .refundupdateinput import RefundUpdateInput, RefundUpdateInputTypedDict
from .unexpectederrorresponse import (
UnexpectedErrorResponse,
UnexpectedErrorResponseTypedDict,
@@ -47,7 +47,7 @@ class AccountingRefundsUpdateGlobals(BaseModel):
class AccountingRefundsUpdateRequestTypedDict(TypedDict):
id: str
r"""ID of the record you are acting upon."""
- refund: RefundInputTypedDict
+ refund_update_input: RefundUpdateInputTypedDict
consumer_id: NotRequired[str]
r"""ID of the consumer which you want to get or push data from"""
app_id: NotRequired[str]
@@ -64,8 +64,8 @@ class AccountingRefundsUpdateRequest(BaseModel):
]
r"""ID of the record you are acting upon."""
- refund: Annotated[
- RefundInput,
+ refund_update_input: Annotated[
+ RefundUpdateInput,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
diff --git a/src/apideck_unify/models/accounting_salesreceiptsupdateop.py b/src/apideck_unify/models/accounting_salesreceiptsupdateop.py
index 7331454fb..461d57043 100644
--- a/src/apideck_unify/models/accounting_salesreceiptsupdateop.py
+++ b/src/apideck_unify/models/accounting_salesreceiptsupdateop.py
@@ -2,7 +2,10 @@
from __future__ import annotations
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
-from .salesreceipt_input import SalesReceiptInput, SalesReceiptInputTypedDict
+from .salesreceiptupdateinput import (
+ SalesReceiptUpdateInput,
+ SalesReceiptUpdateInputTypedDict,
+)
from .unexpectederrorresponse import (
UnexpectedErrorResponse,
UnexpectedErrorResponseTypedDict,
@@ -50,7 +53,7 @@ class AccountingSalesReceiptsUpdateGlobals(BaseModel):
class AccountingSalesReceiptsUpdateRequestTypedDict(TypedDict):
id: str
r"""ID of the record you are acting upon."""
- sales_receipt: SalesReceiptInputTypedDict
+ sales_receipt_update_input: SalesReceiptUpdateInputTypedDict
consumer_id: NotRequired[str]
r"""ID of the consumer which you want to get or push data from"""
app_id: NotRequired[str]
@@ -69,8 +72,8 @@ class AccountingSalesReceiptsUpdateRequest(BaseModel):
]
r"""ID of the record you are acting upon."""
- sales_receipt: Annotated[
- SalesReceiptInput,
+ sales_receipt_update_input: Annotated[
+ SalesReceiptUpdateInput,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
diff --git a/src/apideck_unify/models/billpaymentupdateinput.py b/src/apideck_unify/models/billpaymentupdateinput.py
new file mode 100644
index 000000000..5f74f1aac
--- /dev/null
+++ b/src/apideck_unify/models/billpaymentupdateinput.py
@@ -0,0 +1,347 @@
+"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
+
+from __future__ import annotations
+from .currency import Currency
+from .customfield import CustomField, CustomFieldTypedDict
+from .linkedledgeraccount import LinkedLedgerAccount, LinkedLedgerAccountTypedDict
+from .linkedsubsidiary_input import (
+ LinkedSubsidiaryInput,
+ LinkedSubsidiaryInputTypedDict,
+)
+from .linkedsupplier_input import LinkedSupplierInput, LinkedSupplierInputTypedDict
+from .linkedtrackingcategory import (
+ LinkedTrackingCategory,
+ LinkedTrackingCategoryTypedDict,
+)
+from .passthroughbody import PassThroughBody, PassThroughBodyTypedDict
+from .paymentstatus import PaymentStatus
+from apideck_unify import models, utils
+from apideck_unify.types import (
+ BaseModel,
+ Nullable,
+ OptionalNullable,
+ UNSET,
+ UNSET_SENTINEL,
+)
+from apideck_unify.utils import validate_open_enum
+from datetime import datetime
+from enum import Enum
+from pydantic import field_serializer, model_serializer
+from pydantic.functional_validators import PlainValidator
+from typing import List, Optional
+from typing_extensions import Annotated, NotRequired, TypedDict
+
+
+class BillPaymentUpdateInputBillPaymentType(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""Type of payment"""
+
+ ACCOUNTS_PAYABLE_CREDIT = "accounts_payable_credit"
+ ACCOUNTS_PAYABLE_OVERPAYMENT = "accounts_payable_overpayment"
+ ACCOUNTS_PAYABLE_PREPAYMENT = "accounts_payable_prepayment"
+ ACCOUNTS_PAYABLE = "accounts_payable"
+
+
+class BillPaymentUpdateInputAllocationType(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""Type of entity this payment should be attributed to."""
+
+ BILL = "bill"
+ EXPENSE = "expense"
+ CREDIT_MEMO = "credit_memo"
+ OVER_PAYMENT = "over_payment"
+ PRE_PAYMENT = "pre_payment"
+ JOURNAL_ENTRY = "journal_entry"
+ OTHER = "other"
+
+
+class BillPaymentUpdateInputAllocationsTypedDict(TypedDict):
+ id: NotRequired[Nullable[str]]
+ r"""A unique identifier for an object."""
+ type: NotRequired[BillPaymentUpdateInputAllocationType]
+ r"""Type of entity this payment should be attributed to."""
+ amount: NotRequired[Nullable[float]]
+ r"""Amount of payment that should be attributed to this allocation. If null, the total_amount will be used."""
+ allocation_id: NotRequired[str]
+ r"""Unique identifier of the allocation"""
+
+
+class BillPaymentUpdateInputAllocations(BaseModel):
+ id: OptionalNullable[str] = UNSET
+ r"""A unique identifier for an object."""
+
+ type: Annotated[
+ Optional[BillPaymentUpdateInputAllocationType],
+ PlainValidator(validate_open_enum(False)),
+ ] = None
+ r"""Type of entity this payment should be attributed to."""
+
+ amount: OptionalNullable[float] = UNSET
+ r"""Amount of payment that should be attributed to this allocation. If null, the total_amount will be used."""
+
+ allocation_id: Optional[str] = None
+ r"""Unique identifier of the allocation"""
+
+ @field_serializer("type")
+ def serialize_type(self, value):
+ if isinstance(value, str):
+ try:
+ return models.BillPaymentUpdateInputAllocationType(value)
+ except ValueError:
+ return value
+ return value
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = ["id", "type", "amount", "allocation_id"]
+ nullable_fields = ["id", "amount"]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
+
+
+class BillPaymentUpdateInputTypedDict(TypedDict):
+ r"""The writable shape of BillPayment for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ currency: NotRequired[Nullable[Currency]]
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+ currency_rate: NotRequired[Nullable[float]]
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+ total_amount: NotRequired[Nullable[float]]
+ r"""The total amount of the transaction or record"""
+ reference: NotRequired[Nullable[str]]
+ r"""Optional transaction reference message ie: Debit remittance detail."""
+ payment_method: NotRequired[Nullable[str]]
+ r"""Payment method used for the transaction, such as cash, credit card, bank transfer, or check"""
+ payment_method_reference: NotRequired[Nullable[str]]
+ r"""Optional reference message returned by payment method on processing"""
+ payment_method_id: NotRequired[Nullable[str]]
+ r"""A unique identifier for an object."""
+ account: NotRequired[Nullable[LinkedLedgerAccountTypedDict]]
+ transaction_date: NotRequired[Nullable[datetime]]
+ r"""The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD"""
+ supplier: NotRequired[Nullable[LinkedSupplierInputTypedDict]]
+ r"""The supplier this entity is linked to."""
+ company_id: NotRequired[Nullable[str]]
+ r"""The company ID the transaction belongs to"""
+ subsidiary: NotRequired[Nullable[LinkedSubsidiaryInputTypedDict]]
+ reconciled: NotRequired[Nullable[bool]]
+ r"""Indicates if the transaction has been reconciled."""
+ status: NotRequired[PaymentStatus]
+ r"""Status of payment"""
+ type: NotRequired[BillPaymentUpdateInputBillPaymentType]
+ r"""Type of payment"""
+ allocations: NotRequired[List[BillPaymentUpdateInputAllocationsTypedDict]]
+ note: NotRequired[Nullable[str]]
+ r"""Note associated with the transaction"""
+ number: NotRequired[Nullable[str]]
+ r"""Number associated with the transaction"""
+ tracking_categories: NotRequired[
+ Nullable[List[Nullable[LinkedTrackingCategoryTypedDict]]]
+ ]
+ r"""A list of linked tracking categories."""
+ custom_fields: NotRequired[List[CustomFieldTypedDict]]
+ row_version: NotRequired[Nullable[str]]
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+ display_id: NotRequired[Nullable[str]]
+ r"""Id to be displayed."""
+ pass_through: NotRequired[List[PassThroughBodyTypedDict]]
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+
+class BillPaymentUpdateInput(BaseModel):
+ r"""The writable shape of BillPayment for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ currency: Annotated[
+ OptionalNullable[Currency], PlainValidator(validate_open_enum(False))
+ ] = UNSET
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+
+ currency_rate: OptionalNullable[float] = UNSET
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+
+ total_amount: OptionalNullable[float] = UNSET
+ r"""The total amount of the transaction or record"""
+
+ reference: OptionalNullable[str] = UNSET
+ r"""Optional transaction reference message ie: Debit remittance detail."""
+
+ payment_method: OptionalNullable[str] = UNSET
+ r"""Payment method used for the transaction, such as cash, credit card, bank transfer, or check"""
+
+ payment_method_reference: OptionalNullable[str] = UNSET
+ r"""Optional reference message returned by payment method on processing"""
+
+ payment_method_id: OptionalNullable[str] = UNSET
+ r"""A unique identifier for an object."""
+
+ account: OptionalNullable[LinkedLedgerAccount] = UNSET
+
+ transaction_date: OptionalNullable[datetime] = UNSET
+ r"""The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD"""
+
+ supplier: OptionalNullable[LinkedSupplierInput] = UNSET
+ r"""The supplier this entity is linked to."""
+
+ company_id: OptionalNullable[str] = UNSET
+ r"""The company ID the transaction belongs to"""
+
+ subsidiary: OptionalNullable[LinkedSubsidiaryInput] = UNSET
+
+ reconciled: OptionalNullable[bool] = UNSET
+ r"""Indicates if the transaction has been reconciled."""
+
+ status: Annotated[
+ Optional[PaymentStatus], PlainValidator(validate_open_enum(False))
+ ] = None
+ r"""Status of payment"""
+
+ type: Annotated[
+ Optional[BillPaymentUpdateInputBillPaymentType],
+ PlainValidator(validate_open_enum(False)),
+ ] = None
+ r"""Type of payment"""
+
+ allocations: Optional[List[BillPaymentUpdateInputAllocations]] = None
+
+ note: OptionalNullable[str] = UNSET
+ r"""Note associated with the transaction"""
+
+ number: OptionalNullable[str] = UNSET
+ r"""Number associated with the transaction"""
+
+ tracking_categories: OptionalNullable[List[Nullable[LinkedTrackingCategory]]] = (
+ UNSET
+ )
+ r"""A list of linked tracking categories."""
+
+ custom_fields: Optional[List[CustomField]] = None
+
+ row_version: OptionalNullable[str] = UNSET
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+
+ display_id: OptionalNullable[str] = UNSET
+ r"""Id to be displayed."""
+
+ pass_through: Optional[List[PassThroughBody]] = None
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+ @field_serializer("currency")
+ def serialize_currency(self, value):
+ if isinstance(value, str):
+ try:
+ return models.Currency(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("status")
+ def serialize_status(self, value):
+ if isinstance(value, str):
+ try:
+ return models.PaymentStatus(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("type")
+ def serialize_type(self, value):
+ if isinstance(value, str):
+ try:
+ return models.BillPaymentUpdateInputBillPaymentType(value)
+ except ValueError:
+ return value
+ return value
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = [
+ "currency",
+ "currency_rate",
+ "total_amount",
+ "reference",
+ "payment_method",
+ "payment_method_reference",
+ "payment_method_id",
+ "account",
+ "transaction_date",
+ "supplier",
+ "company_id",
+ "subsidiary",
+ "reconciled",
+ "status",
+ "type",
+ "allocations",
+ "note",
+ "number",
+ "tracking_categories",
+ "custom_fields",
+ "row_version",
+ "display_id",
+ "pass_through",
+ ]
+ nullable_fields = [
+ "currency",
+ "currency_rate",
+ "total_amount",
+ "reference",
+ "payment_method",
+ "payment_method_reference",
+ "payment_method_id",
+ "account",
+ "transaction_date",
+ "supplier",
+ "company_id",
+ "subsidiary",
+ "reconciled",
+ "note",
+ "number",
+ "tracking_categories",
+ "row_version",
+ "display_id",
+ ]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
diff --git a/src/apideck_unify/models/creditnoteupdateinput.py b/src/apideck_unify/models/creditnoteupdateinput.py
new file mode 100644
index 000000000..b56e101c3
--- /dev/null
+++ b/src/apideck_unify/models/creditnoteupdateinput.py
@@ -0,0 +1,333 @@
+"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
+
+from __future__ import annotations
+from .address import Address, AddressTypedDict
+from .allocation import AllocationInput, AllocationInputTypedDict
+from .currency import Currency
+from .customfield import CustomField, CustomFieldTypedDict
+from .invoicelineitem import InvoiceLineItemInput, InvoiceLineItemInputTypedDict
+from .linkedcustomer_input import LinkedCustomerInput, LinkedCustomerInputTypedDict
+from .linkedledgeraccount import LinkedLedgerAccount, LinkedLedgerAccountTypedDict
+from .linkedsubsidiary_input import (
+ LinkedSubsidiaryInput,
+ LinkedSubsidiaryInputTypedDict,
+)
+from .linkedtrackingcategory import (
+ LinkedTrackingCategory,
+ LinkedTrackingCategoryTypedDict,
+)
+from .passthroughbody import PassThroughBody, PassThroughBodyTypedDict
+from apideck_unify import models, utils
+from apideck_unify.types import (
+ BaseModel,
+ Nullable,
+ OptionalNullable,
+ UNSET,
+ UNSET_SENTINEL,
+)
+from apideck_unify.utils import validate_open_enum
+from datetime import datetime
+from enum import Enum
+from pydantic import field_serializer, model_serializer
+from pydantic.functional_validators import PlainValidator
+from typing import List, Optional
+from typing_extensions import Annotated, NotRequired, TypedDict
+
+
+class CreditNoteUpdateInputCreditNoteStatus(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""Status of credit notes"""
+
+ DRAFT = "draft"
+ AUTHORISED = "authorised"
+ POSTED = "posted"
+ PARTIALLY_PAID = "partially_paid"
+ PAID = "paid"
+ VOIDED = "voided"
+ DELETED = "deleted"
+
+
+class CreditNoteUpdateInputCreditNoteType(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""Whether this credit note reduces an amount owed by a customer (accounts receivable) or owed to a supplier (accounts payable). `accounts_payable_credit` support is connector-specific — most connectors only expose the accounts-receivable side. Check the connector's gotchas for known deviations."""
+
+ ACCOUNTS_RECEIVABLE_CREDIT = "accounts_receivable_credit"
+ ACCOUNTS_PAYABLE_CREDIT = "accounts_payable_credit"
+
+
+class CreditNoteUpdateInputTypedDict(TypedDict):
+ r"""The writable shape of CreditNote for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ number: NotRequired[Nullable[str]]
+ r"""Credit note number."""
+ customer: NotRequired[Nullable[LinkedCustomerInputTypedDict]]
+ r"""The customer this entity is linked to."""
+ company_id: NotRequired[Nullable[str]]
+ r"""The company ID the transaction belongs to"""
+ subsidiary: NotRequired[Nullable[LinkedSubsidiaryInputTypedDict]]
+ location_id: NotRequired[Nullable[str]]
+ r"""The ID of the location"""
+ department_id: NotRequired[Nullable[str]]
+ r"""The ID of the department"""
+ currency: NotRequired[Nullable[Currency]]
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+ currency_rate: NotRequired[Nullable[float]]
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+ tax_inclusive: NotRequired[Nullable[bool]]
+ r"""Amounts are including tax"""
+ sub_total: NotRequired[Nullable[float]]
+ r"""Sub-total amount, normally before tax."""
+ total_amount: NotRequired[float]
+ r"""Amount of transaction"""
+ total_tax: NotRequired[Nullable[float]]
+ r"""Total tax amount applied to this invoice."""
+ tax_code: NotRequired[Nullable[str]]
+ r"""Applicable tax id/code override if tax is not supplied on a line item basis."""
+ balance: NotRequired[Nullable[float]]
+ r"""The balance reflecting any payments made against the transaction."""
+ remaining_credit: NotRequired[Nullable[float]]
+ r"""Indicates the total credit amount still available to apply towards the payment."""
+ status: NotRequired[CreditNoteUpdateInputCreditNoteStatus]
+ r"""Status of credit notes"""
+ reference: NotRequired[Nullable[str]]
+ r"""Optional reference message ie: Debit remittance detail."""
+ date_issued: NotRequired[datetime]
+ r"""Date credit note issued - YYYY:MM::DDThh:mm:ss.sTZD"""
+ date_paid: NotRequired[Nullable[datetime]]
+ r"""Date credit note paid - YYYY:MM::DDThh:mm:ss.sTZD"""
+ type: NotRequired[CreditNoteUpdateInputCreditNoteType]
+ r"""Whether this credit note reduces an amount owed by a customer (accounts receivable) or owed to a supplier (accounts payable). `accounts_payable_credit` support is connector-specific — most connectors only expose the accounts-receivable side. Check the connector's gotchas for known deviations."""
+ account: NotRequired[Nullable[LinkedLedgerAccountTypedDict]]
+ line_items: NotRequired[List[InvoiceLineItemInputTypedDict]]
+ allocations: NotRequired[List[AllocationInputTypedDict]]
+ note: NotRequired[Nullable[str]]
+ r"""Optional note to be associated with the credit note."""
+ terms: NotRequired[Nullable[str]]
+ r"""Optional terms to be associated with the credit note."""
+ terms_id: NotRequired[Nullable[str]]
+ r"""The ID of the payment terms"""
+ billing_address: NotRequired[AddressTypedDict]
+ shipping_address: NotRequired[AddressTypedDict]
+ tracking_categories: NotRequired[
+ Nullable[List[Nullable[LinkedTrackingCategoryTypedDict]]]
+ ]
+ r"""A list of linked tracking categories."""
+ custom_fields: NotRequired[List[CustomFieldTypedDict]]
+ row_version: NotRequired[Nullable[str]]
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+ pass_through: NotRequired[List[PassThroughBodyTypedDict]]
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+
+class CreditNoteUpdateInput(BaseModel):
+ r"""The writable shape of CreditNote for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ number: OptionalNullable[str] = UNSET
+ r"""Credit note number."""
+
+ customer: OptionalNullable[LinkedCustomerInput] = UNSET
+ r"""The customer this entity is linked to."""
+
+ company_id: OptionalNullable[str] = UNSET
+ r"""The company ID the transaction belongs to"""
+
+ subsidiary: OptionalNullable[LinkedSubsidiaryInput] = UNSET
+
+ location_id: OptionalNullable[str] = UNSET
+ r"""The ID of the location"""
+
+ department_id: OptionalNullable[str] = UNSET
+ r"""The ID of the department"""
+
+ currency: Annotated[
+ OptionalNullable[Currency], PlainValidator(validate_open_enum(False))
+ ] = UNSET
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+
+ currency_rate: OptionalNullable[float] = UNSET
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+
+ tax_inclusive: OptionalNullable[bool] = UNSET
+ r"""Amounts are including tax"""
+
+ sub_total: OptionalNullable[float] = UNSET
+ r"""Sub-total amount, normally before tax."""
+
+ total_amount: Optional[float] = None
+ r"""Amount of transaction"""
+
+ total_tax: OptionalNullable[float] = UNSET
+ r"""Total tax amount applied to this invoice."""
+
+ tax_code: OptionalNullable[str] = UNSET
+ r"""Applicable tax id/code override if tax is not supplied on a line item basis."""
+
+ balance: OptionalNullable[float] = UNSET
+ r"""The balance reflecting any payments made against the transaction."""
+
+ remaining_credit: OptionalNullable[float] = UNSET
+ r"""Indicates the total credit amount still available to apply towards the payment."""
+
+ status: Annotated[
+ Optional[CreditNoteUpdateInputCreditNoteStatus],
+ PlainValidator(validate_open_enum(False)),
+ ] = None
+ r"""Status of credit notes"""
+
+ reference: OptionalNullable[str] = UNSET
+ r"""Optional reference message ie: Debit remittance detail."""
+
+ date_issued: Optional[datetime] = None
+ r"""Date credit note issued - YYYY:MM::DDThh:mm:ss.sTZD"""
+
+ date_paid: OptionalNullable[datetime] = UNSET
+ r"""Date credit note paid - YYYY:MM::DDThh:mm:ss.sTZD"""
+
+ type: Annotated[
+ Optional[CreditNoteUpdateInputCreditNoteType],
+ PlainValidator(validate_open_enum(False)),
+ ] = None
+ r"""Whether this credit note reduces an amount owed by a customer (accounts receivable) or owed to a supplier (accounts payable). `accounts_payable_credit` support is connector-specific — most connectors only expose the accounts-receivable side. Check the connector's gotchas for known deviations."""
+
+ account: OptionalNullable[LinkedLedgerAccount] = UNSET
+
+ line_items: Optional[List[InvoiceLineItemInput]] = None
+
+ allocations: Optional[List[AllocationInput]] = None
+
+ note: OptionalNullable[str] = UNSET
+ r"""Optional note to be associated with the credit note."""
+
+ terms: OptionalNullable[str] = UNSET
+ r"""Optional terms to be associated with the credit note."""
+
+ terms_id: OptionalNullable[str] = UNSET
+ r"""The ID of the payment terms"""
+
+ billing_address: Optional[Address] = None
+
+ shipping_address: Optional[Address] = None
+
+ tracking_categories: OptionalNullable[List[Nullable[LinkedTrackingCategory]]] = (
+ UNSET
+ )
+ r"""A list of linked tracking categories."""
+
+ custom_fields: Optional[List[CustomField]] = None
+
+ row_version: OptionalNullable[str] = UNSET
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+
+ pass_through: Optional[List[PassThroughBody]] = None
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+ @field_serializer("currency")
+ def serialize_currency(self, value):
+ if isinstance(value, str):
+ try:
+ return models.Currency(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("status")
+ def serialize_status(self, value):
+ if isinstance(value, str):
+ try:
+ return models.CreditNoteUpdateInputCreditNoteStatus(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("type")
+ def serialize_type(self, value):
+ if isinstance(value, str):
+ try:
+ return models.CreditNoteUpdateInputCreditNoteType(value)
+ except ValueError:
+ return value
+ return value
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = [
+ "number",
+ "customer",
+ "company_id",
+ "subsidiary",
+ "location_id",
+ "department_id",
+ "currency",
+ "currency_rate",
+ "tax_inclusive",
+ "sub_total",
+ "total_amount",
+ "total_tax",
+ "tax_code",
+ "balance",
+ "remaining_credit",
+ "status",
+ "reference",
+ "date_issued",
+ "date_paid",
+ "type",
+ "account",
+ "line_items",
+ "allocations",
+ "note",
+ "terms",
+ "terms_id",
+ "billing_address",
+ "shipping_address",
+ "tracking_categories",
+ "custom_fields",
+ "row_version",
+ "pass_through",
+ ]
+ nullable_fields = [
+ "number",
+ "customer",
+ "company_id",
+ "subsidiary",
+ "location_id",
+ "department_id",
+ "currency",
+ "currency_rate",
+ "tax_inclusive",
+ "sub_total",
+ "total_tax",
+ "tax_code",
+ "balance",
+ "remaining_credit",
+ "reference",
+ "date_paid",
+ "account",
+ "note",
+ "terms",
+ "terms_id",
+ "tracking_categories",
+ "row_version",
+ ]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
diff --git a/src/apideck_unify/models/expensecategoryupdateinput.py b/src/apideck_unify/models/expensecategoryupdateinput.py
new file mode 100644
index 000000000..5407e5681
--- /dev/null
+++ b/src/apideck_unify/models/expensecategoryupdateinput.py
@@ -0,0 +1,155 @@
+"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
+
+from __future__ import annotations
+from .linkedledgeraccount import LinkedLedgerAccount, LinkedLedgerAccountTypedDict
+from .linkedtaxrate_input import LinkedTaxRateInput, LinkedTaxRateInputTypedDict
+from .passthroughbody import PassThroughBody, PassThroughBodyTypedDict
+from apideck_unify import models, utils
+from apideck_unify.types import (
+ BaseModel,
+ Nullable,
+ OptionalNullable,
+ UNSET,
+ UNSET_SENTINEL,
+)
+from apideck_unify.utils import validate_open_enum
+from enum import Enum
+from pydantic import field_serializer, model_serializer
+from pydantic.functional_validators import PlainValidator
+from typing import List, Optional
+from typing_extensions import Annotated, NotRequired, TypedDict
+
+
+class ExpenseCategoryUpdateInputStatus(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""The status of the expense category."""
+
+ ACTIVE = "active"
+ INACTIVE = "inactive"
+
+
+class ExpenseCategoryUpdateInputTypedDict(TypedDict):
+ r"""The writable shape of ExpenseCategory for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ display_id: NotRequired[Nullable[str]]
+ r"""Id to be displayed."""
+ name: NotRequired[str]
+ r"""The name of the expense category."""
+ code: NotRequired[Nullable[str]]
+ r"""The code or external identifier of the expense category."""
+ description: NotRequired[Nullable[str]]
+ r"""The description of the expense category."""
+ status: NotRequired[Nullable[ExpenseCategoryUpdateInputStatus]]
+ r"""The status of the expense category."""
+ account: NotRequired[Nullable[LinkedLedgerAccountTypedDict]]
+ offset_account: NotRequired[Nullable[LinkedLedgerAccountTypedDict]]
+ tax_rate: NotRequired[LinkedTaxRateInputTypedDict]
+ rate_required: NotRequired[Nullable[bool]]
+ r"""Whether the expense category requires rate/quantity entry (e.g. mileage at $/mile)."""
+ default_rate: NotRequired[Nullable[float]]
+ r"""Default rate when rate_required is true (e.g. 0.67 for mileage)."""
+ row_version: NotRequired[Nullable[str]]
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+ pass_through: NotRequired[List[PassThroughBodyTypedDict]]
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+
+class ExpenseCategoryUpdateInput(BaseModel):
+ r"""The writable shape of ExpenseCategory for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ display_id: OptionalNullable[str] = UNSET
+ r"""Id to be displayed."""
+
+ name: Optional[str] = None
+ r"""The name of the expense category."""
+
+ code: OptionalNullable[str] = UNSET
+ r"""The code or external identifier of the expense category."""
+
+ description: OptionalNullable[str] = UNSET
+ r"""The description of the expense category."""
+
+ status: Annotated[
+ OptionalNullable[ExpenseCategoryUpdateInputStatus],
+ PlainValidator(validate_open_enum(False)),
+ ] = UNSET
+ r"""The status of the expense category."""
+
+ account: OptionalNullable[LinkedLedgerAccount] = UNSET
+
+ offset_account: OptionalNullable[LinkedLedgerAccount] = UNSET
+
+ tax_rate: Optional[LinkedTaxRateInput] = None
+
+ rate_required: OptionalNullable[bool] = UNSET
+ r"""Whether the expense category requires rate/quantity entry (e.g. mileage at $/mile)."""
+
+ default_rate: OptionalNullable[float] = UNSET
+ r"""Default rate when rate_required is true (e.g. 0.67 for mileage)."""
+
+ row_version: OptionalNullable[str] = UNSET
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+
+ pass_through: Optional[List[PassThroughBody]] = None
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+ @field_serializer("status")
+ def serialize_status(self, value):
+ if isinstance(value, str):
+ try:
+ return models.ExpenseCategoryUpdateInputStatus(value)
+ except ValueError:
+ return value
+ return value
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = [
+ "display_id",
+ "name",
+ "code",
+ "description",
+ "status",
+ "account",
+ "offset_account",
+ "tax_rate",
+ "rate_required",
+ "default_rate",
+ "row_version",
+ "pass_through",
+ ]
+ nullable_fields = [
+ "display_id",
+ "code",
+ "description",
+ "status",
+ "account",
+ "offset_account",
+ "rate_required",
+ "default_rate",
+ "row_version",
+ ]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
diff --git a/src/apideck_unify/models/expensereportupdateinput.py b/src/apideck_unify/models/expensereportupdateinput.py
new file mode 100644
index 000000000..0fbe73db6
--- /dev/null
+++ b/src/apideck_unify/models/expensereportupdateinput.py
@@ -0,0 +1,452 @@
+"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
+
+from __future__ import annotations
+from .currency import Currency
+from .customfield import CustomField, CustomFieldTypedDict
+from .expensereportlineitem_input import (
+ ExpenseReportLineItemInput,
+ ExpenseReportLineItemInputTypedDict,
+)
+from .linkeddepartment_input import (
+ LinkedDepartmentInput,
+ LinkedDepartmentInputTypedDict,
+)
+from .linkedledgeraccount import LinkedLedgerAccount, LinkedLedgerAccountTypedDict
+from .linkedlocation_input import LinkedLocationInput, LinkedLocationInputTypedDict
+from .linkedsubsidiary_input import (
+ LinkedSubsidiaryInput,
+ LinkedSubsidiaryInputTypedDict,
+)
+from .linkedtrackingcategory import (
+ LinkedTrackingCategory,
+ LinkedTrackingCategoryTypedDict,
+)
+from .passthroughbody import PassThroughBody, PassThroughBodyTypedDict
+from apideck_unify import models, utils
+from apideck_unify.types import (
+ BaseModel,
+ Nullable,
+ OptionalNullable,
+ UNSET,
+ UNSET_SENTINEL,
+)
+from apideck_unify.utils import validate_open_enum
+from datetime import date, datetime
+from enum import Enum
+from pydantic import field_serializer, model_serializer
+from pydantic.functional_validators import PlainValidator
+from typing import List, Optional
+from typing_extensions import Annotated, NotRequired, TypedDict
+
+
+class ExpenseReportUpdateInputEmployeeTypedDict(TypedDict):
+ r"""The employee who submitted the expense report."""
+
+ id: NotRequired[str]
+ r"""A unique identifier for the employee."""
+ display_name: NotRequired[Nullable[str]]
+ r"""The display name of the employee."""
+
+
+class ExpenseReportUpdateInputEmployee(BaseModel):
+ r"""The employee who submitted the expense report."""
+
+ id: Optional[str] = None
+ r"""A unique identifier for the employee."""
+
+ display_name: OptionalNullable[str] = UNSET
+ r"""The display name of the employee."""
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = ["id", "display_name"]
+ nullable_fields = ["display_name"]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
+
+
+class ExpenseReportUpdateInputStatus(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""The status of the expense report."""
+
+ DRAFT = "draft"
+ SUBMITTED = "submitted"
+ APPROVED = "approved"
+ REIMBURSED = "reimbursed"
+ REJECTED = "rejected"
+ REVERSED = "reversed"
+ VOIDED = "voided"
+
+
+class ExpenseReportUpdateInputAccountingPeriodTypedDict(TypedDict):
+ r"""The accounting period the expense report is posted to."""
+
+ id: NotRequired[str]
+ r"""A unique identifier for the accounting period."""
+ name: NotRequired[Nullable[str]]
+ r"""The name of the accounting period."""
+
+
+class ExpenseReportUpdateInputAccountingPeriod(BaseModel):
+ r"""The accounting period the expense report is posted to."""
+
+ id: Optional[str] = None
+ r"""A unique identifier for the accounting period."""
+
+ name: OptionalNullable[str] = UNSET
+ r"""The name of the accounting period."""
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = ["id", "name"]
+ nullable_fields = ["name"]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
+
+
+class ExpenseReportUpdateInputApprovedByTypedDict(TypedDict):
+ r"""The person who approved the expense report."""
+
+ id: NotRequired[str]
+ r"""A unique identifier for the approver."""
+ display_name: NotRequired[Nullable[str]]
+ r"""The display name of the approver."""
+
+
+class ExpenseReportUpdateInputApprovedBy(BaseModel):
+ r"""The person who approved the expense report."""
+
+ id: Optional[str] = None
+ r"""A unique identifier for the approver."""
+
+ display_name: OptionalNullable[str] = UNSET
+ r"""The display name of the approver."""
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = ["id", "display_name"]
+ nullable_fields = ["display_name"]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
+
+
+class ExpenseReportUpdateInputTypedDict(TypedDict):
+ r"""The writable shape of ExpenseReport for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ display_id: NotRequired[Nullable[str]]
+ r"""Id to be displayed."""
+ number: NotRequired[Nullable[str]]
+ r"""The expense report number."""
+ title: NotRequired[Nullable[str]]
+ r"""Title or purpose of the expense report."""
+ employee: NotRequired[ExpenseReportUpdateInputEmployeeTypedDict]
+ r"""The employee who submitted the expense report."""
+ status: NotRequired[Nullable[ExpenseReportUpdateInputStatus]]
+ r"""The status of the expense report."""
+ transaction_date: NotRequired[Nullable[datetime]]
+ r"""The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD"""
+ posting_date: NotRequired[Nullable[date]]
+ r"""The date the expense report was posted to the general ledger."""
+ due_date: NotRequired[Nullable[date]]
+ r"""Date when reimbursement is due."""
+ currency: NotRequired[Nullable[Currency]]
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+ currency_rate: NotRequired[Nullable[float]]
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+ sub_total: NotRequired[Nullable[float]]
+ r"""Subtotal amount, normally before tax."""
+ total_tax: NotRequired[Nullable[float]]
+ r"""Total tax amount applied to this transaction."""
+ total_amount: NotRequired[Nullable[float]]
+ r"""Total amount of all expense lines including tax."""
+ reimbursable_amount: NotRequired[Nullable[float]]
+ r"""Total reimbursable amount (may differ from total if some expenses are non-reimbursable)."""
+ memo: NotRequired[Nullable[str]]
+ r"""The memo of the expense report."""
+ department: NotRequired[Nullable[LinkedDepartmentInputTypedDict]]
+ location: NotRequired[Nullable[LinkedLocationInputTypedDict]]
+ account: NotRequired[Nullable[LinkedLedgerAccountTypedDict]]
+ accounting_period: NotRequired[
+ Nullable[ExpenseReportUpdateInputAccountingPeriodTypedDict]
+ ]
+ r"""The accounting period the expense report is posted to."""
+ line_items: NotRequired[List[ExpenseReportLineItemInputTypedDict]]
+ r"""Expense line items linked to this expense report."""
+ reference: NotRequired[Nullable[str]]
+ r"""Optional reference identifier for the transaction."""
+ subsidiary: NotRequired[Nullable[LinkedSubsidiaryInputTypedDict]]
+ tracking_categories: NotRequired[
+ Nullable[List[Nullable[LinkedTrackingCategoryTypedDict]]]
+ ]
+ r"""A list of linked tracking categories."""
+ tax_inclusive: NotRequired[Nullable[bool]]
+ r"""Amounts are including tax"""
+ approved_by: NotRequired[Nullable[ExpenseReportUpdateInputApprovedByTypedDict]]
+ r"""The person who approved the expense report."""
+ custom_fields: NotRequired[List[CustomFieldTypedDict]]
+ row_version: NotRequired[Nullable[str]]
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+ pass_through: NotRequired[List[PassThroughBodyTypedDict]]
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+
+class ExpenseReportUpdateInput(BaseModel):
+ r"""The writable shape of ExpenseReport for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ display_id: OptionalNullable[str] = UNSET
+ r"""Id to be displayed."""
+
+ number: OptionalNullable[str] = UNSET
+ r"""The expense report number."""
+
+ title: OptionalNullable[str] = UNSET
+ r"""Title or purpose of the expense report."""
+
+ employee: Optional[ExpenseReportUpdateInputEmployee] = None
+ r"""The employee who submitted the expense report."""
+
+ status: Annotated[
+ OptionalNullable[ExpenseReportUpdateInputStatus],
+ PlainValidator(validate_open_enum(False)),
+ ] = UNSET
+ r"""The status of the expense report."""
+
+ transaction_date: OptionalNullable[datetime] = UNSET
+ r"""The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD"""
+
+ posting_date: OptionalNullable[date] = UNSET
+ r"""The date the expense report was posted to the general ledger."""
+
+ due_date: OptionalNullable[date] = UNSET
+ r"""Date when reimbursement is due."""
+
+ currency: Annotated[
+ OptionalNullable[Currency], PlainValidator(validate_open_enum(False))
+ ] = UNSET
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+
+ currency_rate: OptionalNullable[float] = UNSET
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+
+ sub_total: OptionalNullable[float] = UNSET
+ r"""Subtotal amount, normally before tax."""
+
+ total_tax: OptionalNullable[float] = UNSET
+ r"""Total tax amount applied to this transaction."""
+
+ total_amount: OptionalNullable[float] = UNSET
+ r"""Total amount of all expense lines including tax."""
+
+ reimbursable_amount: OptionalNullable[float] = UNSET
+ r"""Total reimbursable amount (may differ from total if some expenses are non-reimbursable)."""
+
+ memo: OptionalNullable[str] = UNSET
+ r"""The memo of the expense report."""
+
+ department: OptionalNullable[LinkedDepartmentInput] = UNSET
+
+ location: OptionalNullable[LinkedLocationInput] = UNSET
+
+ account: OptionalNullable[LinkedLedgerAccount] = UNSET
+
+ accounting_period: OptionalNullable[ExpenseReportUpdateInputAccountingPeriod] = (
+ UNSET
+ )
+ r"""The accounting period the expense report is posted to."""
+
+ line_items: Optional[List[ExpenseReportLineItemInput]] = None
+ r"""Expense line items linked to this expense report."""
+
+ reference: OptionalNullable[str] = UNSET
+ r"""Optional reference identifier for the transaction."""
+
+ subsidiary: OptionalNullable[LinkedSubsidiaryInput] = UNSET
+
+ tracking_categories: OptionalNullable[List[Nullable[LinkedTrackingCategory]]] = (
+ UNSET
+ )
+ r"""A list of linked tracking categories."""
+
+ tax_inclusive: OptionalNullable[bool] = UNSET
+ r"""Amounts are including tax"""
+
+ approved_by: OptionalNullable[ExpenseReportUpdateInputApprovedBy] = UNSET
+ r"""The person who approved the expense report."""
+
+ custom_fields: Optional[List[CustomField]] = None
+
+ row_version: OptionalNullable[str] = UNSET
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+
+ pass_through: Optional[List[PassThroughBody]] = None
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+ @field_serializer("status")
+ def serialize_status(self, value):
+ if isinstance(value, str):
+ try:
+ return models.ExpenseReportUpdateInputStatus(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("currency")
+ def serialize_currency(self, value):
+ if isinstance(value, str):
+ try:
+ return models.Currency(value)
+ except ValueError:
+ return value
+ return value
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = [
+ "display_id",
+ "number",
+ "title",
+ "employee",
+ "status",
+ "transaction_date",
+ "posting_date",
+ "due_date",
+ "currency",
+ "currency_rate",
+ "sub_total",
+ "total_tax",
+ "total_amount",
+ "reimbursable_amount",
+ "memo",
+ "department",
+ "location",
+ "account",
+ "accounting_period",
+ "line_items",
+ "reference",
+ "subsidiary",
+ "tracking_categories",
+ "tax_inclusive",
+ "approved_by",
+ "custom_fields",
+ "row_version",
+ "pass_through",
+ ]
+ nullable_fields = [
+ "display_id",
+ "number",
+ "title",
+ "status",
+ "transaction_date",
+ "posting_date",
+ "due_date",
+ "currency",
+ "currency_rate",
+ "sub_total",
+ "total_tax",
+ "total_amount",
+ "reimbursable_amount",
+ "memo",
+ "department",
+ "location",
+ "account",
+ "accounting_period",
+ "reference",
+ "subsidiary",
+ "tracking_categories",
+ "tax_inclusive",
+ "approved_by",
+ "row_version",
+ ]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
diff --git a/src/apideck_unify/models/expenseupdateinput.py b/src/apideck_unify/models/expenseupdateinput.py
new file mode 100644
index 000000000..a00f83092
--- /dev/null
+++ b/src/apideck_unify/models/expenseupdateinput.py
@@ -0,0 +1,353 @@
+"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
+
+from __future__ import annotations
+from .currency import Currency
+from .customfield import CustomField, CustomFieldTypedDict
+from .expenselineitem_input import ExpenseLineItemInput, ExpenseLineItemInputTypedDict
+from .linkeddepartment_input import (
+ LinkedDepartmentInput,
+ LinkedDepartmentInputTypedDict,
+)
+from .linkedfinancialaccount import (
+ LinkedFinancialAccountInput,
+ LinkedFinancialAccountInputTypedDict,
+)
+from .linkedlocation_input import LinkedLocationInput, LinkedLocationInputTypedDict
+from .linkedsupplier_input import LinkedSupplierInput, LinkedSupplierInputTypedDict
+from .linkedtaxrate_input import LinkedTaxRateInput, LinkedTaxRateInputTypedDict
+from .linkedtrackingcategory import (
+ LinkedTrackingCategory,
+ LinkedTrackingCategoryTypedDict,
+)
+from .passthroughbody import PassThroughBody, PassThroughBodyTypedDict
+from apideck_unify import models, utils
+from apideck_unify.types import (
+ BaseModel,
+ Nullable,
+ OptionalNullable,
+ UNSET,
+ UNSET_SENTINEL,
+)
+from apideck_unify.utils import validate_open_enum
+from datetime import datetime
+from enum import Enum
+import pydantic
+from pydantic import field_serializer, model_serializer
+from pydantic.functional_validators import PlainValidator
+from typing import List, Optional
+from typing_extensions import Annotated, NotRequired, TypedDict
+
+
+class ExpenseUpdateInputPaymentType(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""The type of payment for the expense."""
+
+ CASH = "cash"
+ CHECK = "check"
+ CREDIT_CARD = "credit_card"
+ OTHER = "other"
+
+
+class ExpenseUpdateInputExpenseType(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""The type of expense."""
+
+ EXPENSE = "expense"
+ REFUND = "refund"
+
+
+class ExpenseUpdateInputStatus(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""Expense status"""
+
+ DRAFT = "draft"
+ POSTED = "posted"
+ VOIDED = "voided"
+
+
+class ExpenseUpdateInputTypedDict(TypedDict):
+ r"""The writable shape of Expense for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ display_id: NotRequired[Nullable[str]]
+ r"""Id to be displayed."""
+ number: NotRequired[Nullable[str]]
+ r"""Number."""
+ transaction_date: NotRequired[Nullable[datetime]]
+ r"""The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD"""
+ account_id: NotRequired[str]
+ r"""The unique identifier for the ledger account that this expense should be credited to. Deprecated, use account instead."""
+ account: NotRequired[Nullable[LinkedFinancialAccountInputTypedDict]]
+ r"""A flexible account reference that can represent a ledger account (GL account), a bank account, or an employee payable account, depending on the connector's requirements."""
+ supplier_id: NotRequired[str]
+ r"""The ID of the supplier this entity is linked to. Deprecated, use supplier instead."""
+ supplier: NotRequired[Nullable[LinkedSupplierInputTypedDict]]
+ r"""The supplier this entity is linked to."""
+ company_id: NotRequired[Nullable[str]]
+ r"""The company ID the transaction belongs to"""
+ location: NotRequired[Nullable[LinkedLocationInputTypedDict]]
+ department_id: NotRequired[Nullable[str]]
+ r"""The ID of the department"""
+ department: NotRequired[Nullable[LinkedDepartmentInputTypedDict]]
+ payment_type: NotRequired[Nullable[ExpenseUpdateInputPaymentType]]
+ r"""The type of payment for the expense."""
+ currency: NotRequired[Nullable[Currency]]
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+ currency_rate: NotRequired[Nullable[float]]
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+ type: NotRequired[Nullable[ExpenseUpdateInputExpenseType]]
+ r"""The type of expense."""
+ memo: NotRequired[Nullable[str]]
+ r"""The memo of the expense."""
+ tax_rate: NotRequired[LinkedTaxRateInputTypedDict]
+ tax_inclusive: NotRequired[Nullable[bool]]
+ r"""Amounts are including tax"""
+ sub_total: NotRequired[Nullable[float]]
+ r"""Subtotal amount, normally before tax."""
+ total_tax: NotRequired[Nullable[float]]
+ r"""Total tax amount applied to this transaction."""
+ total_amount: NotRequired[Nullable[float]]
+ r"""The total amount of the expense line item."""
+ tracking_categories: NotRequired[
+ Nullable[List[Nullable[LinkedTrackingCategoryTypedDict]]]
+ ]
+ r"""A list of linked tracking categories."""
+ line_items: NotRequired[List[ExpenseLineItemInputTypedDict]]
+ r"""Expense line items linked to this expense."""
+ reference: NotRequired[Nullable[str]]
+ r"""Optional reference identifier for the transaction."""
+ source_document_url: NotRequired[Nullable[str]]
+ r"""URL link to a source document - shown as 'Go to [appName]' in the downstream app. Currently only supported for Xero."""
+ custom_fields: NotRequired[List[CustomFieldTypedDict]]
+ status: NotRequired[Nullable[ExpenseUpdateInputStatus]]
+ r"""Expense status"""
+ row_version: NotRequired[Nullable[str]]
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+ pass_through: NotRequired[List[PassThroughBodyTypedDict]]
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+
+class ExpenseUpdateInput(BaseModel):
+ r"""The writable shape of Expense for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ display_id: OptionalNullable[str] = UNSET
+ r"""Id to be displayed."""
+
+ number: OptionalNullable[str] = UNSET
+ r"""Number."""
+
+ transaction_date: OptionalNullable[datetime] = UNSET
+ r"""The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD"""
+
+ account_id: Annotated[
+ Optional[str],
+ pydantic.Field(
+ deprecated="warning: ** DEPRECATED ** - Deprecated. Use account instead.."
+ ),
+ ] = None
+ r"""The unique identifier for the ledger account that this expense should be credited to. Deprecated, use account instead."""
+
+ account: OptionalNullable[LinkedFinancialAccountInput] = UNSET
+ r"""A flexible account reference that can represent a ledger account (GL account), a bank account, or an employee payable account, depending on the connector's requirements."""
+
+ supplier_id: Annotated[
+ Optional[str],
+ pydantic.Field(
+ deprecated="warning: ** DEPRECATED ** - Deprecated. Use supplier instead.."
+ ),
+ ] = None
+ r"""The ID of the supplier this entity is linked to. Deprecated, use supplier instead."""
+
+ supplier: OptionalNullable[LinkedSupplierInput] = UNSET
+ r"""The supplier this entity is linked to."""
+
+ company_id: OptionalNullable[str] = UNSET
+ r"""The company ID the transaction belongs to"""
+
+ location: OptionalNullable[LinkedLocationInput] = UNSET
+
+ department_id: OptionalNullable[str] = UNSET
+ r"""The ID of the department"""
+
+ department: OptionalNullable[LinkedDepartmentInput] = UNSET
+
+ payment_type: Annotated[
+ OptionalNullable[ExpenseUpdateInputPaymentType],
+ PlainValidator(validate_open_enum(False)),
+ ] = UNSET
+ r"""The type of payment for the expense."""
+
+ currency: Annotated[
+ OptionalNullable[Currency], PlainValidator(validate_open_enum(False))
+ ] = UNSET
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+
+ currency_rate: OptionalNullable[float] = UNSET
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+
+ type: Annotated[
+ OptionalNullable[ExpenseUpdateInputExpenseType],
+ PlainValidator(validate_open_enum(False)),
+ ] = UNSET
+ r"""The type of expense."""
+
+ memo: OptionalNullable[str] = UNSET
+ r"""The memo of the expense."""
+
+ tax_rate: Optional[LinkedTaxRateInput] = None
+
+ tax_inclusive: OptionalNullable[bool] = UNSET
+ r"""Amounts are including tax"""
+
+ sub_total: OptionalNullable[float] = UNSET
+ r"""Subtotal amount, normally before tax."""
+
+ total_tax: OptionalNullable[float] = UNSET
+ r"""Total tax amount applied to this transaction."""
+
+ total_amount: OptionalNullable[float] = UNSET
+ r"""The total amount of the expense line item."""
+
+ tracking_categories: OptionalNullable[List[Nullable[LinkedTrackingCategory]]] = (
+ UNSET
+ )
+ r"""A list of linked tracking categories."""
+
+ line_items: Optional[List[ExpenseLineItemInput]] = None
+ r"""Expense line items linked to this expense."""
+
+ reference: OptionalNullable[str] = UNSET
+ r"""Optional reference identifier for the transaction."""
+
+ source_document_url: OptionalNullable[str] = UNSET
+ r"""URL link to a source document - shown as 'Go to [appName]' in the downstream app. Currently only supported for Xero."""
+
+ custom_fields: Optional[List[CustomField]] = None
+
+ status: Annotated[
+ OptionalNullable[ExpenseUpdateInputStatus],
+ PlainValidator(validate_open_enum(False)),
+ ] = UNSET
+ r"""Expense status"""
+
+ row_version: OptionalNullable[str] = UNSET
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+
+ pass_through: Optional[List[PassThroughBody]] = None
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+ @field_serializer("payment_type")
+ def serialize_payment_type(self, value):
+ if isinstance(value, str):
+ try:
+ return models.ExpenseUpdateInputPaymentType(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("currency")
+ def serialize_currency(self, value):
+ if isinstance(value, str):
+ try:
+ return models.Currency(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("type")
+ def serialize_type(self, value):
+ if isinstance(value, str):
+ try:
+ return models.ExpenseUpdateInputExpenseType(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("status")
+ def serialize_status(self, value):
+ if isinstance(value, str):
+ try:
+ return models.ExpenseUpdateInputStatus(value)
+ except ValueError:
+ return value
+ return value
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = [
+ "display_id",
+ "number",
+ "transaction_date",
+ "account_id",
+ "account",
+ "supplier_id",
+ "supplier",
+ "company_id",
+ "location",
+ "department_id",
+ "department",
+ "payment_type",
+ "currency",
+ "currency_rate",
+ "type",
+ "memo",
+ "tax_rate",
+ "tax_inclusive",
+ "sub_total",
+ "total_tax",
+ "total_amount",
+ "tracking_categories",
+ "line_items",
+ "reference",
+ "source_document_url",
+ "custom_fields",
+ "status",
+ "row_version",
+ "pass_through",
+ ]
+ nullable_fields = [
+ "display_id",
+ "number",
+ "transaction_date",
+ "account",
+ "supplier",
+ "company_id",
+ "location",
+ "department_id",
+ "department",
+ "payment_type",
+ "currency",
+ "currency_rate",
+ "type",
+ "memo",
+ "tax_inclusive",
+ "sub_total",
+ "total_tax",
+ "total_amount",
+ "tracking_categories",
+ "reference",
+ "source_document_url",
+ "status",
+ "row_version",
+ ]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
diff --git a/src/apideck_unify/models/paymentupdateinput.py b/src/apideck_unify/models/paymentupdateinput.py
new file mode 100644
index 000000000..8b6e0554d
--- /dev/null
+++ b/src/apideck_unify/models/paymentupdateinput.py
@@ -0,0 +1,300 @@
+"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
+
+from __future__ import annotations
+from .allocation import AllocationInput, AllocationInputTypedDict
+from .currency import Currency
+from .customfield import CustomField, CustomFieldTypedDict
+from .deprecatedlinkedsupplier_input import (
+ DeprecatedLinkedSupplierInput,
+ DeprecatedLinkedSupplierInputTypedDict,
+)
+from .linkedcustomer_input import LinkedCustomerInput, LinkedCustomerInputTypedDict
+from .linkedledgeraccount import LinkedLedgerAccount, LinkedLedgerAccountTypedDict
+from .linkedsubsidiary_input import (
+ LinkedSubsidiaryInput,
+ LinkedSubsidiaryInputTypedDict,
+)
+from .linkedtrackingcategory import (
+ LinkedTrackingCategory,
+ LinkedTrackingCategoryTypedDict,
+)
+from .passthroughbody import PassThroughBody, PassThroughBodyTypedDict
+from .paymentstatus import PaymentStatus
+from .paymenttype import PaymentType
+from apideck_unify import models
+from apideck_unify.types import (
+ BaseModel,
+ Nullable,
+ OptionalNullable,
+ UNSET,
+ UNSET_SENTINEL,
+)
+from apideck_unify.utils import validate_open_enum
+from datetime import datetime
+import pydantic
+from pydantic import field_serializer, model_serializer
+from pydantic.functional_validators import PlainValidator
+from typing import List, Optional
+from typing_extensions import Annotated, NotRequired, TypedDict
+
+
+class PaymentUpdateInputTypedDict(TypedDict):
+ r"""The writable shape of Payment for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ currency: NotRequired[Nullable[Currency]]
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+ currency_rate: NotRequired[Nullable[float]]
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+ total_amount: NotRequired[Nullable[float]]
+ r"""The total amount of the transaction or record"""
+ reference: NotRequired[Nullable[str]]
+ r"""Optional transaction reference message ie: Debit remittance detail."""
+ payment_method: NotRequired[Nullable[str]]
+ r"""Payment method used for the transaction, such as cash, credit card, bank transfer, or check"""
+ payment_method_reference: NotRequired[Nullable[str]]
+ r"""Optional reference message returned by payment method on processing"""
+ payment_method_id: NotRequired[Nullable[str]]
+ r"""A unique identifier for an object."""
+ accounts_receivable_account_type: NotRequired[Nullable[str]]
+ r"""Type of accounts receivable account."""
+ accounts_receivable_account_id: NotRequired[Nullable[str]]
+ r"""Unique identifier for the account to allocate payment to."""
+ account: NotRequired[Nullable[LinkedLedgerAccountTypedDict]]
+ transaction_date: NotRequired[Nullable[datetime]]
+ r"""The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD"""
+ customer: NotRequired[Nullable[LinkedCustomerInputTypedDict]]
+ r"""The customer this entity is linked to."""
+ supplier: NotRequired[Nullable[DeprecatedLinkedSupplierInputTypedDict]]
+ r"""The supplier this entity is linked to."""
+ company_id: NotRequired[Nullable[str]]
+ r"""The company ID the transaction belongs to"""
+ subsidiary: NotRequired[Nullable[LinkedSubsidiaryInputTypedDict]]
+ reconciled: NotRequired[Nullable[bool]]
+ r"""Indicates if the transaction has been reconciled."""
+ status: NotRequired[PaymentStatus]
+ r"""Status of payment"""
+ type: NotRequired[PaymentType]
+ r"""Type of payment"""
+ allocations: NotRequired[List[AllocationInputTypedDict]]
+ note: NotRequired[Nullable[str]]
+ r"""Note associated with the transaction"""
+ number: NotRequired[Nullable[str]]
+ r"""Number associated with the transaction"""
+ tracking_categories: NotRequired[
+ Nullable[List[Nullable[LinkedTrackingCategoryTypedDict]]]
+ ]
+ r"""A list of linked tracking categories."""
+ custom_fields: NotRequired[List[CustomFieldTypedDict]]
+ row_version: NotRequired[Nullable[str]]
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+ display_id: NotRequired[Nullable[str]]
+ r"""Id to be displayed."""
+ pass_through: NotRequired[List[PassThroughBodyTypedDict]]
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+
+class PaymentUpdateInput(BaseModel):
+ r"""The writable shape of Payment for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ currency: Annotated[
+ OptionalNullable[Currency], PlainValidator(validate_open_enum(False))
+ ] = UNSET
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+
+ currency_rate: OptionalNullable[float] = UNSET
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+
+ total_amount: OptionalNullable[float] = UNSET
+ r"""The total amount of the transaction or record"""
+
+ reference: OptionalNullable[str] = UNSET
+ r"""Optional transaction reference message ie: Debit remittance detail."""
+
+ payment_method: OptionalNullable[str] = UNSET
+ r"""Payment method used for the transaction, such as cash, credit card, bank transfer, or check"""
+
+ payment_method_reference: OptionalNullable[str] = UNSET
+ r"""Optional reference message returned by payment method on processing"""
+
+ payment_method_id: OptionalNullable[str] = UNSET
+ r"""A unique identifier for an object."""
+
+ accounts_receivable_account_type: Annotated[
+ OptionalNullable[str],
+ pydantic.Field(
+ deprecated="warning: ** DEPRECATED ** - This field is deprecated and may be removed in a future version.."
+ ),
+ ] = UNSET
+ r"""Type of accounts receivable account."""
+
+ accounts_receivable_account_id: Annotated[
+ OptionalNullable[str],
+ pydantic.Field(
+ deprecated="warning: ** DEPRECATED ** - This field is deprecated and may be removed in a future version.."
+ ),
+ ] = UNSET
+ r"""Unique identifier for the account to allocate payment to."""
+
+ account: OptionalNullable[LinkedLedgerAccount] = UNSET
+
+ transaction_date: OptionalNullable[datetime] = UNSET
+ r"""The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD"""
+
+ customer: OptionalNullable[LinkedCustomerInput] = UNSET
+ r"""The customer this entity is linked to."""
+
+ supplier: Annotated[
+ OptionalNullable[DeprecatedLinkedSupplierInput],
+ pydantic.Field(
+ deprecated="warning: ** DEPRECATED ** - This field is deprecated and may be removed in a future version.."
+ ),
+ ] = UNSET
+ r"""The supplier this entity is linked to."""
+
+ company_id: OptionalNullable[str] = UNSET
+ r"""The company ID the transaction belongs to"""
+
+ subsidiary: OptionalNullable[LinkedSubsidiaryInput] = UNSET
+
+ reconciled: OptionalNullable[bool] = UNSET
+ r"""Indicates if the transaction has been reconciled."""
+
+ status: Annotated[
+ Optional[PaymentStatus], PlainValidator(validate_open_enum(False))
+ ] = None
+ r"""Status of payment"""
+
+ type: Annotated[
+ Optional[PaymentType], PlainValidator(validate_open_enum(False))
+ ] = None
+ r"""Type of payment"""
+
+ allocations: Optional[List[AllocationInput]] = None
+
+ note: OptionalNullable[str] = UNSET
+ r"""Note associated with the transaction"""
+
+ number: OptionalNullable[str] = UNSET
+ r"""Number associated with the transaction"""
+
+ tracking_categories: OptionalNullable[List[Nullable[LinkedTrackingCategory]]] = (
+ UNSET
+ )
+ r"""A list of linked tracking categories."""
+
+ custom_fields: Optional[List[CustomField]] = None
+
+ row_version: OptionalNullable[str] = UNSET
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+
+ display_id: OptionalNullable[str] = UNSET
+ r"""Id to be displayed."""
+
+ pass_through: Optional[List[PassThroughBody]] = None
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+ @field_serializer("currency")
+ def serialize_currency(self, value):
+ if isinstance(value, str):
+ try:
+ return models.Currency(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("status")
+ def serialize_status(self, value):
+ if isinstance(value, str):
+ try:
+ return models.PaymentStatus(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("type")
+ def serialize_type(self, value):
+ if isinstance(value, str):
+ try:
+ return models.PaymentType(value)
+ except ValueError:
+ return value
+ return value
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = [
+ "currency",
+ "currency_rate",
+ "total_amount",
+ "reference",
+ "payment_method",
+ "payment_method_reference",
+ "payment_method_id",
+ "accounts_receivable_account_type",
+ "accounts_receivable_account_id",
+ "account",
+ "transaction_date",
+ "customer",
+ "supplier",
+ "company_id",
+ "subsidiary",
+ "reconciled",
+ "status",
+ "type",
+ "allocations",
+ "note",
+ "number",
+ "tracking_categories",
+ "custom_fields",
+ "row_version",
+ "display_id",
+ "pass_through",
+ ]
+ nullable_fields = [
+ "currency",
+ "currency_rate",
+ "total_amount",
+ "reference",
+ "payment_method",
+ "payment_method_reference",
+ "payment_method_id",
+ "accounts_receivable_account_type",
+ "accounts_receivable_account_id",
+ "account",
+ "transaction_date",
+ "customer",
+ "supplier",
+ "company_id",
+ "subsidiary",
+ "reconciled",
+ "note",
+ "number",
+ "tracking_categories",
+ "row_version",
+ "display_id",
+ ]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
diff --git a/src/apideck_unify/models/projectupdateinput.py b/src/apideck_unify/models/projectupdateinput.py
new file mode 100644
index 000000000..d6d86a2e1
--- /dev/null
+++ b/src/apideck_unify/models/projectupdateinput.py
@@ -0,0 +1,499 @@
+"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
+
+from __future__ import annotations
+from .address import Address, AddressTypedDict
+from .currency import Currency
+from .customfield import CustomField, CustomFieldTypedDict
+from .linkedcustomer_input import LinkedCustomerInput, LinkedCustomerInputTypedDict
+from .linkedtaxrate_input import LinkedTaxRateInput, LinkedTaxRateInputTypedDict
+from .linkedtrackingcategory import (
+ LinkedTrackingCategory,
+ LinkedTrackingCategoryTypedDict,
+)
+from apideck_unify import models, utils
+from apideck_unify.types import (
+ BaseModel,
+ Nullable,
+ OptionalNullable,
+ UNSET,
+ UNSET_SENTINEL,
+)
+from apideck_unify.utils import validate_open_enum
+from datetime import date
+from enum import Enum
+from pydantic import field_serializer, model_serializer
+from pydantic.functional_validators import PlainValidator
+from typing import List, Optional
+from typing_extensions import Annotated, NotRequired, TypedDict
+
+
+class ProjectUpdateInputProjectStatus(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""Current status of the project"""
+
+ ACTIVE = "active"
+ COMPLETED = "completed"
+ ON_HOLD = "on_hold"
+ CANCELLED = "cancelled"
+ DRAFT = "draft"
+ IN_PROGRESS = "in_progress"
+ APPROVED = "approved"
+ OTHER = "other"
+
+
+class ProjectUpdateInputProjectType(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""Type or category of the project"""
+
+ CLIENT_PROJECT = "client_project"
+ INTERNAL_PROJECT = "internal_project"
+ MAINTENANCE = "maintenance"
+ RESEARCH_DEVELOPMENT = "research_development"
+ TRAINING = "training"
+ OTHER = "other"
+
+
+class ProjectUpdateInputPriority(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""Priority level of the project"""
+
+ LOW = "low"
+ MEDIUM = "medium"
+ HIGH = "high"
+ CRITICAL = "critical"
+
+
+class ProjectUpdateInputDepartmentTypedDict(TypedDict):
+ r"""Department or organizational unit associated with the project"""
+
+ id: NotRequired[str]
+ r"""Unique identifier for the department"""
+ name: NotRequired[str]
+ r"""Name of the department"""
+
+
+class ProjectUpdateInputDepartment(BaseModel):
+ r"""Department or organizational unit associated with the project"""
+
+ id: Optional[str] = None
+ r"""Unique identifier for the department"""
+
+ name: Optional[str] = None
+ r"""Name of the department"""
+
+
+class ProjectUpdateInputParentProjectTypedDict(TypedDict):
+ r"""Parent project if this is a subproject"""
+
+ id: NotRequired[str]
+ r"""Unique identifier for the parent project"""
+ name: NotRequired[str]
+ r"""Name of the parent project"""
+
+
+class ProjectUpdateInputParentProject(BaseModel):
+ r"""Parent project if this is a subproject"""
+
+ id: Optional[str] = None
+ r"""Unique identifier for the parent project"""
+
+ name: Optional[str] = None
+ r"""Name of the parent project"""
+
+
+class ProjectUpdateInputBillingMethod(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""Method used for billing this project"""
+
+ FIXED_PRICE = "fixed_price"
+ TIME_AND_MATERIALS = "time_and_materials"
+ MILESTONE_BASED = "milestone_based"
+ RETAINER = "retainer"
+ NON_BILLABLE = "non_billable"
+
+
+class ProjectUpdateInputProjectPhase(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""Current phase of the project lifecycle"""
+
+ INITIATION = "initiation"
+ PLANNING = "planning"
+ EXECUTION = "execution"
+ MONITORING = "monitoring"
+ CLOSURE = "closure"
+ OTHER = "other"
+
+
+class ProjectUpdateInputScheduleStatus(str, Enum, metaclass=utils.OpenEnumMeta):
+ r"""Current status of project schedule compared to plan"""
+
+ AHEAD_OF_SCHEDULE = "ahead_of_schedule"
+ ON_SCHEDULE = "on_schedule"
+ BEHIND_SCHEDULE = "behind_schedule"
+ CRITICAL_DELAY = "critical_delay"
+
+
+class ProjectUpdateInputTypedDict(TypedDict):
+ r"""The writable shape of Project for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ name: NotRequired[str]
+ r"""Name of the project"""
+ display_id: NotRequired[Nullable[str]]
+ r"""User-friendly project identifier"""
+ reference_id: NotRequired[Nullable[str]]
+ r"""External reference identifier for the project"""
+ description: NotRequired[Nullable[str]]
+ r"""Detailed description of the project"""
+ status: NotRequired[Nullable[ProjectUpdateInputProjectStatus]]
+ r"""Current status of the project"""
+ active: NotRequired[Nullable[bool]]
+ r"""Indicates whether the project is currently active or inactive"""
+ project_type: NotRequired[Nullable[ProjectUpdateInputProjectType]]
+ r"""Type or category of the project"""
+ priority: NotRequired[Nullable[ProjectUpdateInputPriority]]
+ r"""Priority level of the project"""
+ completion_percentage: NotRequired[Nullable[float]]
+ r"""Percentage of project completion (0-100)"""
+ start_date: NotRequired[Nullable[date]]
+ r"""Start date of the project"""
+ end_date: NotRequired[Nullable[date]]
+ r"""Expected or planned end date of the project"""
+ completion_date: NotRequired[Nullable[date]]
+ r"""Actual end date of the project"""
+ customer: NotRequired[Nullable[LinkedCustomerInputTypedDict]]
+ r"""The customer this entity is linked to."""
+ department: NotRequired[Nullable[ProjectUpdateInputDepartmentTypedDict]]
+ r"""Department or organizational unit associated with the project"""
+ company_id: NotRequired[Nullable[str]]
+ r"""The company ID the transaction belongs to"""
+ owner_id: NotRequired[Nullable[str]]
+ r"""ID of the user who owns/manages this project"""
+ parent_project: NotRequired[Nullable[ProjectUpdateInputParentProjectTypedDict]]
+ r"""Parent project if this is a subproject"""
+ currency: NotRequired[Nullable[Currency]]
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+ budget_amount: NotRequired[Nullable[float]]
+ r"""Total budgeted amount for the project"""
+ approved_amount: NotRequired[Nullable[float]]
+ r"""Approved budget amount for the project"""
+ budget_hours: NotRequired[Nullable[float]]
+ r"""Total budgeted hours for the project"""
+ hourly_rate: NotRequired[Nullable[float]]
+ r"""Default hourly rate for project work"""
+ billing_method: NotRequired[Nullable[ProjectUpdateInputBillingMethod]]
+ r"""Method used for billing this project"""
+ is_billable: NotRequired[Nullable[bool]]
+ r"""Indicates if the project is billable to the customer"""
+ phase: NotRequired[Nullable[ProjectUpdateInputProjectPhase]]
+ r"""Current phase of the project lifecycle"""
+ tax_rate: NotRequired[LinkedTaxRateInputTypedDict]
+ tracking_categories: NotRequired[
+ Nullable[List[Nullable[LinkedTrackingCategoryTypedDict]]]
+ ]
+ r"""A list of linked tracking categories."""
+ tags: NotRequired[List[str]]
+ r"""Tags associated with the project"""
+ notes: NotRequired[Nullable[str]]
+ r"""Additional notes about the project"""
+ contract_number: NotRequired[Nullable[str]]
+ r"""Contract or agreement number associated with the project"""
+ profit_margin: NotRequired[Nullable[float]]
+ r"""Expected profit margin percentage for the project"""
+ schedule_status: NotRequired[Nullable[ProjectUpdateInputScheduleStatus]]
+ r"""Current status of project schedule compared to plan"""
+ addresses: NotRequired[List[AddressTypedDict]]
+ r"""An array of addresses associated with the project (billing, job site, etc.)"""
+ team_size: NotRequired[Nullable[int]]
+ r"""Number of team members assigned to the project"""
+ custom_fields: NotRequired[List[CustomFieldTypedDict]]
+ row_version: NotRequired[Nullable[str]]
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+
+
+class ProjectUpdateInput(BaseModel):
+ r"""The writable shape of Project for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ name: Optional[str] = None
+ r"""Name of the project"""
+
+ display_id: OptionalNullable[str] = UNSET
+ r"""User-friendly project identifier"""
+
+ reference_id: OptionalNullable[str] = UNSET
+ r"""External reference identifier for the project"""
+
+ description: OptionalNullable[str] = UNSET
+ r"""Detailed description of the project"""
+
+ status: Annotated[
+ OptionalNullable[ProjectUpdateInputProjectStatus],
+ PlainValidator(validate_open_enum(False)),
+ ] = UNSET
+ r"""Current status of the project"""
+
+ active: OptionalNullable[bool] = UNSET
+ r"""Indicates whether the project is currently active or inactive"""
+
+ project_type: Annotated[
+ OptionalNullable[ProjectUpdateInputProjectType],
+ PlainValidator(validate_open_enum(False)),
+ ] = UNSET
+ r"""Type or category of the project"""
+
+ priority: Annotated[
+ OptionalNullable[ProjectUpdateInputPriority],
+ PlainValidator(validate_open_enum(False)),
+ ] = UNSET
+ r"""Priority level of the project"""
+
+ completion_percentage: OptionalNullable[float] = UNSET
+ r"""Percentage of project completion (0-100)"""
+
+ start_date: OptionalNullable[date] = UNSET
+ r"""Start date of the project"""
+
+ end_date: OptionalNullable[date] = UNSET
+ r"""Expected or planned end date of the project"""
+
+ completion_date: OptionalNullable[date] = UNSET
+ r"""Actual end date of the project"""
+
+ customer: OptionalNullable[LinkedCustomerInput] = UNSET
+ r"""The customer this entity is linked to."""
+
+ department: OptionalNullable[ProjectUpdateInputDepartment] = UNSET
+ r"""Department or organizational unit associated with the project"""
+
+ company_id: OptionalNullable[str] = UNSET
+ r"""The company ID the transaction belongs to"""
+
+ owner_id: OptionalNullable[str] = UNSET
+ r"""ID of the user who owns/manages this project"""
+
+ parent_project: OptionalNullable[ProjectUpdateInputParentProject] = UNSET
+ r"""Parent project if this is a subproject"""
+
+ currency: Annotated[
+ OptionalNullable[Currency], PlainValidator(validate_open_enum(False))
+ ] = UNSET
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+
+ budget_amount: OptionalNullable[float] = UNSET
+ r"""Total budgeted amount for the project"""
+
+ approved_amount: OptionalNullable[float] = UNSET
+ r"""Approved budget amount for the project"""
+
+ budget_hours: OptionalNullable[float] = UNSET
+ r"""Total budgeted hours for the project"""
+
+ hourly_rate: OptionalNullable[float] = UNSET
+ r"""Default hourly rate for project work"""
+
+ billing_method: Annotated[
+ OptionalNullable[ProjectUpdateInputBillingMethod],
+ PlainValidator(validate_open_enum(False)),
+ ] = UNSET
+ r"""Method used for billing this project"""
+
+ is_billable: OptionalNullable[bool] = True
+ r"""Indicates if the project is billable to the customer"""
+
+ phase: Annotated[
+ OptionalNullable[ProjectUpdateInputProjectPhase],
+ PlainValidator(validate_open_enum(False)),
+ ] = UNSET
+ r"""Current phase of the project lifecycle"""
+
+ tax_rate: Optional[LinkedTaxRateInput] = None
+
+ tracking_categories: OptionalNullable[List[Nullable[LinkedTrackingCategory]]] = (
+ UNSET
+ )
+ r"""A list of linked tracking categories."""
+
+ tags: Optional[List[str]] = None
+ r"""Tags associated with the project"""
+
+ notes: OptionalNullable[str] = UNSET
+ r"""Additional notes about the project"""
+
+ contract_number: OptionalNullable[str] = UNSET
+ r"""Contract or agreement number associated with the project"""
+
+ profit_margin: OptionalNullable[float] = UNSET
+ r"""Expected profit margin percentage for the project"""
+
+ schedule_status: Annotated[
+ OptionalNullable[ProjectUpdateInputScheduleStatus],
+ PlainValidator(validate_open_enum(False)),
+ ] = UNSET
+ r"""Current status of project schedule compared to plan"""
+
+ addresses: Optional[List[Address]] = None
+ r"""An array of addresses associated with the project (billing, job site, etc.)"""
+
+ team_size: OptionalNullable[int] = UNSET
+ r"""Number of team members assigned to the project"""
+
+ custom_fields: Optional[List[CustomField]] = None
+
+ row_version: OptionalNullable[str] = UNSET
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+
+ @field_serializer("status")
+ def serialize_status(self, value):
+ if isinstance(value, str):
+ try:
+ return models.ProjectUpdateInputProjectStatus(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("project_type")
+ def serialize_project_type(self, value):
+ if isinstance(value, str):
+ try:
+ return models.ProjectUpdateInputProjectType(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("priority")
+ def serialize_priority(self, value):
+ if isinstance(value, str):
+ try:
+ return models.ProjectUpdateInputPriority(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("currency")
+ def serialize_currency(self, value):
+ if isinstance(value, str):
+ try:
+ return models.Currency(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("billing_method")
+ def serialize_billing_method(self, value):
+ if isinstance(value, str):
+ try:
+ return models.ProjectUpdateInputBillingMethod(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("phase")
+ def serialize_phase(self, value):
+ if isinstance(value, str):
+ try:
+ return models.ProjectUpdateInputProjectPhase(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("schedule_status")
+ def serialize_schedule_status(self, value):
+ if isinstance(value, str):
+ try:
+ return models.ProjectUpdateInputScheduleStatus(value)
+ except ValueError:
+ return value
+ return value
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = [
+ "name",
+ "display_id",
+ "reference_id",
+ "description",
+ "status",
+ "active",
+ "project_type",
+ "priority",
+ "completion_percentage",
+ "start_date",
+ "end_date",
+ "completion_date",
+ "customer",
+ "department",
+ "company_id",
+ "owner_id",
+ "parent_project",
+ "currency",
+ "budget_amount",
+ "approved_amount",
+ "budget_hours",
+ "hourly_rate",
+ "billing_method",
+ "is_billable",
+ "phase",
+ "tax_rate",
+ "tracking_categories",
+ "tags",
+ "notes",
+ "contract_number",
+ "profit_margin",
+ "schedule_status",
+ "addresses",
+ "team_size",
+ "custom_fields",
+ "row_version",
+ ]
+ nullable_fields = [
+ "display_id",
+ "reference_id",
+ "description",
+ "status",
+ "active",
+ "project_type",
+ "priority",
+ "completion_percentage",
+ "start_date",
+ "end_date",
+ "completion_date",
+ "customer",
+ "department",
+ "company_id",
+ "owner_id",
+ "parent_project",
+ "currency",
+ "budget_amount",
+ "approved_amount",
+ "budget_hours",
+ "hourly_rate",
+ "billing_method",
+ "is_billable",
+ "phase",
+ "tracking_categories",
+ "notes",
+ "contract_number",
+ "profit_margin",
+ "schedule_status",
+ "team_size",
+ "row_version",
+ ]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
diff --git a/src/apideck_unify/models/refundupdateinput.py b/src/apideck_unify/models/refundupdateinput.py
new file mode 100644
index 000000000..5635083f8
--- /dev/null
+++ b/src/apideck_unify/models/refundupdateinput.py
@@ -0,0 +1,318 @@
+"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
+
+from __future__ import annotations
+from .address import Address, AddressTypedDict
+from .allocation import AllocationInput, AllocationInputTypedDict
+from .currency import Currency
+from .customfield import CustomField, CustomFieldTypedDict
+from .invoicelineitem import InvoiceLineItemInput, InvoiceLineItemInputTypedDict
+from .linkedcustomer_input import LinkedCustomerInput, LinkedCustomerInputTypedDict
+from .linkeddepartment_input import (
+ LinkedDepartmentInput,
+ LinkedDepartmentInputTypedDict,
+)
+from .linkedledgeraccount import LinkedLedgerAccount, LinkedLedgerAccountTypedDict
+from .linkedlocation_input import LinkedLocationInput, LinkedLocationInputTypedDict
+from .linkedtrackingcategory import (
+ LinkedTrackingCategory,
+ LinkedTrackingCategoryTypedDict,
+)
+from .passthroughbody import PassThroughBody, PassThroughBodyTypedDict
+from .refundstatus import RefundStatus
+from .refundtype import RefundType
+from apideck_unify import models
+from apideck_unify.types import (
+ BaseModel,
+ Nullable,
+ OptionalNullable,
+ UNSET,
+ UNSET_SENTINEL,
+)
+from apideck_unify.utils import validate_open_enum
+from datetime import datetime
+from pydantic import field_serializer, model_serializer
+from pydantic.functional_validators import PlainValidator
+from typing import List, Optional
+from typing_extensions import Annotated, NotRequired, TypedDict
+
+
+class RefundUpdateInputTypedDict(TypedDict):
+ r"""The writable shape of Refund for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ number: NotRequired[Nullable[str]]
+ r"""Reference number for the refund."""
+ customer: NotRequired[Nullable[LinkedCustomerInputTypedDict]]
+ r"""The customer this entity is linked to."""
+ company_id: NotRequired[Nullable[str]]
+ r"""The company ID the transaction belongs to"""
+ currency: NotRequired[Nullable[Currency]]
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+ currency_rate: NotRequired[Nullable[float]]
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+ tax_inclusive: NotRequired[Nullable[bool]]
+ r"""Amounts are including tax"""
+ sub_total: NotRequired[Nullable[float]]
+ r"""Subtotal amount, normally before tax."""
+ total_amount: NotRequired[Nullable[float]]
+ r"""The total amount of the transaction or record"""
+ total_tax: NotRequired[Nullable[float]]
+ r"""Total tax amount applied to this transaction."""
+ refund_date: NotRequired[Nullable[datetime]]
+ r"""The date of the refund - YYYY-MM-DDThh:mm:ss.sTZD"""
+ status: NotRequired[RefundStatus]
+ r"""Status of refund. Maps to: QBO (limited status), NetSuite CashRefund status, Sage Intacct state (draft/posted/voided), Zoho Books vis_state."""
+ type: NotRequired[RefundType]
+ r"""Type of refund. `refund_receipt` for itemized refunds with product/service lines and payment (QBO RefundReceipt; also NetSuite's apply-list-based CustomerRefund). `cash_refund` for cash-out refunds with GL distribution or allocations (Sage Intacct). `credit_note_refund` for refunds applied against a credit note (Zoho Books). `sale_refund` for itemized refunds tied to a cash sale or return authorization, without an apply-list (NetSuite CashRefund) — NetSuite's apply-list-based CustomerRefund reports as `refund_receipt` instead."""
+ payment_method: NotRequired[Nullable[str]]
+ r"""Payment method used for the transaction, such as cash, credit card, bank transfer, or check"""
+ payment_method_reference: NotRequired[Nullable[str]]
+ r"""Optional reference message returned by payment method on processing"""
+ payment_method_id: NotRequired[Nullable[str]]
+ r"""A unique identifier for an object."""
+ account: NotRequired[Nullable[LinkedLedgerAccountTypedDict]]
+ line_items: NotRequired[List[InvoiceLineItemInputTypedDict]]
+ r"""Line items for itemized refunds (type: refund_receipt or sale_refund). Used when the refund includes product/service details with quantities and pricing. Supported by QBO RefundReceipt and NetSuite CashRefund."""
+ allocations: NotRequired[List[AllocationInputTypedDict]]
+ r"""Allocations linking refund to existing documents (invoices, credit notes, overpayments). Used for credit_note_refund and cash_refund types where the refund is applied against prior transactions. Supported by Sage Intacct and Zoho Books."""
+ tax_code: NotRequired[Nullable[str]]
+ r"""Applicable tax id/code override if tax is not supplied on a line item basis."""
+ discount_percentage: NotRequired[Nullable[float]]
+ r"""Discount percentage applied to this refund."""
+ discount_amount: NotRequired[Nullable[float]]
+ r"""Discount amount applied to this refund."""
+ note: NotRequired[Nullable[str]]
+ r"""Optional note to be associated with the refund."""
+ customer_memo: NotRequired[Nullable[str]]
+ r"""Customer memo"""
+ reference: NotRequired[Nullable[str]]
+ r"""Optional reference message for the refund."""
+ billing_address: NotRequired[AddressTypedDict]
+ shipping_address: NotRequired[AddressTypedDict]
+ department: NotRequired[Nullable[LinkedDepartmentInputTypedDict]]
+ location: NotRequired[Nullable[LinkedLocationInputTypedDict]]
+ tracking_categories: NotRequired[
+ Nullable[List[Nullable[LinkedTrackingCategoryTypedDict]]]
+ ]
+ r"""A list of linked tracking categories."""
+ custom_fields: NotRequired[List[CustomFieldTypedDict]]
+ row_version: NotRequired[Nullable[str]]
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+ pass_through: NotRequired[List[PassThroughBodyTypedDict]]
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+
+class RefundUpdateInput(BaseModel):
+ r"""The writable shape of Refund for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ number: OptionalNullable[str] = UNSET
+ r"""Reference number for the refund."""
+
+ customer: OptionalNullable[LinkedCustomerInput] = UNSET
+ r"""The customer this entity is linked to."""
+
+ company_id: OptionalNullable[str] = UNSET
+ r"""The company ID the transaction belongs to"""
+
+ currency: Annotated[
+ OptionalNullable[Currency], PlainValidator(validate_open_enum(False))
+ ] = UNSET
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+
+ currency_rate: OptionalNullable[float] = UNSET
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+
+ tax_inclusive: OptionalNullable[bool] = UNSET
+ r"""Amounts are including tax"""
+
+ sub_total: OptionalNullable[float] = UNSET
+ r"""Subtotal amount, normally before tax."""
+
+ total_amount: OptionalNullable[float] = UNSET
+ r"""The total amount of the transaction or record"""
+
+ total_tax: OptionalNullable[float] = UNSET
+ r"""Total tax amount applied to this transaction."""
+
+ refund_date: OptionalNullable[datetime] = UNSET
+ r"""The date of the refund - YYYY-MM-DDThh:mm:ss.sTZD"""
+
+ status: Annotated[
+ Optional[RefundStatus], PlainValidator(validate_open_enum(False))
+ ] = None
+ r"""Status of refund. Maps to: QBO (limited status), NetSuite CashRefund status, Sage Intacct state (draft/posted/voided), Zoho Books vis_state."""
+
+ type: Annotated[Optional[RefundType], PlainValidator(validate_open_enum(False))] = (
+ None
+ )
+ r"""Type of refund. `refund_receipt` for itemized refunds with product/service lines and payment (QBO RefundReceipt; also NetSuite's apply-list-based CustomerRefund). `cash_refund` for cash-out refunds with GL distribution or allocations (Sage Intacct). `credit_note_refund` for refunds applied against a credit note (Zoho Books). `sale_refund` for itemized refunds tied to a cash sale or return authorization, without an apply-list (NetSuite CashRefund) — NetSuite's apply-list-based CustomerRefund reports as `refund_receipt` instead."""
+
+ payment_method: OptionalNullable[str] = UNSET
+ r"""Payment method used for the transaction, such as cash, credit card, bank transfer, or check"""
+
+ payment_method_reference: OptionalNullable[str] = UNSET
+ r"""Optional reference message returned by payment method on processing"""
+
+ payment_method_id: OptionalNullable[str] = UNSET
+ r"""A unique identifier for an object."""
+
+ account: OptionalNullable[LinkedLedgerAccount] = UNSET
+
+ line_items: Optional[List[InvoiceLineItemInput]] = None
+ r"""Line items for itemized refunds (type: refund_receipt or sale_refund). Used when the refund includes product/service details with quantities and pricing. Supported by QBO RefundReceipt and NetSuite CashRefund."""
+
+ allocations: Optional[List[AllocationInput]] = None
+ r"""Allocations linking refund to existing documents (invoices, credit notes, overpayments). Used for credit_note_refund and cash_refund types where the refund is applied against prior transactions. Supported by Sage Intacct and Zoho Books."""
+
+ tax_code: OptionalNullable[str] = UNSET
+ r"""Applicable tax id/code override if tax is not supplied on a line item basis."""
+
+ discount_percentage: OptionalNullable[float] = UNSET
+ r"""Discount percentage applied to this refund."""
+
+ discount_amount: OptionalNullable[float] = UNSET
+ r"""Discount amount applied to this refund."""
+
+ note: OptionalNullable[str] = UNSET
+ r"""Optional note to be associated with the refund."""
+
+ customer_memo: OptionalNullable[str] = UNSET
+ r"""Customer memo"""
+
+ reference: OptionalNullable[str] = UNSET
+ r"""Optional reference message for the refund."""
+
+ billing_address: Optional[Address] = None
+
+ shipping_address: Optional[Address] = None
+
+ department: OptionalNullable[LinkedDepartmentInput] = UNSET
+
+ location: OptionalNullable[LinkedLocationInput] = UNSET
+
+ tracking_categories: OptionalNullable[List[Nullable[LinkedTrackingCategory]]] = (
+ UNSET
+ )
+ r"""A list of linked tracking categories."""
+
+ custom_fields: Optional[List[CustomField]] = None
+
+ row_version: OptionalNullable[str] = UNSET
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+
+ pass_through: Optional[List[PassThroughBody]] = None
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+ @field_serializer("currency")
+ def serialize_currency(self, value):
+ if isinstance(value, str):
+ try:
+ return models.Currency(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("status")
+ def serialize_status(self, value):
+ if isinstance(value, str):
+ try:
+ return models.RefundStatus(value)
+ except ValueError:
+ return value
+ return value
+
+ @field_serializer("type")
+ def serialize_type(self, value):
+ if isinstance(value, str):
+ try:
+ return models.RefundType(value)
+ except ValueError:
+ return value
+ return value
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = [
+ "number",
+ "customer",
+ "company_id",
+ "currency",
+ "currency_rate",
+ "tax_inclusive",
+ "sub_total",
+ "total_amount",
+ "total_tax",
+ "refund_date",
+ "status",
+ "type",
+ "payment_method",
+ "payment_method_reference",
+ "payment_method_id",
+ "account",
+ "line_items",
+ "allocations",
+ "tax_code",
+ "discount_percentage",
+ "discount_amount",
+ "note",
+ "customer_memo",
+ "reference",
+ "billing_address",
+ "shipping_address",
+ "department",
+ "location",
+ "tracking_categories",
+ "custom_fields",
+ "row_version",
+ "pass_through",
+ ]
+ nullable_fields = [
+ "number",
+ "customer",
+ "company_id",
+ "currency",
+ "currency_rate",
+ "tax_inclusive",
+ "sub_total",
+ "total_amount",
+ "total_tax",
+ "refund_date",
+ "payment_method",
+ "payment_method_reference",
+ "payment_method_id",
+ "account",
+ "tax_code",
+ "discount_percentage",
+ "discount_amount",
+ "note",
+ "customer_memo",
+ "reference",
+ "department",
+ "location",
+ "tracking_categories",
+ "row_version",
+ ]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
diff --git a/src/apideck_unify/models/salesreceiptupdateinput.py b/src/apideck_unify/models/salesreceiptupdateinput.py
new file mode 100644
index 000000000..1f88243bb
--- /dev/null
+++ b/src/apideck_unify/models/salesreceiptupdateinput.py
@@ -0,0 +1,262 @@
+"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
+
+from __future__ import annotations
+from .address import Address, AddressTypedDict
+from .currency import Currency
+from .customfield import CustomField, CustomFieldTypedDict
+from .invoicelineitem import InvoiceLineItemInput, InvoiceLineItemInputTypedDict
+from .linkedcustomer_input import LinkedCustomerInput, LinkedCustomerInputTypedDict
+from .linkeddepartment_input import (
+ LinkedDepartmentInput,
+ LinkedDepartmentInputTypedDict,
+)
+from .linkedledgeraccount import LinkedLedgerAccount, LinkedLedgerAccountTypedDict
+from .linkedtrackingcategory import (
+ LinkedTrackingCategory,
+ LinkedTrackingCategoryTypedDict,
+)
+from .passthroughbody import PassThroughBody, PassThroughBodyTypedDict
+from apideck_unify import models
+from apideck_unify.types import (
+ BaseModel,
+ Nullable,
+ OptionalNullable,
+ UNSET,
+ UNSET_SENTINEL,
+)
+from apideck_unify.utils import validate_open_enum
+from datetime import datetime
+from pydantic import field_serializer, model_serializer
+from pydantic.functional_validators import PlainValidator
+from typing import List, Optional
+from typing_extensions import Annotated, NotRequired, TypedDict
+
+
+class SalesReceiptUpdateInputTypedDict(TypedDict):
+ r"""The writable shape of SalesReceipt for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ number: NotRequired[Nullable[str]]
+ r"""Reference number for the sales receipt."""
+ customer: NotRequired[Nullable[LinkedCustomerInputTypedDict]]
+ r"""The customer this entity is linked to."""
+ currency: NotRequired[Nullable[Currency]]
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+ currency_rate: NotRequired[Nullable[float]]
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+ tax_inclusive: NotRequired[Nullable[bool]]
+ r"""Amounts are including tax"""
+ sub_total: NotRequired[Nullable[float]]
+ r"""Subtotal amount, normally before tax."""
+ total_amount: NotRequired[Nullable[float]]
+ r"""The total amount of the transaction or record"""
+ total_tax: NotRequired[Nullable[float]]
+ r"""Total tax amount applied to this transaction."""
+ transaction_date: NotRequired[Nullable[datetime]]
+ r"""The date of the sales receipt transaction - YYYY-MM-DDThh:mm:ss.sTZD"""
+ payment_method: NotRequired[Nullable[str]]
+ r"""Payment method used for the transaction, such as cash, credit card, bank transfer, or check"""
+ payment_method_reference: NotRequired[Nullable[str]]
+ r"""Optional reference message returned by payment method on processing"""
+ payment_method_id: NotRequired[Nullable[str]]
+ r"""A unique identifier for an object."""
+ account: NotRequired[Nullable[LinkedLedgerAccountTypedDict]]
+ line_items: NotRequired[List[InvoiceLineItemInputTypedDict]]
+ r"""Line items for itemized sales receipts. Used when the sales receipt includes product/service details with quantities and pricing."""
+ tax_code: NotRequired[Nullable[str]]
+ r"""Applicable tax id/code override if tax is not supplied on a line item basis."""
+ discount_percentage: NotRequired[Nullable[float]]
+ r"""Discount percentage applied to this sales receipt."""
+ discount_amount: NotRequired[Nullable[float]]
+ r"""Discount amount applied to this sales receipt."""
+ note: NotRequired[Nullable[str]]
+ r"""Optional note to be associated with the sales receipt."""
+ customer_memo: NotRequired[Nullable[str]]
+ r"""Customer memo"""
+ reference: NotRequired[Nullable[str]]
+ r"""Optional reference message for the sales receipt."""
+ billing_address: NotRequired[AddressTypedDict]
+ shipping_address: NotRequired[AddressTypedDict]
+ department: NotRequired[Nullable[LinkedDepartmentInputTypedDict]]
+ tracking_categories: NotRequired[
+ Nullable[List[Nullable[LinkedTrackingCategoryTypedDict]]]
+ ]
+ r"""A list of linked tracking categories."""
+ custom_fields: NotRequired[List[CustomFieldTypedDict]]
+ row_version: NotRequired[Nullable[str]]
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+ pass_through: NotRequired[List[PassThroughBodyTypedDict]]
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+
+class SalesReceiptUpdateInput(BaseModel):
+ r"""The writable shape of SalesReceipt for a single-record update. Identical to the model with the read-only properties removed and no required properties, because PATCH is partial and the API already validates it that way."""
+
+ number: OptionalNullable[str] = UNSET
+ r"""Reference number for the sales receipt."""
+
+ customer: OptionalNullable[LinkedCustomerInput] = UNSET
+ r"""The customer this entity is linked to."""
+
+ currency: Annotated[
+ OptionalNullable[Currency], PlainValidator(validate_open_enum(False))
+ ] = UNSET
+ r"""Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."""
+
+ currency_rate: OptionalNullable[float] = UNSET
+ r"""Currency Exchange Rate at the time entity was recorded/generated."""
+
+ tax_inclusive: OptionalNullable[bool] = UNSET
+ r"""Amounts are including tax"""
+
+ sub_total: OptionalNullable[float] = UNSET
+ r"""Subtotal amount, normally before tax."""
+
+ total_amount: OptionalNullable[float] = UNSET
+ r"""The total amount of the transaction or record"""
+
+ total_tax: OptionalNullable[float] = UNSET
+ r"""Total tax amount applied to this transaction."""
+
+ transaction_date: OptionalNullable[datetime] = UNSET
+ r"""The date of the sales receipt transaction - YYYY-MM-DDThh:mm:ss.sTZD"""
+
+ payment_method: OptionalNullable[str] = UNSET
+ r"""Payment method used for the transaction, such as cash, credit card, bank transfer, or check"""
+
+ payment_method_reference: OptionalNullable[str] = UNSET
+ r"""Optional reference message returned by payment method on processing"""
+
+ payment_method_id: OptionalNullable[str] = UNSET
+ r"""A unique identifier for an object."""
+
+ account: OptionalNullable[LinkedLedgerAccount] = UNSET
+
+ line_items: Optional[List[InvoiceLineItemInput]] = None
+ r"""Line items for itemized sales receipts. Used when the sales receipt includes product/service details with quantities and pricing."""
+
+ tax_code: OptionalNullable[str] = UNSET
+ r"""Applicable tax id/code override if tax is not supplied on a line item basis."""
+
+ discount_percentage: OptionalNullable[float] = UNSET
+ r"""Discount percentage applied to this sales receipt."""
+
+ discount_amount: OptionalNullable[float] = UNSET
+ r"""Discount amount applied to this sales receipt."""
+
+ note: OptionalNullable[str] = UNSET
+ r"""Optional note to be associated with the sales receipt."""
+
+ customer_memo: OptionalNullable[str] = UNSET
+ r"""Customer memo"""
+
+ reference: OptionalNullable[str] = UNSET
+ r"""Optional reference message for the sales receipt."""
+
+ billing_address: Optional[Address] = None
+
+ shipping_address: Optional[Address] = None
+
+ department: OptionalNullable[LinkedDepartmentInput] = UNSET
+
+ tracking_categories: OptionalNullable[List[Nullable[LinkedTrackingCategory]]] = (
+ UNSET
+ )
+ r"""A list of linked tracking categories."""
+
+ custom_fields: Optional[List[CustomField]] = None
+
+ row_version: OptionalNullable[str] = UNSET
+ r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object."""
+
+ pass_through: Optional[List[PassThroughBody]] = None
+ r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources."""
+
+ @field_serializer("currency")
+ def serialize_currency(self, value):
+ if isinstance(value, str):
+ try:
+ return models.Currency(value)
+ except ValueError:
+ return value
+ return value
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = [
+ "number",
+ "customer",
+ "currency",
+ "currency_rate",
+ "tax_inclusive",
+ "sub_total",
+ "total_amount",
+ "total_tax",
+ "transaction_date",
+ "payment_method",
+ "payment_method_reference",
+ "payment_method_id",
+ "account",
+ "line_items",
+ "tax_code",
+ "discount_percentage",
+ "discount_amount",
+ "note",
+ "customer_memo",
+ "reference",
+ "billing_address",
+ "shipping_address",
+ "department",
+ "tracking_categories",
+ "custom_fields",
+ "row_version",
+ "pass_through",
+ ]
+ nullable_fields = [
+ "number",
+ "customer",
+ "currency",
+ "currency_rate",
+ "tax_inclusive",
+ "sub_total",
+ "total_amount",
+ "total_tax",
+ "transaction_date",
+ "payment_method",
+ "payment_method_reference",
+ "payment_method_id",
+ "account",
+ "tax_code",
+ "discount_percentage",
+ "discount_amount",
+ "note",
+ "customer_memo",
+ "reference",
+ "department",
+ "tracking_categories",
+ "row_version",
+ ]
+ null_default_fields = []
+
+ serialized = handler(self)
+
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k)
+ serialized.pop(k, None)
+
+ optional_nullable = k in optional_fields and k in nullable_fields
+ is_set = (
+ self.__pydantic_fields_set__.intersection({n})
+ or k in null_default_fields
+ ) # pylint: disable=no-member
+
+ if val is not None and val != UNSET_SENTINEL:
+ m[k] = val
+ elif val != UNSET_SENTINEL and (
+ not k in optional_fields or (optional_nullable and is_set)
+ ):
+ m[k] = val
+
+ return m
diff --git a/src/apideck_unify/payments.py b/src/apideck_unify/payments.py
index ba8ae6117..991c442fa 100644
--- a/src/apideck_unify/payments.py
+++ b/src/apideck_unify/payments.py
@@ -1226,8 +1226,6 @@ def update(
self,
*,
id: str,
- total_amount: Nullable[float],
- transaction_date: Nullable[datetime],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
@@ -1235,6 +1233,7 @@ def update(
raw: Optional[bool] = False,
currency: OptionalNullable[models.Currency] = UNSET,
currency_rate: OptionalNullable[float] = UNSET,
+ total_amount: OptionalNullable[float] = UNSET,
reference: OptionalNullable[str] = UNSET,
payment_method: OptionalNullable[str] = UNSET,
payment_method_reference: OptionalNullable[str] = UNSET,
@@ -1244,6 +1243,7 @@ def update(
account: OptionalNullable[
Union[models.LinkedLedgerAccount, models.LinkedLedgerAccountTypedDict]
] = UNSET,
+ transaction_date: OptionalNullable[datetime] = UNSET,
customer: OptionalNullable[
Union[models.LinkedCustomerInput, models.LinkedCustomerInputTypedDict]
] = UNSET,
@@ -1289,8 +1289,6 @@ def update(
Update Payment
:param id: ID of the record you are acting upon.
- :param total_amount: The total amount of the transaction or record
- :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
@@ -1298,6 +1296,7 @@ def update(
:param raw: Include raw response. Mostly used for debugging purposes
:param currency: Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
:param currency_rate: Currency Exchange Rate at the time entity was recorded/generated.
+ :param total_amount: The total amount of the transaction or record
:param reference: Optional transaction reference message ie: Debit remittance detail.
:param payment_method: Payment method used for the transaction, such as cash, credit card, bank transfer, or check
:param payment_method_reference: Optional reference message returned by payment method on processing
@@ -1305,6 +1304,7 @@ def update(
:param accounts_receivable_account_type: Type of accounts receivable account.
:param accounts_receivable_account_id: Unique identifier for the account to allocate payment to.
:param account:
+ :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param customer: The customer this entity is linked to.
:param supplier: The supplier this entity is linked to.
:param company_id: The company ID the transaction belongs to
@@ -1342,7 +1342,7 @@ def update(
service_id=service_id,
company_id_param=company_id_param,
raw=raw,
- payment=models.PaymentInput(
+ payment_update_input=models.PaymentUpdateInput(
currency=currency,
currency_rate=currency_rate,
total_amount=total_amount,
@@ -1407,7 +1407,11 @@ def update(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.payment, False, False, "json", models.PaymentInput
+ request.payment_update_input,
+ False,
+ False,
+ "json",
+ models.PaymentUpdateInput,
),
timeout_ms=timeout_ms,
)
@@ -1494,8 +1498,6 @@ async def update_async(
self,
*,
id: str,
- total_amount: Nullable[float],
- transaction_date: Nullable[datetime],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
@@ -1503,6 +1505,7 @@ async def update_async(
raw: Optional[bool] = False,
currency: OptionalNullable[models.Currency] = UNSET,
currency_rate: OptionalNullable[float] = UNSET,
+ total_amount: OptionalNullable[float] = UNSET,
reference: OptionalNullable[str] = UNSET,
payment_method: OptionalNullable[str] = UNSET,
payment_method_reference: OptionalNullable[str] = UNSET,
@@ -1512,6 +1515,7 @@ async def update_async(
account: OptionalNullable[
Union[models.LinkedLedgerAccount, models.LinkedLedgerAccountTypedDict]
] = UNSET,
+ transaction_date: OptionalNullable[datetime] = UNSET,
customer: OptionalNullable[
Union[models.LinkedCustomerInput, models.LinkedCustomerInputTypedDict]
] = UNSET,
@@ -1557,8 +1561,6 @@ async def update_async(
Update Payment
:param id: ID of the record you are acting upon.
- :param total_amount: The total amount of the transaction or record
- :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
@@ -1566,6 +1568,7 @@ async def update_async(
:param raw: Include raw response. Mostly used for debugging purposes
:param currency: Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
:param currency_rate: Currency Exchange Rate at the time entity was recorded/generated.
+ :param total_amount: The total amount of the transaction or record
:param reference: Optional transaction reference message ie: Debit remittance detail.
:param payment_method: Payment method used for the transaction, such as cash, credit card, bank transfer, or check
:param payment_method_reference: Optional reference message returned by payment method on processing
@@ -1573,6 +1576,7 @@ async def update_async(
:param accounts_receivable_account_type: Type of accounts receivable account.
:param accounts_receivable_account_id: Unique identifier for the account to allocate payment to.
:param account:
+ :param transaction_date: The date of the transaction - YYYY:MM::DDThh:mm:ss.sTZD
:param customer: The customer this entity is linked to.
:param supplier: The supplier this entity is linked to.
:param company_id: The company ID the transaction belongs to
@@ -1610,7 +1614,7 @@ async def update_async(
service_id=service_id,
company_id_param=company_id_param,
raw=raw,
- payment=models.PaymentInput(
+ payment_update_input=models.PaymentUpdateInput(
currency=currency,
currency_rate=currency_rate,
total_amount=total_amount,
@@ -1675,7 +1679,11 @@ async def update_async(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.payment, False, False, "json", models.PaymentInput
+ request.payment_update_input,
+ False,
+ False,
+ "json",
+ models.PaymentUpdateInput,
),
timeout_ms=timeout_ms,
)
diff --git a/src/apideck_unify/projects.py b/src/apideck_unify/projects.py
index 9e5e873a3..f0eb7b685 100644
--- a/src/apideck_unify/projects.py
+++ b/src/apideck_unify/projects.py
@@ -1266,19 +1266,19 @@ def update(
self,
*,
id: str,
- name: str,
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
company_id_param: Optional[str] = None,
raw: Optional[bool] = False,
+ name: Optional[str] = None,
display_id: OptionalNullable[str] = UNSET,
reference_id: OptionalNullable[str] = UNSET,
description: OptionalNullable[str] = UNSET,
- status: OptionalNullable[models.ProjectProjectStatus] = UNSET,
+ status: OptionalNullable[models.ProjectUpdateInputProjectStatus] = UNSET,
active: OptionalNullable[bool] = UNSET,
- project_type: OptionalNullable[models.ProjectType] = UNSET,
- priority: OptionalNullable[models.Priority] = UNSET,
+ project_type: OptionalNullable[models.ProjectUpdateInputProjectType] = UNSET,
+ priority: OptionalNullable[models.ProjectUpdateInputPriority] = UNSET,
completion_percentage: OptionalNullable[float] = UNSET,
start_date: OptionalNullable[date] = UNSET,
end_date: OptionalNullable[date] = UNSET,
@@ -1287,21 +1287,29 @@ def update(
Union[models.LinkedCustomerInput, models.LinkedCustomerInputTypedDict]
] = UNSET,
department: OptionalNullable[
- Union[models.ProjectDepartment, models.ProjectDepartmentTypedDict]
+ Union[
+ models.ProjectUpdateInputDepartment,
+ models.ProjectUpdateInputDepartmentTypedDict,
+ ]
] = UNSET,
company_id: OptionalNullable[str] = UNSET,
owner_id: OptionalNullable[str] = UNSET,
parent_project: OptionalNullable[
- Union[models.ParentProject, models.ParentProjectTypedDict]
+ Union[
+ models.ProjectUpdateInputParentProject,
+ models.ProjectUpdateInputParentProjectTypedDict,
+ ]
] = UNSET,
currency: OptionalNullable[models.Currency] = UNSET,
budget_amount: OptionalNullable[float] = UNSET,
approved_amount: OptionalNullable[float] = UNSET,
budget_hours: OptionalNullable[float] = UNSET,
hourly_rate: OptionalNullable[float] = UNSET,
- billing_method: OptionalNullable[models.BillingMethod] = UNSET,
+ billing_method: OptionalNullable[
+ models.ProjectUpdateInputBillingMethod
+ ] = UNSET,
is_billable: OptionalNullable[bool] = True,
- phase: OptionalNullable[models.ProjectPhase] = UNSET,
+ phase: OptionalNullable[models.ProjectUpdateInputProjectPhase] = UNSET,
tax_rate: Optional[
Union[models.LinkedTaxRateInput, models.LinkedTaxRateInputTypedDict]
] = None,
@@ -1315,7 +1323,9 @@ def update(
notes: OptionalNullable[str] = UNSET,
contract_number: OptionalNullable[str] = UNSET,
profit_margin: OptionalNullable[float] = UNSET,
- schedule_status: OptionalNullable[models.ScheduleStatus] = UNSET,
+ schedule_status: OptionalNullable[
+ models.ProjectUpdateInputScheduleStatus
+ ] = UNSET,
addresses: Optional[
Union[List[models.Address], List[models.AddressTypedDict]]
] = None,
@@ -1334,12 +1344,12 @@ def update(
Update project
:param id: ID of the record you are acting upon.
- :param name: Name of the project
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
:param company_id_param: The ID of the company to scope requests to. For connectors that support multi-company, this overrides the default company configured in connection settings.
:param raw: Include raw response. Mostly used for debugging purposes
+ :param name: Name of the project
:param display_id: User-friendly project identifier
:param reference_id: External reference identifier for the project
:param description: Detailed description of the project
@@ -1397,7 +1407,7 @@ def update(
service_id=service_id,
company_id_param=company_id_param,
raw=raw,
- project=models.ProjectInput(
+ project_update_input=models.ProjectUpdateInput(
name=name,
display_id=display_id,
reference_id=reference_id,
@@ -1414,12 +1424,13 @@ def update(
customer, OptionalNullable[models.LinkedCustomerInput]
),
department=utils.get_pydantic_model(
- department, OptionalNullable[models.ProjectDepartment]
+ department, OptionalNullable[models.ProjectUpdateInputDepartment]
),
company_id=company_id,
owner_id=owner_id,
parent_project=utils.get_pydantic_model(
- parent_project, OptionalNullable[models.ParentProject]
+ parent_project,
+ OptionalNullable[models.ProjectUpdateInputParentProject],
),
currency=currency,
budget_amount=budget_amount,
@@ -1470,7 +1481,11 @@ def update(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.project, False, False, "json", models.ProjectInput
+ request.project_update_input,
+ False,
+ False,
+ "json",
+ models.ProjectUpdateInput,
),
timeout_ms=timeout_ms,
)
@@ -1557,19 +1572,19 @@ async def update_async(
self,
*,
id: str,
- name: str,
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
company_id_param: Optional[str] = None,
raw: Optional[bool] = False,
+ name: Optional[str] = None,
display_id: OptionalNullable[str] = UNSET,
reference_id: OptionalNullable[str] = UNSET,
description: OptionalNullable[str] = UNSET,
- status: OptionalNullable[models.ProjectProjectStatus] = UNSET,
+ status: OptionalNullable[models.ProjectUpdateInputProjectStatus] = UNSET,
active: OptionalNullable[bool] = UNSET,
- project_type: OptionalNullable[models.ProjectType] = UNSET,
- priority: OptionalNullable[models.Priority] = UNSET,
+ project_type: OptionalNullable[models.ProjectUpdateInputProjectType] = UNSET,
+ priority: OptionalNullable[models.ProjectUpdateInputPriority] = UNSET,
completion_percentage: OptionalNullable[float] = UNSET,
start_date: OptionalNullable[date] = UNSET,
end_date: OptionalNullable[date] = UNSET,
@@ -1578,21 +1593,29 @@ async def update_async(
Union[models.LinkedCustomerInput, models.LinkedCustomerInputTypedDict]
] = UNSET,
department: OptionalNullable[
- Union[models.ProjectDepartment, models.ProjectDepartmentTypedDict]
+ Union[
+ models.ProjectUpdateInputDepartment,
+ models.ProjectUpdateInputDepartmentTypedDict,
+ ]
] = UNSET,
company_id: OptionalNullable[str] = UNSET,
owner_id: OptionalNullable[str] = UNSET,
parent_project: OptionalNullable[
- Union[models.ParentProject, models.ParentProjectTypedDict]
+ Union[
+ models.ProjectUpdateInputParentProject,
+ models.ProjectUpdateInputParentProjectTypedDict,
+ ]
] = UNSET,
currency: OptionalNullable[models.Currency] = UNSET,
budget_amount: OptionalNullable[float] = UNSET,
approved_amount: OptionalNullable[float] = UNSET,
budget_hours: OptionalNullable[float] = UNSET,
hourly_rate: OptionalNullable[float] = UNSET,
- billing_method: OptionalNullable[models.BillingMethod] = UNSET,
+ billing_method: OptionalNullable[
+ models.ProjectUpdateInputBillingMethod
+ ] = UNSET,
is_billable: OptionalNullable[bool] = True,
- phase: OptionalNullable[models.ProjectPhase] = UNSET,
+ phase: OptionalNullable[models.ProjectUpdateInputProjectPhase] = UNSET,
tax_rate: Optional[
Union[models.LinkedTaxRateInput, models.LinkedTaxRateInputTypedDict]
] = None,
@@ -1606,7 +1629,9 @@ async def update_async(
notes: OptionalNullable[str] = UNSET,
contract_number: OptionalNullable[str] = UNSET,
profit_margin: OptionalNullable[float] = UNSET,
- schedule_status: OptionalNullable[models.ScheduleStatus] = UNSET,
+ schedule_status: OptionalNullable[
+ models.ProjectUpdateInputScheduleStatus
+ ] = UNSET,
addresses: Optional[
Union[List[models.Address], List[models.AddressTypedDict]]
] = None,
@@ -1625,12 +1650,12 @@ async def update_async(
Update project
:param id: ID of the record you are acting upon.
- :param name: Name of the project
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
:param company_id_param: The ID of the company to scope requests to. For connectors that support multi-company, this overrides the default company configured in connection settings.
:param raw: Include raw response. Mostly used for debugging purposes
+ :param name: Name of the project
:param display_id: User-friendly project identifier
:param reference_id: External reference identifier for the project
:param description: Detailed description of the project
@@ -1688,7 +1713,7 @@ async def update_async(
service_id=service_id,
company_id_param=company_id_param,
raw=raw,
- project=models.ProjectInput(
+ project_update_input=models.ProjectUpdateInput(
name=name,
display_id=display_id,
reference_id=reference_id,
@@ -1705,12 +1730,13 @@ async def update_async(
customer, OptionalNullable[models.LinkedCustomerInput]
),
department=utils.get_pydantic_model(
- department, OptionalNullable[models.ProjectDepartment]
+ department, OptionalNullable[models.ProjectUpdateInputDepartment]
),
company_id=company_id,
owner_id=owner_id,
parent_project=utils.get_pydantic_model(
- parent_project, OptionalNullable[models.ParentProject]
+ parent_project,
+ OptionalNullable[models.ProjectUpdateInputParentProject],
),
currency=currency,
budget_amount=budget_amount,
@@ -1761,7 +1787,11 @@ async def update_async(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.project, False, False, "json", models.ProjectInput
+ request.project_update_input,
+ False,
+ False,
+ "json",
+ models.ProjectUpdateInput,
),
timeout_ms=timeout_ms,
)
diff --git a/src/apideck_unify/refunds.py b/src/apideck_unify/refunds.py
index 27eb02215..4a070f693 100644
--- a/src/apideck_unify/refunds.py
+++ b/src/apideck_unify/refunds.py
@@ -1266,7 +1266,6 @@ def update(
self,
*,
id: str,
- total_amount: Nullable[float],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
@@ -1280,6 +1279,7 @@ def update(
currency_rate: OptionalNullable[float] = UNSET,
tax_inclusive: OptionalNullable[bool] = UNSET,
sub_total: OptionalNullable[float] = UNSET,
+ total_amount: OptionalNullable[float] = UNSET,
total_tax: OptionalNullable[float] = UNSET,
refund_date: OptionalNullable[datetime] = UNSET,
status: Optional[models.RefundStatus] = None,
@@ -1340,7 +1340,6 @@ def update(
Update Refund
:param id: ID of the record you are acting upon.
- :param total_amount: The total amount of the transaction or record
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
@@ -1352,6 +1351,7 @@ def update(
:param currency_rate: Currency Exchange Rate at the time entity was recorded/generated.
:param tax_inclusive: Amounts are including tax
:param sub_total: Subtotal amount, normally before tax.
+ :param total_amount: The total amount of the transaction or record
:param total_tax: Total tax amount applied to this transaction.
:param refund_date: The date of the refund - YYYY-MM-DDThh:mm:ss.sTZD
:param status: Status of refund. Maps to: QBO (limited status), NetSuite CashRefund status, Sage Intacct state (draft/posted/voided), Zoho Books vis_state.
@@ -1397,7 +1397,7 @@ def update(
app_id=app_id,
service_id=service_id,
raw=raw,
- refund=models.RefundInput(
+ refund_update_input=models.RefundUpdateInput(
number=number,
customer=utils.get_pydantic_model(
customer, OptionalNullable[models.LinkedCustomerInput]
@@ -1474,7 +1474,11 @@ def update(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.refund, False, False, "json", models.RefundInput
+ request.refund_update_input,
+ False,
+ False,
+ "json",
+ models.RefundUpdateInput,
),
timeout_ms=timeout_ms,
)
@@ -1561,7 +1565,6 @@ async def update_async(
self,
*,
id: str,
- total_amount: Nullable[float],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
@@ -1575,6 +1578,7 @@ async def update_async(
currency_rate: OptionalNullable[float] = UNSET,
tax_inclusive: OptionalNullable[bool] = UNSET,
sub_total: OptionalNullable[float] = UNSET,
+ total_amount: OptionalNullable[float] = UNSET,
total_tax: OptionalNullable[float] = UNSET,
refund_date: OptionalNullable[datetime] = UNSET,
status: Optional[models.RefundStatus] = None,
@@ -1635,7 +1639,6 @@ async def update_async(
Update Refund
:param id: ID of the record you are acting upon.
- :param total_amount: The total amount of the transaction or record
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
@@ -1647,6 +1650,7 @@ async def update_async(
:param currency_rate: Currency Exchange Rate at the time entity was recorded/generated.
:param tax_inclusive: Amounts are including tax
:param sub_total: Subtotal amount, normally before tax.
+ :param total_amount: The total amount of the transaction or record
:param total_tax: Total tax amount applied to this transaction.
:param refund_date: The date of the refund - YYYY-MM-DDThh:mm:ss.sTZD
:param status: Status of refund. Maps to: QBO (limited status), NetSuite CashRefund status, Sage Intacct state (draft/posted/voided), Zoho Books vis_state.
@@ -1692,7 +1696,7 @@ async def update_async(
app_id=app_id,
service_id=service_id,
raw=raw,
- refund=models.RefundInput(
+ refund_update_input=models.RefundUpdateInput(
number=number,
customer=utils.get_pydantic_model(
customer, OptionalNullable[models.LinkedCustomerInput]
@@ -1769,7 +1773,11 @@ async def update_async(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.refund, False, False, "json", models.RefundInput
+ request.refund_update_input,
+ False,
+ False,
+ "json",
+ models.RefundUpdateInput,
),
timeout_ms=timeout_ms,
)
diff --git a/src/apideck_unify/salesreceipts.py b/src/apideck_unify/salesreceipts.py
index 94b254fc7..31d3f74ef 100644
--- a/src/apideck_unify/salesreceipts.py
+++ b/src/apideck_unify/salesreceipts.py
@@ -1248,7 +1248,6 @@ def update(
self,
*,
id: str,
- total_amount: Nullable[float],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
@@ -1262,6 +1261,7 @@ def update(
currency_rate: OptionalNullable[float] = UNSET,
tax_inclusive: OptionalNullable[bool] = UNSET,
sub_total: OptionalNullable[float] = UNSET,
+ total_amount: OptionalNullable[float] = UNSET,
total_tax: OptionalNullable[float] = UNSET,
transaction_date: OptionalNullable[datetime] = UNSET,
payment_method: OptionalNullable[str] = UNSET,
@@ -1314,7 +1314,6 @@ def update(
Update Sales Receipt
:param id: ID of the record you are acting upon.
- :param total_amount: The total amount of the transaction or record
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
@@ -1326,6 +1325,7 @@ def update(
:param currency_rate: Currency Exchange Rate at the time entity was recorded/generated.
:param tax_inclusive: Amounts are including tax
:param sub_total: Subtotal amount, normally before tax.
+ :param total_amount: The total amount of the transaction or record
:param total_tax: Total tax amount applied to this transaction.
:param transaction_date: The date of the sales receipt transaction - YYYY-MM-DDThh:mm:ss.sTZD
:param payment_method: Payment method used for the transaction, such as cash, credit card, bank transfer, or check
@@ -1368,7 +1368,7 @@ def update(
service_id=service_id,
raw=raw,
company_id=company_id,
- sales_receipt=models.SalesReceiptInput(
+ sales_receipt_update_input=models.SalesReceiptUpdateInput(
number=number,
customer=utils.get_pydantic_model(
customer, OptionalNullable[models.LinkedCustomerInput]
@@ -1436,7 +1436,11 @@ def update(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.sales_receipt, False, False, "json", models.SalesReceiptInput
+ request.sales_receipt_update_input,
+ False,
+ False,
+ "json",
+ models.SalesReceiptUpdateInput,
),
timeout_ms=timeout_ms,
)
@@ -1523,7 +1527,6 @@ async def update_async(
self,
*,
id: str,
- total_amount: Nullable[float],
consumer_id: Optional[str] = None,
app_id: Optional[str] = None,
service_id: Optional[str] = None,
@@ -1537,6 +1540,7 @@ async def update_async(
currency_rate: OptionalNullable[float] = UNSET,
tax_inclusive: OptionalNullable[bool] = UNSET,
sub_total: OptionalNullable[float] = UNSET,
+ total_amount: OptionalNullable[float] = UNSET,
total_tax: OptionalNullable[float] = UNSET,
transaction_date: OptionalNullable[datetime] = UNSET,
payment_method: OptionalNullable[str] = UNSET,
@@ -1589,7 +1593,6 @@ async def update_async(
Update Sales Receipt
:param id: ID of the record you are acting upon.
- :param total_amount: The total amount of the transaction or record
:param consumer_id: ID of the consumer which you want to get or push data from
:param app_id: The ID of your Unify application
:param service_id: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
@@ -1601,6 +1604,7 @@ async def update_async(
:param currency_rate: Currency Exchange Rate at the time entity was recorded/generated.
:param tax_inclusive: Amounts are including tax
:param sub_total: Subtotal amount, normally before tax.
+ :param total_amount: The total amount of the transaction or record
:param total_tax: Total tax amount applied to this transaction.
:param transaction_date: The date of the sales receipt transaction - YYYY-MM-DDThh:mm:ss.sTZD
:param payment_method: Payment method used for the transaction, such as cash, credit card, bank transfer, or check
@@ -1643,7 +1647,7 @@ async def update_async(
service_id=service_id,
raw=raw,
company_id=company_id,
- sales_receipt=models.SalesReceiptInput(
+ sales_receipt_update_input=models.SalesReceiptUpdateInput(
number=number,
customer=utils.get_pydantic_model(
customer, OptionalNullable[models.LinkedCustomerInput]
@@ -1711,7 +1715,11 @@ async def update_async(
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
- request.sales_receipt, False, False, "json", models.SalesReceiptInput
+ request.sales_receipt_update_input,
+ False,
+ False,
+ "json",
+ models.SalesReceiptUpdateInput,
),
timeout_ms=timeout_ms,
)