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.

NameDescriptionTypeExample
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.

NameDescriptionTypeFormatMax lengthExample
notice

XML file base64 encoded

formData

[A-Za-z0-9+/=]+

4,294,967,295 characters

d2VsbGRvbmU

Request Formats

application/x-www-form-urlencoded

Sample:
   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:

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

Sample:
{
  "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

Sample:
{
    "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

Sample:
{
    "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

Sample:
{
  "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

Sample:
{
  "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

Sample:
{
  "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",
}