The Sales Invoice Line API can create a sales invoice line number data with a master id, corresponding to workshop id and sales invoice id based on region/country.

Overview

Http Method

POST

Authentication

Basic Auth.

Http Status Codes

200 - OK with data in response body

400 - In case your request is malformed or contains insufficient information - Bad Request (Validation error)

401 - Wrong or missing auth header

403 - In case of Invalid User trying to access the information

50x - Internal Server Error

Versioning

The initial API version is v1.0, and is namespaced into endpoint route -
https://bosch-garage-management.com/WSMS_Q_SalesInvoiceLineTransactionAPI/api/SalesInvoiceLine/CreateSalesInvoiceLine.
The API version will be increased due to a backwards-incompatible changes.v

Schema

All information is sent and received as JSON data interchange format over HTTPS. Timestamps in API responses will always include timezone (typically UTC). Always provide timezones in API requests (preferably UTC).

Http Path

https://bosch-garage-management.com/WSMS_Q_SalesInvoiceLineTransactionAPI/api/SalesInvoiceLine/CreateSalesInvoiceLine

Http Path Parameters

None

Header Parameters

None

Request Parameters

None

Request Fields
FieldName DataType Mandatory Description DataLength Remarks

Workshop Id

Int

Yes

Workshop identifier

Primary Key

Invoice ID

varchar

Yes

Invoice identifier

20

Primary Key

LineNo

Int

Yes

Invoice line number

Primary Key

LineType

varchar

Yes

Invoice type to identify the line item is for labor or Part

50

Quantity

Float

Yes

Invoiced Quantity

Unit Price

Float

Yes

Unit price of the line item

Price

Float

Yes

line item price after discount

Discount

Float

No

discount price

UOM

varchar

No

Unit of Measure

50

PartID

varchar

Yes

Part Identifier

20

Part Description

varchar

No

Part Description

20

LaborID

varchar

Yes

Labor Identifier

20

Labor Rate

Float

Yes

labor charge for the services Provided

Charged Hours

Float

No

Number of hours charged for labors work

Worked hours

Float

No

Number of hours the labor has worked

Employee ID

varchar

No

For labor Line Items

20

Request Body
{
    "WorkshopId":"5160276685",
    "InvoiceId":"SI01/000693",
    "LineNumber":"10000",
    "LineType":"3",
    "Quantity":"0",
    "UnitPrice":"0",
    "UOM":"TimeUnit",
    "PartID":"12",
    "PartDescription":"Test1",
    "LaborId":"1",
    "LaborRate":"0",
    "ChargedHours":"0",
    "WorkedHours":"0",
    "EmployeeId":"1"
   }
Response Headers

None

Responses

201 OK

{
    "message": "One record(s) failed to process.",
    "totalRecords": 2,
    "failedRecords": 1,
    "successRecords": 1,
    "processedFailedRecords": [
    {
    "lineNumber": 10000,
    "workshopId": "5160276685",
    "invoiceId": "SI01/000693",
    "lineType": "3",
    "quantity": 0,
    "unitPrice": 0,
    "price": 0,
    "discount": 0,
    "uom": "TimeUnit",
    "partID": "12",
    "partDescription": "Test1",
    "laborId": "1",
    "laborRate": 0,
    "chargedHours": 0,
    "workedHours": 0,
    "employeeId": "1",
    "errorMessage": "Price should not be empty ."
    }
  }

Authentication

Authorization

The API endpoint requires client authorization. Every request must select Basic Auth mode from Authorization section if using Postman Application and provide the username and password.

Content type of request payload

All information is sent and received as JSON data interchange format over HTTPS. Every request must select raw json as a data format for the request payload from the body section if using Postman Application and specify the content accordingly.

API Specification

Steps to use Postman Application to send the API Post Http Request

1. Open Postman:
• Launch the Postman application.

2. Create a New Request:
• In the Postman app, click on the "New" button (usually located at the top-left corner) to create a new request.

3. Choose the Request Type:
• In the request editor, you will see a dropdown menu next to the URL field. Select "POST" from this dropdown.

4. Enter the Request URL:
• In the URL field (located next to the request type dropdown), enter the URL of the endpoint where you want to send the POST request. Make sure it's the correct URL for the API or service you are working with.

5. Authentication:
• As the API requires authentication, you can set it up in the "Authorization" tab.Click on the "Basic Auth" from dropdown, and enter the username and password.

6. Configure the Request Body:
• In the "Body" tab, select "raw" and choose "JSON (application/json)" as the data format. Enter your JSON data in the provided text field.

7. Send the Request:
• Once you've configured all the necessary details for your POST request, click the "Send" button (usually a blue "Send" button located at the top-right corner). Postman will send the POST request to the specified URL with the provided headers and payload.

8. View the Response:
• Postman will display the response from the server, including the status code, headers, and response body. You can review the response to ensure that your request was successful

Postman call request payload
[
    {
    "WorkshopId":"5160276685",
    "InvoiceId":"SI01/000693",
    "LineNumber":"10000",
    "LineType":"3",
    "Quantity":"0",
    "UnitPrice":"0",
    "UOM":"TimeUnit",
    "PartID":"12",
    "PartDescription":"Test1",
    "LaborId":"1",
    "LaborRate":"0",
    "ChargedHours":"0",
    "WorkedHours":"0",
    "EmployeeId":"1"
    }
   ]
Postman HTTP response body

    HTTP/1.1 200 OK
    {
    "message": "One record(s) failed to process.",
    "totalRecords": 2,
    "failedRecords": 1,
    "successRecords": 1,
    "processedFailedRecords": [
    {
    "lineNumber": 10000,
    "workshopId": "5160276685",
    "invoiceId": "SI01/000693",
    "lineType": "3",
    "quantity": 0,
    "unitPrice": 0,
    "price": 0,
    "discount": 0,
    "uom": "TimeUnit",
    "partID": "12",
    "partDescription": "Test1",
    "laborId": "1",
    "laborRate": 0,
    "chargedHours": 0,
    "workedHours": 0,
    "employeeId": "1",
    "errorMessage": "Price should not be empty ."
    }
   ]
  }