POST /api/{version}/notice/submission/submit
This operation requests a publication of a procurement notice in OJ S (formatted as a document in 2.0.8 or 2.0.9 standard). The notice gets validated (structure, individual values, value consistency, business rules) and if it passes the validation it is accepted to start the publication process.
Requires Authorization
The endpoint requires a Basic Auth in the http authorization header. For details, please see the Authentication section.
Request Information
URI Parameters
None.
Query Parameters
Optional query string parameters.
| Name | Description | Type | Example |
|---|---|---|---|
| async |
When set to 1, the notice is accepted onto a processing queue and validated and published in the background, instead of synchronously within the request. See Asynchronous submission under Response Information below. |
query |
?async=1 |
Body Parameters
Details of the publish request.
| Name | Description | Type | Format | Max length | Example |
|---|---|---|---|---|---|
| notice |
XML file base64 encoded |
formData |
[A-Za-z0-9+/=]+ |
4,294,967,295 characters |
d2VsbGRvbmU |
Request Formats
application/x-www-form-urlencoded
notice=PD94bWwgdmVycT049IlIyLjAuOS5TMDIiDQp4bWxucz0idHJ1ay9SMi4wLjkuUzA2BDQogICAgICAgICAgICAgICA8Q09VTlRSWSTUVOVEFSWV9 PD94bWwgdmVycT049IlIyLjAuOS5TMDIiDQp4bWxucz0idHJ1ay9SMi4wLjkuUzA2BDQogDSADECRTREA54R35CDSFSDICAgICAgICAgICAgICA8Q09VTl JFUE12KSOEM0LDSAPDEWMOVr...jkuUzA2BDQogICAgICAgICAgICAgI
Response Information
Resource Description
A NoticeInformation object containing details of the notice status.
Asynchronous submission
When the request includes ?async=1, the notice is placed on a processing queue and the endpoint responds immediately, before validation has run. The response is:
- HTTP status 202 Accepted (the synchronous path returns 200 OK).
- A NoticeInformation body with the same shape as a synchronous response. status is RECEIVED, and the fields that depend on validation and publication (validation report, publication information, and similar) are null because the notice has not yet been processed.
Important: a RECEIVED status from an asynchronous submission only confirms that the notice was accepted onto the queue. It does not mean the notice has passed validation or that it will be published — structure, value, consistency and business-rule validation all run later, in the background, and the notice may still be rejected.
To obtain the final outcome, poll GET /api/{version}/notice/submission/info/{submission_id} using the submissionId returned in this response. Most notices reach a final status within a minute; large or complex notices (many lots or suppliers) can take several minutes, so poll at a sensible interval rather than continuously.
Response Formats
In the case of successful response a NoticeInformation object is returned in JSON format.
application/json, text/json
{
"submission_id": "20260626-000050",
"received_at": "2015-06-17T08:10:04Z",
"status": "RECEIVED",
"reason_code": null,
"status_updated_at": "2015-06-17T08:10:04Z",
"no_doc_ext": null,
"form": null,
"languages": [],
"publication_info": null,
"technical_validation_report": null,
"validation_rules_report": null,
"quality_control_report": null,
"ref_submission_id": null,
"ref_no_doc_ojs": null
}
In the case of wrong authorization header is provided.
application/json, text/json
{
"timestamp": "2018-06-21T00:00:00Z",
"status": 400,
"error": "Access Denied",
"path": "/api/latest/notice/submission/submit"
}
In the case of authorization service is down.
application/json, text/json
{
"timestamp": "2018-06-21T00:00:00Z",
"status": 503,
"error": "Service Unavailable",
"message": "The service is temporarily unavailable. Re-submit the notice later.",
"path": "/api/latest/notice/submission/submit"
}
In the case the wrong parameter name provided.
application/json, text/json
{
"timestamp": "2018-01-05T08:51:38Z",
"status": 400,
"error": "Bad Request",
"message": "Request parameters unknown",
"path": "/api/latest/notice/submission/submit",
"exception": "Request parameter 'notices' is not recognised, allowed parameters are: notice"
}
In the case the Accept header is provided and set with a value different than ‘application/json’.
application/json, text/json
{
"timestamp": "2017-01-10T10:03:30Z",
"status": 406,
"error": "Not Acceptable",
"message": "Not acceptable value for ‘Accept’ header. Only ‘application/json’ format is supported",
"path": "/api/latest/notice/submission/submit",
}
In the case the limit of sent notices has been reached on production, qualification or simulation endpoint for this day.
application/json, text/json
{
"timestamp": "2017-12-05T07:57:29Z",
"status": 422,
"error": "Unprocessable Entity",
"message": "Limit of sent notices per day reached",
"path": "/api/latest/notice/submission/submit",
"exception": "The limit of 5000 sent notice(s) in production today has been reached for eSender ABC12",
}