Releases: avadev/Avalara-SDK-PHP
25.10.0
Changed
- BREAKING CHANGE:
- Consolidated error response models -
ErrorResponse
andErrorResponseItem
- 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/forms
do. - 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
, andGET
on/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
jobData
object- Moved all job attributes from
jobData.attributes
to root level - Replaced
jobData.links.self
withlink
field - Updated
jobData.type
totype
- Maintained backward compatibility for
processedForms
array
- Moved all job attributes from
- new response model:
-
Field name changes for API consistency:
recipientTin
totin
(affects all form types).fedIncomeTaxWithheld
tofederalIncomeTaxWithheld
(affects 1099-MISC and 1099-R forms).nameDba
todbaName
(affects Issuers)primaryWithholdingAgentName
toName
(affects 1042-S form)primaryWithholdingAgentEin
toEin
(affects 1042-S form)formType
totype
(affectsPOST /avalara1099/1099/bulk-upsert
)
-
GET /avalara1099/1099/jobs
changed toGET /avalara1099/jobs
-
BREAKING CHANGE:
PUT /avalara1099/w9/forms/{id}
returns error responses following the current format of the other endpoints, as defined by theErrorResponse
model.
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:
entryStatus
andentryStatusDate
properties are now nested within anentryStatus
object:"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:
-
FedIncomeTaxWithheld
toFederalIncomeTaxWithheld
(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
W9FormBaseResponse
format instead of the previous form-specific data models
- Response Type Change:
-
BREAKING CHANGE: Federal and State E-file now supports custom date scheduling:
federalEFile
boolean field replaced withfederalEfileDate
DateOnly field (supported for all form types).stateEFile
boolean field replaced withstateEfileDate
DateOnly field (supported for subset of form types and jurisdictions).recipientEdeliveryDate
DateOnly field added for scheduling recipient e-delivery (supported for all form types).
-
Fixed
- Fix error (500 HTTP Status Code) on
GET /w9/forms
andGET /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:
recipientEmail
toemail
;recipientNonUsProvince
tononUsProvince
;foreignProvince
tononUsProvince
;totalCapitalGainDistr
tototalCapitalGainDistributions
;unrecapSec1250Gain
tounrecapturedSection1250Gain
.
- BREAKING CHANGE: Several 1099-DIV fields changed from string to decimal:
totalOrdinaryDividends
qualifiedDividends
totalCapitalGainDistributions
unrecapturedSection1250Gain
section1202Gain
collectiblesGain
section897OrdinaryDividends
section897CapitalGain
nondividendDistributions
federalIncomeTaxWithheld
section199ADividends
investmentExpenses
foreignTaxPaid
cashLiquidationDistributions
noncashLiquidationDistributions
exemptInterestDividends
specifiedPrivateActivityBondInterestDividends
- BREAKING CHANGE: GET
/w9/forms
now 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-upsert
now returns processed forms for improved user experience: - Small batches (<1000 forms): Returns
processedForms
array 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/forms
endpoint for consistency
- Endpoint
- BREAKING CHANGE: Field name changes for API consistency:
25.8.1
A1099 SDK
Added
tinMatchStatus
object added to response (POST w9/forms and GET /w9/forms/{id}).secondTinNotice
property was added to the responses.noTin
property was added to the responses.- Support for new form type
1095-C
in the bulk upsert endpoint.
Changed
- BREAKING CHANGE: 1099-MISC property name changes:
- Added
fishPurchasedForResale
property to both request and response; - Added
fatcaFilingRequirement
property to request and response ; - Renamed
medicalHealthCarePayments
tomedicalAndHealthCarePayments
- Renamed
excessGoldenParachute
toexcessGoldenParachutePayments
- Renamed
grossAmountPaidAttorney
togrossProceedsPaidToAttorney
- Renamed
section409AIncome
tononqualifiedDeferredCompensation
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
-
ValidationErrorApp
toValidationErrorResponse
-
CoveredIndividualReference
toCoveredIndividualReferenceResponse
-
Form1095B
toForm1095BListItemResponse
-
Form1099Base
toForm1099BaseResponse
-
Form1099K
toForm1099KListItemResponse
-
Form1099List
toForm1099ListResponse
-
Form1099Misc
toForm1099MiscListItemResponse
-
Form1099Nec
toForm1099NecListItemResponse
-
Form1099R
toForm1099RListItemResponse
-
Form1099StatusDetail
toForm1099StatusDetailResponse
-
StateEfileStatusDetailApp
toStateEfileStatusDetailResponse
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
24.12.2
Update Readme.md with the latest and greatest