Releases: avadev/Avalara-SDK-Python
25.10.1
A1099
Added
- Endpoint:
GET /w9/forms/{id}/pdf– Generate and download PDF files for W9 forms.- Note: Currently supports W9 forms only.
Changed
Fixed
- Fixed bulk upsert job status counts not updating for batches >1000 forms. Job status now correctly reports
totalRows,totalProcessed,createdValid, etc. after asynchronous processing completes.
25.10.0
Changed
- BREAKING CHANGE:
- Consolidated error response models -
ErrorResponseandErrorResponseItem- for all API endpoints and all types of errors.
Example:{ "title": "One or more validation errors occurred.", "errors": [ { "type": "referenceId", "detail": "'Reference Id' must not be empty." } ] }
- Consolidated error response models -
Fixed
POST/PUT /avalara1099/w9/forms: fix 500 (Internal Server Error) for W9 form type when trying to check if TIN match is allowed with user account on trial period.
25.9.0
A1099
Changed
PUT /avalara1099/w9/forms/{id}:- Handles TIN match for W9s as
POST /avalara1099/w9/formsdo. - Re-sends form request e-mail when e-mail address is updated (only for forms in 'requested/bounced' status).
- Handles TIN match for W9s as
- BREAKING CHANGE:
PUT /avalara1099/w9/forms/{id}: request and response models changed to match same models used on POST endpoint.
Fixed
- Fix invalid updates on
PUT /avalara1099/w9/forms/{id}:- It was allowed sending "id" parameter and "type" body attribute related to different form types.
- New behaviour: returns 400 Bad Request if both information are not related to the same form type (e.g., "W9").
- Fix missing "type" attribute for W9s response bodies (
POST /w9/forms,GET /w9/forms/{id}).
25.8.3
Added
- Endpoint:
POST /w9/forms/$create-and-send-email- A new endpoint that creates a minimal W9/W4/W8 form and automatically sends an email request to the vendor/payee.
- Use Case: Streamlined workflow for creating and immediately requesting form completion from vendors/payees without requiring all form details upfront.
Changed
- BREAKING CHANGE:
-
Consolidated request and response models for
POST,PUT, andGETon/avalara1099/1099/forms(single model per form type).- New request/response models:
Form1099Nec,Form1099Misc,Form1099R,Form1099K,Form1099Int,Form1099Div,Form1095C,Form1095B,Form1042S
- New request/response models:
-
Consolidated request models for
POST /avalara1099/1099/bulk-upsert(single model per form type).- New request/response model:
Form1099ListRequest
- New request/response model:
-
POST /avalara1099/1099/bulk-upsert- new response model:
JobResponse - Response Structure: Simplified bulk upsert job response structure by flattening nested
jobDataobject- Moved all job attributes from
jobData.attributesto root level - Replaced
jobData.links.selfwithlinkfield - Updated
jobData.typetotype - Maintained backward compatibility for
processedFormsarray
- Moved all job attributes from
- new response model:
-
Field name changes for API consistency:
recipientTintotin(affects all form types).fedIncomeTaxWithheldtofederalIncomeTaxWithheld(affects 1099-MISC and 1099-R forms).nameDbatodbaName(affects Issuers)primaryWithholdingAgentNametoName(affects 1042-S form)primaryWithholdingAgentEintoEin(affects 1042-S form)formTypetotype(affectsPOST /avalara1099/1099/bulk-upsert)
-
GET /avalara1099/1099/jobschanged toGET /avalara1099/jobs -
BREAKING CHANGE:
PUT /avalara1099/w9/forms/{id}returns error responses following the current format of the other endpoints, as defined by theErrorResponsemodel.
Example:{ "title": "One or more validation errors occurred.", "errors": [ { "type": "ReferenceId", "detail": "'Reference Id' must not be empty." } ] } -
BREAKING CHANGE: W9 form response structure change for API consistency:
entryStatusandentryStatusDateproperties are now nested within anentryStatusobject:"entryStatus": { "status": "manual", "time": "2025-06-30T09:47:22.094921" }- This affects all W9 form responses (W9, W4, W8-BEN, W8-BEN-E, W8-IMY forms)
-
BREAKING CHANGE: Field name change for API consistency:
-
FedIncomeTaxWithheldtoFederalIncomeTaxWithheld(affects 1099-MISC and 1099-R forms). -
BREAKING CHANGE:
POST /w9forms/{id}/$send-email- Response Type Change:
- Previous: Returned
IW9FormDataModelsOneOf(union of W4FormDataModel, W8BeneFormDataModel, W8BenFormDataModel, W8ImyFormDataModel, W9FormDataModel) - New: Returns
W9FormBaseResponse(same as POST create endpoint)
- Previous: Returned
- Status Code Changes:
- 200 OK: Email sent using existing form (form was already in 'Requested' or 'Bounced' status, or an existing reminder form was found)
- 201 Created: Email sent using newly created minimal form (original form was in 'Signed', 'Manual', or 'Uploaded' status)
- Previous Behavior: Always returned 200 OK with form-specific data model and sent email regardless of current form status.
- New Behavior:
- Returns 201 Created when a new minimal form is automatically created from an existing completed form
- Returns 200 OK when sending a reminder email for an existing requested form
- Now uses consistent response format with other form creation endpoints
- Impact: This is a breaking change. API consumers must update their code to:
- Handle both 200 and 201 status codes as successful responses
- Process the new
W9FormBaseResponseformat instead of the previous form-specific data models
- Response Type Change:
-
BREAKING CHANGE: Federal and State E-file now supports custom date scheduling:
-
federalEFileboolean field replaced withfederalEfileDateDateOnly field (supported for all form types). -
stateEFileboolean field replaced withstateEfileDateDateOnly field (supported for subset of form types and jurisdictions). -
recipientEdeliveryDateDateOnly field added for scheduling recipient e-delivery (supported for all form types).
-
Fixed
- Fix error (500 HTTP Status Code) on
GET /w9/formsandGET /w9/forms/{id}when trying to retrieve W9s with pending TIN match verification.
25.8.2
A1099
- BREAKING CHANGE: FatcaFilingRequirement type changed from string to boolean.
- BREAKING CHANGE: Field name changes for API consistency:
recipientEmailtoemail;recipientNonUsProvincetononUsProvince;foreignProvincetononUsProvince;totalCapitalGainDistrtototalCapitalGainDistributions;unrecapSec1250GaintounrecapturedSection1250Gain.
- BREAKING CHANGE: Several 1099-DIV fields changed from string to decimal:
totalOrdinaryDividendsqualifiedDividendstotalCapitalGainDistributionsunrecapturedSection1250Gainsection1202GaincollectiblesGainsection897OrdinaryDividendssection897CapitalGainnondividendDistributionsfederalIncomeTaxWithheldsection199ADividendsinvestmentExpensesforeignTaxPaidcashLiquidationDistributionsnoncashLiquidationDistributionsexemptInterestDividendsspecifiedPrivateActivityBondInterestDividends
- BREAKING CHANGE: GET
/w9/formsnow returns a paginated list response, and each item in the list follows the same response schema as GET/w9/forms/{id}. - Enhanced bulk upsert
- Endpoint
POST /avalara1099/1099/forms/$bulk-upsertnow returns processed forms for improved user experience: - Small batches (<1000 forms): Returns
processedFormsarray immediately in response, eliminating need for polling jobs endpoint. - Large batches (≥1000 forms): Continues to use asynchronous job processing with job ID for status polling
- Processed forms result set follows the same schema as
GET /avalara1099/1099/formsendpoint for consistency
- Endpoint
- BREAKING CHANGE: Field name changes for API consistency:
25.8.1
A1099 SDK
Added
tinMatchStatusobject added to response (POST w9/forms and GET /w9/forms/{id}).secondTinNoticeproperty was added to the responses.noTinproperty was added to the responses.- Support for new form type
1095-Cin the bulk upsert endpoint.
Changed
- BREAKING CHANGE: 1099-MISC property name changes:
- Added
fishPurchasedForResaleproperty to both request and response; - Added
fatcaFilingRequirementproperty to request and response ; - Renamed
medicalHealthCarePaymentstomedicalAndHealthCarePayments - Renamed
excessGoldenParachutetoexcessGoldenParachutePayments - Renamed
grossAmountPaidAttorneytogrossProceedsPaidToAttorney - Renamed
section409AIncometononqualifiedDeferredCompensation
Customer Impact: Existing 1099-MISC integrations will need to update their property names to match the new naming convention.
25.8.0
What's Changed
- ELR v1.4 APIs are now released!
25.7.2
A1099 SDK
BREAKING CHANGE: Object name changes for SDK:FormRequestCsvBase to FormRequestListItemBase
BREAKING CHANGE: Field name changes for API consistency:PayerMadeDirectSales to DirectSalesIndicator
Customer Impact: Existing SDK integrations will need to update their SDK version to the latest.
In the context of a form list object from GET /1099/forms, name: List1099Forms
-
ValidationErrorApptoValidationErrorResponse -
CoveredIndividualReferencetoCoveredIndividualReferenceResponse -
Form1095BtoForm1095BListItemResponse -
Form1099BasetoForm1099BaseResponse -
Form1099KtoForm1099KListItemResponse -
Form1099ListtoForm1099ListResponse -
Form1099MisctoForm1099MiscListItemResponse -
Form1099NectoForm1099NecListItemResponse -
Form1099RtoForm1099RListItemResponse -
Form1099StatusDetailtoForm1099StatusDetailResponse -
StateEfileStatusDetailApptoStateEfileStatusDetailResponse
25.7.0
A1099 Changes
Fixed
- Update GET /1099/forms to support return types of 1099-NEC and 1099-MISC.
BREAKING CHANGE: Field name changes for API consistency:
- RecipientFederalId renamed to Tin
- FederalIdType renamed to tinType
- streetAddress renamed to address
- streetAddressLine2 renamed to address2
- addressRecipientSecond renamed to address2
25.6.0
What's Changed
- 25.6.0 by @svc-developer in #1
New Contributors
- @svc-developer made their first contribution in #1
Full Changelog: 24.12.1...25.6.0