All requests to the API must be authenticated. The authentication is done using OAuth2.0. Refer to the OAuth2.0 documentation for instructions on how to setup Oauth2 authentication.
POST - Create a new resource
GET - Read one or more resources
PUT - Replace a resource
PATCH - Partially update a resource
DELETE - Delete a resource
200 - OK. The request was successful.
201 - Created. The request was successful and a new resource was created.
400 - Bad request. The request was invalid. See the response body for details.
401 - Unauthorized. The request was not authenticated. See the response body for details.
404 - Not found. The requested resource was not found.
429 - Too many requests. The request was throttled. Investigate Retry-After header
500 - Internal server error. An error occurred in the server. See the response body for details.
If the API returns an error, the response body will contain an error object. The error object contains a message and a list of errors.
If a 4xx status code is returned, clients must take care not to retry the request without modification. The exception here is 429 too many requests that can be retried after a period given in Retry-After header.
If a 5xx status code is returned, clients may retry the request. It is preferable to use an exponential backoff strategy when retrying
Companies, business units and persons need to be mapped to their corresponding entities in Jakamo. To do this, Jakamo has a simple mapping table feature that can be used to map external identifiers to Jakamo entities. To setup a mapping table in Jakamo, see: Mapping Tables
To use a mapped identifier, send the identifier and set type of the identifier to MAPPING_TABLE_ENTRY:
"authorPerson": {
"identifier": "msierra",
"identifierType": "MAPPING_TABLE_ENTRY"
},
Follow these instructions to get started with development.
Setup Authentication Follow instructions at OAuth2.0 documentation and setup a new OAUTH2 application. Add credentials for any applications you intend to integrate. Make sure you have a Buyer API integration enabled in Jakamo and the OAUTH2 application connected to that integration
Setup Person and Company Mapping Follow instructions at Mapping Tables and create a mapping table for your suppliers and if necessary, business units. Mapping strings for persons can be entered directly on the integrations page, there is no mapping table support for them yet. After setting up the mapping table, make sure to connect it to the Buyer API Integration on the integrations page
Download this open api specification. You can open it for example using Postman or alternatively you can generate a client using some open api tooling. Setup Oauth2 authentication and you should be able to interact with the API. For development, use https://demo.thejakamo.com as the base url.
Create a new Request For Quotation. Key features:
| rfqNumber required | string [ 1 .. 100 ] characters Unique required identifier of the RFQ. |
| title required | string [ 1 .. 500 ] characters Display name of the RFQ |
| description | string or null General description of the RFQ |
| projectNumber | string or null Project number of the RFQ. |
| currency required | string = 3 characters ^[A-Z]{3}$ Desired currency for the RFQ. Use ISO 4217 currency codes |
| publish | boolean or null Should the RFQ be published. It will not be shared to recipients until published. If not published, users may publish it later in Jakamo UI |
| offerDueDate required | string <date> non-empty Due date for the suppliers to submit their quotations. |
required | object (Rfqs.Models.PersonModel) A person in Jakamo |
object (Rfqs.Models.BusinessUnitModel) A business unit in Jakamo | |
Array of objects or null (Rfqs.Models.CompanyModel) List of suppliers | |
Array of objects or null (Rfqs.Models.PersonModel) List of responsible persons from the buyer side | |
Array of objects or null (Rfqs.Models.RfqItem) Suppliers are requested to provide information for these fields for each requested item | |
Array of objects or null (Rfqs.Models.QuestionModel) List of questions that suppliers must answer when replying to the RFQ. Questions can be either general questions (applicable to the entire RFQ) or line questions (applicable to specific RFQ items). General questions (IsQuestionForLines = false):
Line questions (IsQuestionForLines = true):
Supported input types:
| |
| requestedProperties | Array of strings or null Suppliers are requested to provide information for these fields for each requested item. Leave empty to use default values Possible values: Description: item description SellersItemNumber: item number on supplier side PriceWithoutVat: price with VAT included PriceWithVat: price without VAT included EstimatedDeliveryDate: estimated date when the supplier can deliver the requested goods LeadTimeDays: lead time of the requested goods DiscountPercent: discount percent from supplier side MinimumBatchSize: minimum batch size the supplier can provide CountryOfOrigin: country of origin of the requested goods CustomsCode: customs code of the requested goods AdditionalInformation: any additional information |
{- "rfqNumber": "RFQ12345",
- "title": "RFQ12345",
- "description": "Request for quotation for new project",
- "projectNumber": "P55512345",
- "currency": "EUR",
- "publish": true,
- "offerDueDate": "2038-01-19",
- "authorPerson": {
- "identifier": "hank-silva",
- "identifierType": "MAPPING_TABLE_ENTRY"
}, - "authorBusinessUnit": {
- "identifier": "east-business",
- "identifierType": "MAPPING_TABLE_ENTRY"
}, - "suppliers": [
- {
- "identifier": "supplier-a",
- "identifierType": "MAPPING_TABLE_ENTRY"
}, - {
- "identifier": "supplier-b",
- "identifierType": "MAPPING_TABLE_ENTRY"
}
], - "responsiblePersons": [
- {
- "identifier": "tim-calahan",
- "identifierType": "MAPPING_TABLE_ENTRY"
}
], - "requestedItems": [
- {
- "itemIdentifier": "10",
- "description": "High-strength steel bolt M12x40mm, grade 8.8, zinc plated",
- "buyersItemNumber": "BYR-12345-A",
- "itemName": "M12 Hex Bolt",
- "requestedQuantities": [
- 100,
- 500,
- 1000
], - "quantityUnit": "PCS",
- "drawingNumber": "DWG-12345-03",
- "revision": "Rev C",
- "requestedDeliveryDate": "2038-03-15"
}, - {
- "itemIdentifier": "20",
- "description": "Stainless steel washer M12, DIN 125A",
- "buyersItemNumber": "BYR-12346-B",
- "itemName": "M12 Washer",
- "requestedQuantities": [
- 200,
- 1000,
- 2000
], - "quantityUnit": "PCS",
- "annualVolume": 10000,
- "minimumOrderQuantity": 100,
- "requestedDeliveryDate": "2038-03-15"
}, - {
- "itemIdentifier": "30",
- "description": "Hydraulic cylinder assembly",
- "buyersItemNumber": "BYR-78901-C",
- "itemName": "Hydraulic Cylinder HC-250",
- "requestedQuantities": [
- 5,
- 10
], - "quantityUnit": "PCS",
- "contractNumber": "CNT-2024-00123",
- "drawingNumber": "DWG-78901-05",
- "additionalInformation": "Requires pressure test certificate and 24-month warranty",
- "requestedDeliveryDate": "2038-04-30"
}
], - "questions": [
- {
- "questionId": "cert-001",
- "orderNumber": 1,
- "inputType": "Select",
- "questionText": "What quality certification does your company hold?",
- "isQuestionForLines": false,
- "isRequired": true,
- "isCancelled": false,
- "valueOptions": [
- "ISO 9001",
- "ISO 14001",
- "None",
- "Other"
]
}, - {
- "questionId": "lead-time-001",
- "orderNumber": 2,
- "inputType": "Number",
- "questionText": "Lead time in days for this item",
- "isQuestionForLines": true,
- "isRequired": true,
- "isCancelled": false,
- "valueOptions": null
}
], - "requestedProperties": [
- "PriceWithoutVat",
- "LeadTimeDays",
- "AdditionalInfo"
]
}{ }Updates an existing RFQ.
| rfqNumber required | string [ 1 .. 100 ] characters Unique required identifier of the RFQ. |
| title required | string [ 1 .. 500 ] characters Display name of the RFQ |
| description | string or null General description of the RFQ |
| projectNumber | string or null Project number of the RFQ. |
| currency required | string = 3 characters ^[A-Z]{3}$ Desired currency for the RFQ. Use ISO 4217 currency codes |
| publish | boolean or null Should the RFQ be published. It will not be shared to recipients until published. If not published, users may publish it later in Jakamo UI |
| offerDueDate required | string <date> non-empty Due date for the suppliers to submit their quotations. |
required | object (Rfqs.Models.PersonModel) A person in Jakamo |
object (Rfqs.Models.BusinessUnitModel) A business unit in Jakamo | |
Array of objects or null (Rfqs.Models.CompanyModel) List of suppliers | |
Array of objects or null (Rfqs.Models.PersonModel) List of responsible persons from the buyer side | |
Array of objects or null (Rfqs.Models.RfqItem) Suppliers are requested to provide information for these fields for each requested item | |
Array of objects or null (Rfqs.Models.QuestionModel) List of questions that suppliers must answer when replying to the RFQ. Questions can be either general questions (applicable to the entire RFQ) or line questions (applicable to specific RFQ items). General questions (IsQuestionForLines = false):
Line questions (IsQuestionForLines = true):
Supported input types:
| |
| requestedProperties | Array of strings or null Suppliers are requested to provide information for these fields for each requested item. Leave empty to use default values Possible values: Description: item description SellersItemNumber: item number on supplier side PriceWithoutVat: price with VAT included PriceWithVat: price without VAT included EstimatedDeliveryDate: estimated date when the supplier can deliver the requested goods LeadTimeDays: lead time of the requested goods DiscountPercent: discount percent from supplier side MinimumBatchSize: minimum batch size the supplier can provide CountryOfOrigin: country of origin of the requested goods CustomsCode: customs code of the requested goods AdditionalInformation: any additional information |
{- "rfqNumber": "RFQ12345",
- "title": "RFQ12345",
- "description": "Request for quotation for new project",
- "projectNumber": "P55512345",
- "currency": "EUR",
- "publish": true,
- "offerDueDate": "2038-01-19",
- "authorPerson": {
- "identifier": "hank-silva",
- "identifierType": "MAPPING_TABLE_ENTRY"
}, - "authorBusinessUnit": {
- "identifier": "east-business",
- "identifierType": "MAPPING_TABLE_ENTRY"
}, - "suppliers": [
- {
- "identifier": "supplier-a",
- "identifierType": "MAPPING_TABLE_ENTRY"
}, - {
- "identifier": "supplier-b",
- "identifierType": "MAPPING_TABLE_ENTRY"
}
], - "responsiblePersons": [
- {
- "identifier": "tim-calahan",
- "identifierType": "MAPPING_TABLE_ENTRY"
}
], - "requestedItems": [
- {
- "itemIdentifier": "10",
- "description": "High-strength steel bolt M12x40mm, grade 8.8, zinc plated",
- "buyersItemNumber": "BYR-12345-A",
- "itemName": "M12 Hex Bolt",
- "requestedQuantities": [
- 100,
- 500,
- 1000
], - "quantityUnit": "PCS",
- "drawingNumber": "DWG-12345-03",
- "revision": "Rev C",
- "requestedDeliveryDate": "2038-03-15"
}, - {
- "itemIdentifier": "20",
- "description": "Stainless steel washer M12, DIN 125A",
- "buyersItemNumber": "BYR-12346-B",
- "itemName": "M12 Washer",
- "requestedQuantities": [
- 200,
- 1000,
- 2000
], - "quantityUnit": "PCS",
- "annualVolume": 10000,
- "minimumOrderQuantity": 100,
- "requestedDeliveryDate": "2038-03-15"
}, - {
- "itemIdentifier": "30",
- "description": "Hydraulic cylinder assembly",
- "buyersItemNumber": "BYR-78901-C",
- "itemName": "Hydraulic Cylinder HC-250",
- "requestedQuantities": [
- 5,
- 10
], - "quantityUnit": "PCS",
- "contractNumber": "CNT-2024-00123",
- "drawingNumber": "DWG-78901-05",
- "additionalInformation": "Requires pressure test certificate and 24-month warranty",
- "requestedDeliveryDate": "2038-04-30"
}
], - "questions": [
- {
- "questionId": "cert-001",
- "orderNumber": 1,
- "inputType": "Select",
- "questionText": "What quality certification does your company hold?",
- "isQuestionForLines": false,
- "isRequired": true,
- "isCancelled": false,
- "valueOptions": [
- "ISO 9001",
- "ISO 14001",
- "None",
- "Other"
]
}, - {
- "questionId": "lead-time-001",
- "orderNumber": 2,
- "inputType": "Number",
- "questionText": "Lead time in days for this item",
- "isQuestionForLines": true,
- "isRequired": true,
- "isCancelled": false,
- "valueOptions": null
}
], - "requestedProperties": [
- "PriceWithoutVat",
- "LeadTimeDays",
- "AdditionalInfo"
]
}nullUpload files to attach to an RFQ document. RFQ is identified by RFQ number. You must also set the author person for the attachment, use mapped person strings for this.
| rfqNumber required | string |
| authorPersonIdentifier required | string |
| files required | Array of strings <binary> [ items <binary > ] |
null