Create
Create
Use this endpoint to create a Form WTH10001 (Oklahoma Employer’s Withholding Tax Return) for an employer (payer). This return reports:
- Total wages paid
- Oklahoma state income tax is withheld from employees
- Filing period details based on the employer’s assigned filing frequency (monthly or quarterly)
Employers are required to file Form WTH10001 even if no taxes were withheld for the period.
POST StateFilings/OK10001WH/Create Request Body
| Field | Type | Description |
|---|---|---|
| StateWHRecords | Object[] | Object to create Form WH-10001 |
| SequenceId | String | A unique number given by an inbound application to identify failed records. Size Range: ..10 |
| ReturnHeader | Object | Identifies the supporting details of Form WH-10001 |
| Qtr | String | The quarter for which Form WH-10001 needs to be filed.Allowed values"Q1", "Q2", "Q3", "Q4" |
| TaxYr | String | The tax year for which Form WH-10001 needs to be filed.Allowed values2025,2026 |
| Business | Object | The details of the business you’re filing for. |
| BusinessNm | String | Name of the business. Size Range: ..75 |
| PayerRef | string | Optional A unique identifier for each payer completing their information.This identifier can be used in future references to the payer in the API. Size Range: ..50 |
| TradeNm | String | Optional Name under which the business operates. Size Range: ..75 |
| IsEIN | Boolean | When true, it identifies the business with an EIN. |
| EINorSSN | String | When IsEIN is true, use Employer Identification Number (EIN). Size Range: 9-11 |
| String | Email address of the business. Size Range: ..100 | |
| IsForeign | Boolean | When true, it identifies the business as having a foreign address. |
| USAddress | Object | If IsForeign is false, pass the US address of the business. |
| Address1 | String | Employer/Payer’s US address (street address or post office box). Size Range: ..46 |
| Address2 | String | Optional Employer/Payer’s suite or apartment. Size Range: ..46 |
| City | String | Employer/Payer’s city. Size Range: ..50 |
| State | String | Employer/Payer’s state. Size Range: 2 Allowed values"AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", "AS", "FM", "GU", "MH", "MP", "PW", "PR", "VI", "AA", "AE", "AP" |
| ZipCd | String | Employer/Payer’s zip code. Size Range: 5..10 |
| ForeignAddress | Object | If IsForeign is true, pass the foreign address of the business. |
| Address1 | String | Employer/Payer’s foreign address (street address or post office box). Size Range: ..50 |
| Address2 | String | Optional Employer/Payer’s suite or apartment. Size Range: ..50 |
| City | String | Employer/Payer’s city. Size Range: ..50 |
| ProvinceOrStateNm | String | Employer/Payer’s province or state name. Size Range: ..50 |
| Country | String | Employer/Payer’s country. Size Range: 2 Allowed values"AF", "AX", "AL", "AG", "AQ", "AN", "AO", "AV", "AY", "AC", "AR", "AM", "AA", "AT", "AS", "AU", "AJ", "BF", "BA", "FQ", "BG", "BB", "BO", "BE", "BH", "BN", "BD", "BT", "BL", "BK", "BC", "BV", "BR", "IO", "VI", "BX", "BU", "UV", "BM", "BY", "CB", "CM", "CA", "CV", "CJ", "CT", "CD", "CI", "CH", "KT", "IP", "CK", "CO", "CN", "CF", "CG", "CW", "CR", "CS", "IV", "HR", "CU", "UC", "CY", "EZ", "DA", "DX", "DJ", "DO", "DR", "TT", "EC", "EG", "ES", "EK", "ER", "EN", "ET", "FK", "FO", "FM", "FJ", "FI", "FR", "FP", "FS", "GB", "GA", "GG", "GM", "GH", "GI", "GR", "GL", "GJ", "GQ", "GT", "GK", "GV", "PU", "GY", "HA", "HM", "VT", "HO", "HK", "HQ", "HU", "IC", "IN", "ID", "IR", "IZ", "EI", "IS", "IT", "JM", "JN", "JA", "DQ", "JE", "JQ", "JO", "KZ", "KE", "KQ", "KR", "KN", "KS", "KV", "KU", "KG", "LA", "LG", "LE", "LT", "LI", "LY", "LS", "LH", "LU", "MC", "MK", "MA", "MI", "MY", "MV", "ML", "MT", "IM", "RM", "MR", "MP", "MX", "MQ", "MD", "MN", "MG", "MJ", "MH", "MO", "MZ", "WA", "NR", "BQ", "NP", "NL", "NC", "NZ", "NU", "NG", "NI", "NE", "NF", "CQ", "NO", "MU", "OC", "PK", "PS", "LQ", "PM", "PP", "PF", "PA", "PE", "RP", "PC", "PL", "PO", "RQ", "QA", "RO", "RS", "RW", "TB", "RN", "WS", "SM", "TP", "SA", "SG", "RI", "SE", "SL", "SN", "NN", "LO", "SI", "BP", "SO", "SF", "SX", "OD", "SP", "PG", "CE", "SH", "SC", "ST", "SB", "VC", "SU", "NS", "SV", "WZ", "SW", "SZ", "SY", "TW", "TI", "TZ", "TH", "TO", "TL", "TN", "TD", "TS", "TU", "TX", "TK", "TV", "UG", "UP", "AE", "UK", "UY", "UZ", "NH", "VE", "VM", "VQ", "WQ", "WF", "WI", "YM", "ZA", "ZI" |
| PostalCd | String | Employer/Payer’s postal code. Size Range: ..16 |
| ReturnData | Object | Identifies the Form WH-10001 |
| WTH10001 | Object | Oklahoma withholding tax returns. |
| WHIdNum | String | Oklahoma withholding file number. Size Range: ..9 |
| IsFinalReturn | Boolean | When true, identifies that the payer has closed the withholding account. |
| DateOperationCeased | String | Withholding account closed date. Enter the date in the format: MM/DD/YYYY or MM-DD-YYYY (Example: 01/25/2026). |
| IsChangeOfAdd | Boolean | When true, identifies that the payer has changed the address. |
| EmpCount | Number | Number of employees. Size Range: 0-9999999 |
| L1WagesPaid | Number | Total Wages paid this quarter Size Range: 0-99999999.99 |
| L2WHAmt | Number | Quarterly Oklahoma income tax withheld from all sources. Size Range: 0-99999999.99 |
| L3Interest | Number | Total interest due amount, if applicable. Size Range: 0-99999999.99 |
| L4Penalty | Number | Total penalty amount, if applicable. Size Range: 0-99999999.99 |
| L5TotAmt | Number | Total due amount Size Range: 0-99999999.99 |
Response Body
| Field | Type | Description |
|---|---|---|
| SubmissionId | Guid | Unique identifier of a submission |
| SuccessRecords | object[] | It will show the detailed information about the success status of Form WH-10001 Records |
| SequenceId | string | A unique number given by an inbound application to identify a particular record. |
| BusinessId | Guid | Unique identifier of a Business |
| PayerRef | string | Unique identifier of the payer |
| RecordId | Guid | A unique identifier generated by TaxBandits when a WH-10001 return is created |
| FormType | string | Denotes the type of withholding form WH-10001. |
| Status | string | Returns the record status of the return. |
| StatusTs | string | Date and time of the return created. |
| Info | string | Returns the information about the return |
| Errors | object[] | Shows error information of state returns of Form WH-1001 |
| Id | string | Returns the validation error ID. |
| Name | string | Name of the validation error. |
| Message | string | Description of the validation error. |
| ErrorRecords | object[] | It will show the detailed information about the error status of Form WH-1001 Records. |
| SequenceId | string | A unique number given by an inbound application to identify a particular record. The Sequence ID will be returned in the Response for your reference. |
| RecordId | Guid | Unique identifier of a record |
| Errors | object[] | Shows detailed error information |
| Id | string | Returns the validation error ID |
| Name | string | Name of the validation error |
| Message | string | Description of the validation error |
| Errors | object[] | Shows detailed error information. |
| Id | string | Returns the validation error ID. |
| Name | string | Name of the validation error. |
| Message | string | Description of the validation error. |
Request JSON
- Sample 1
- Sample 2
- Sample 3
- Sample 4
- Sample 5
- Sample 6
Create an Oklahoma State WH return with Business TIN as EIN and a U.S. business address
{
"StateWHRecords": [
{
"SequenceId": "001",
"ReturnHeader": {
"Qtr": "Q2",
"TaxYr": "2026",
"Business": {
"BusinessNm": "Snowdaze LLC",
"IsEIN": true,
"EINorSSN": "45-1222565",
"BusinessType": "PART",
"SigningAuthority": {
"Name": "John",
"Phone": "3231231232",
"BusinessMemberType": "OWNER"
},
"IsForeign": false,
"USAddress": {
"Address1": "789 Pine Street",
"Address2": "Floor 5",
"City": "Birmingham",
"State": "OK",
"ZipCd": "73001"
}
}
},
"ReturnData": {
"FormWTH10001": {
"WHIdNum": "WTH-12345678-12",
"IsFinalReturn": false,
"DateOperationCeased": null,
"IsChangeOfAddr": false,
"EmpCount": "2",
"L1WagesPaid": "2000.00",
"L2WHAmt": "1000.00",
"L3Interest": "20.00",
"L4Penalty": "10.00",
"L5TotAmt": "1030.00"
}
}
}
]
}
Create an Oklahoma State WH return with a Foreign business address as foreign
{
"StateWHRecords": [
{
"SequenceId": "001",
"ReturnHeader": {
"Qtr": "Q2",
"TaxYr": "2026",
"Business": {
"BusinessNm": "Snowdaze LLC",
"IsEIN": true,
"EINorSSN": "45-1222525",
"BusinessType": "PART",
"SigningAuthority": {
"Name": "John",
"Phone": "3231231232",
"BusinessMemberType": "OWNER"
},
"IsForeign": true,
"ForeignAddress": {
"Address1": "25 King Street",
"Address2": "Suite 500",
"City": "Toronto",
"ProvinceOrStateNm": "Ontario",
"Country": "CA",
"PostalCd": "M5H2N2"
}
}
},
"ReturnData": {
"FormWTH10001": {
"WHIdNum": "WTH-12345678-13",
"IsFinalReturn": false,
"DateOperationCeased": null,
"IsChangeOfAddr": false,
"EmpCount": "2",
"L1WagesPaid": "2000.00",
"L2WHAmt": "1000.00",
"L3Interest": "0.00",
"L4Penalty": "0.00",
"L5TotAmt": "1000.00"
}
}
}
]
}
Create an Oklahoma State WH return using an existing BusinessId
{
"StateWHRecords": [
{
"SequenceId": "001",
"ReturnHeader": {
"Qtr": "Q2",
"TaxYr": "2026",
"Business": {
"BusinessId": "2b86fd79-61cf-43e8-a5c6-8d24e56d1001"
}
},
"ReturnData": {
"FormWTH10001": {
"WHIdNum": "WTH-12345678-13",
"IsFinalReturn": false,
"DateOperationCeased": null,
"IsChangeOfAddr": false,
"EmpCount": "2",
"L1WagesPaid": "2000.00",
"L2WHAmt": "1000.00",
"L3Interest": "0.00",
"L4Penalty": "0.00",
"L5TotAmt": "1000.00"
}
}
}
]
}
Create an Oklahoma State WH return with Interest and Penalty amounts
{
"StateWHRecords": [
{
"SequenceId": "001",
"ReturnHeader": {
"Qtr": "Q2",
"TaxYr": "2026",
"Business": {
"BusinessNm": "Snowdaze LLC",
"IsEIN": true,
"EINorSSN": "45-1244565",
"BusinessType": "PART",
"SigningAuthority": {
"Name": "John",
"Phone": "3231231232",
"BusinessMemberType": "OWNER"
},
"IsForeign": false,
"USAddress": {
"Address1": "789 Pine Street",
"Address2": "Floor 5",
"City": "Birmingham",
"State": "OK",
"ZipCd": "73001"
}
}
},
"ReturnData": {
"FormWTH10001": {
"WHIdNum": "WTH-12345678-15",
"IsFinalReturn": false,
"DateOperationCeased": null,
"IsChangeOfAddr": false,
"EmpCount": "10",
"L1WagesPaid": "25000.00",
"L2WHAmt": "3200.00",
"L3Interest": "75.00",
"L4Penalty": "25.00",
"L5TotAmt": "3300.00"
}
}
}
]
}
Create an Oklahoma State WH return with IsChangeOfAddr as true
{
"StateWHRecords": [
{
"SequenceId": "001",
"ReturnHeader": {
"Qtr": "Q2",
"TaxYr": "2026",
"Business": {
"BusinessNm": "Snowdaze LLC",
"IsEIN": true,
"EINorSSN": "45-1422565",
"BusinessType": "PART",
"SigningAuthority": {
"Name": "John",
"Phone": "3231231232",
"BusinessMemberType": "OWNER"
},
"IsForeign": false,
"USAddress": {
"Address1": "789 Pine Street",
"Address2": "Floor 5",
"City": "Birmingham",
"State": "OK",
"ZipCd": "73001"
}
}
},
"ReturnData": {
"FormWTH10001": {
"WHIdNum": "WTH-12345678-18",
"IsFinalReturn": false,
"DateOperationCeased": null,
"IsChangeOfAddr": true,
"EmpCount": "150",
"L1WagesPaid": "350000.00",
"L2WHAmt": "45000.00",
"L3Interest": "0.00",
"L4Penalty": "0.00",
"L5TotAmt": "45000.00"
}
}
}
]
}
Sample with multiple OK state forms using the single payload
{
"StateWHRecords": [
{
"SequenceId": "001",
"ReturnHeader": {
"Qtr": "Q2",
"TaxYr": "2026",
"Business": {
"BusinessNm": "Snowdaze LLC",
"IsEIN": true,
"EINorSSN": "45-1422567",
"BusinessType": "PART",
"SigningAuthority": {
"Name": "John",
"Phone": "3231231232",
"BusinessMemberType": "OWNER"
},
"IsForeign": false,
"USAddress": {
"Address1": "789 Pine Street",
"Address2": "Floor 5",
"City": "Birmingham",
"State": "OK",
"ZipCd": "73001"
}
}
},
"ReturnData": {
"FormWTH10001": {
"WHIdNum": "WTH-12345678-18",
"IsFinalReturn": false,
"DateOperationCeased": null,
"IsChangeOfAddr": true,
"EmpCount": "150",
"L1WagesPaid": "350000.00",
"L2WHAmt": "45000.00",
"L3Interest": "0.00",
"L4Penalty": "0.00",
"L5TotAmt": "45000.00"
}
}
},{
"SequenceId": "004",
"ReturnHeader": {
"Qtr": "Q2",
"TaxYr": "2026",
"Business": {
"BusinessNm": "Horizon LLC",
"IsEIN": true,
"EINorSSN": "45-1426766",
"BusinessType": "PART",
"SigningAuthority": {
"Name": "John",
"Phone": "3231231232",
"BusinessMemberType": "OWNER"
},
"IsForeign": false,
"USAddress": {
"Address1": "789 Pine Street",
"Address2": "Floor 5",
"City": "Birmingham",
"State": "OK",
"ZipCd": "73001"
}
}
},
"ReturnData": {
"FormWTH10001": {
"WHIdNum": "WTH-12345678-18",
"IsFinalReturn": false,
"DateOperationCeased": null,
"IsChangeOfAddr": true,
"EmpCount": "150",
"L1WagesPaid": "350000.00",
"L2WHAmt": "45000.00",
"L3Interest": "0.00",
"L4Penalty": "0.00",
"L5TotAmt": "45000.00"
}
}
}
]
}
Response JSON
- 200
- 300
- 400
- 401
Success Response - This is a sample response for successful API requests.
{
"StatusCode": "200",
"StatusName": "Ok",
"StatusMessage": "Successful API call",
"SubmissionId": "019fb32e-08ba-73da-adad-24968d6bead1",
"SuccessRecords": [
{
"SequenceId": "001",
"BusinessId": "107b760d-e283-4848-81bc-1d972004dac5",
"PayerRef": null,
"RecordId": "019fb32e-09c7-7768-9c9c-ba19fed54620",
"FormType": "WTH10001",
"Status": "CREATED",
"StatusTs": "2026-07-30 09:19:26 -04:00",
"Info": null,
"Errors": null
}
],
"ErrorRecords": null,
"Errors": null
}
Multi-status Response - You'll get the below response when multiple statuses are included.
{
"StatusCode": "300",
"StatusName": "MultiStatus",
"StatusMessage": "Multiple statuses are available for the request",
"SubmissionId": "019fb336-9007-7073-9aff-9e54d21ae0e6",
"SuccessRecords": [
{
"SequenceId": "001",
"BusinessId": "1289fd2b-0b3b-495d-91b3-9a0dafb5ad0b",
"PayerRef": null,
"RecordId": "019fb336-9116-74af-899f-e172fdd0a462",
"FormType": "WTH10001",
"Status": "CREATED",
"StatusTs": "2026-07-30 09:28:45 -04:00",
"Info": null,
"Errors": null
}
],
"ErrorRecords": [
{
"SequenceId": "004",
"RecordId": null,
"Errors": [
{
"Id": "S00-001429",
"Name": "StateWHRecords[1].ReturnData.FormWTH10001.L1WagesPaid",
"Message": "Total Gross wages paid for the quarter is required"
}
]
}
],
"Errors": [
{
"Id": "S00-000184",
"Name": "Error Records",
"Message": "Some of the records are errored. Please read the Error Records for more details."
}
]
}
Bad Request Response - You'll get the below response when your API requests contain any validation errors.
{
"StatusCode": "400",
"StatusName": "BadRequest",
"StatusMessage": "Validation error has occurred",
"SubmissionId": null,
"SuccessRecords": null,
"ErrorRecords": [
{
"SequenceId": "001",
"RecordId": null,
"Errors": [
{
"Id": "S00-001444",
"Name": "StateWHRecords[0].ReturnData.FormWTH10001.L2WHAmt",
"Message": "Invalid total tax withheld. Total tax withheld should be less than total gross wages"
}
]
}
],
"Errors": null
}
Unauthorized Response - You'll get the below response when your API requests don't contain valid authentication credentials.
{
"StatusCode": 401,
"StatusMessage": "Unauthorized",
"StatusName": "Invalid authorization credentials",
"Errors": [
{
"Id": "AUTH-100018",
"Name": "Authorization",
"Message": "JWT EXPIRED"
}
]
}