Skip to main content
The tenders endpoints let you list, create, update, and delete procurement tenders. All endpoints are served under the base path /paper-channel-bo/v1.
Authentication uses an API key passed in the x-api-key request header. Read operations require the tender-read permission; write operations require tender-write.

List all tenders

GET /paper-channel-bo/v1/tenders Returns a paginated list of all procurement tenders.

Query parameters

page
integer
default:"0"
Zero-based page number to retrieve.
size
integer
default:"5"
Number of items per page.

Response

content
TenderDTO[]
required
Array of tender objects on the current page.
number
integer
required
Current page number.
numberOfElements
integer
required
Number of elements on the current page.
size
integer
required
Page size.
totalElements
integer
required
Total number of tenders across all pages.
totalPages
integer
required
Total number of pages.
first
boolean
true if this is the first page.
last
boolean
true if this is the last page.
empty
boolean
true if the page contains no elements.

Response codes

CodeDescription
200OK — paginated list returned
400Bad request
401Unauthorized
403Forbidden
404Not found
405Method not allowed
500Internal server error

Example

curl --request GET \
  --url 'https://<host>/paper-channel-bo/v1/tenders?page=0&size=10' \
  --header 'x-api-key: <your-api-key>'

Get tender details

GET /paper-channel-bo/v1/tenders/{tenderCode} Returns the details of a single tender identified by its code.

Path parameters

tenderCode
string
required
The unique code of the tender to retrieve.

Response

result
boolean
true when the operation succeeded.
code
number
Return code. 0 = OK, 99 = KO, other values indicate specific errors.
tender
object
required
The requested tender.

Response codes

CodeDescription
200OK
400Bad request
401Unauthorized
403Forbidden
404Tender not found
405Method not allowed
500Internal server error

Example

curl --request GET \
  --url 'https://<host>/paper-channel-bo/v1/tenders/AGD-2023-TE' \
  --header 'x-api-key: <your-api-key>'

Create or update a tender

POST /paper-channel-bo/v1/tender Creates a new tender or updates an existing one. Requires the tender-write permission.

Request body

code
string
Unique tender code. If omitted, a code is generated automatically.
name
string
required
Human-readable tender name.
startDate
string
required
Tender start date in ISO 8601 date format (YYYY-MM-DD).
endDate
string
required
Tender end date in ISO 8601 date format (YYYY-MM-DD).

Response

result
boolean
true when the operation succeeded.
code
number
Return code. 0 = OK, 99 = KO.
tender
object
required
The created or updated tender.

Response codes

CodeDescription
200OK — tender created or updated
400Bad request
401Unauthorized
403Forbidden
404Not found
405Method not allowed
500Internal server error

Example

curl --request POST \
  --url 'https://<host>/paper-channel-bo/v1/tender' \
  --header 'x-api-key: <your-api-key>' \
  --header 'Content-Type: application/json' \
  --data '{
    "code": "AGD-2024-TE",
    "name": "Gara 2024",
    "startDate": "2024-01-01",
    "endDate": "2024-12-31"
  }'

Update tender status

PUT /paper-channel-bo/v1/tender/{tenderCode} Updates the status of an existing tender. Requires the tender-write permission.
Only CREATED and VALIDATED statuses can be set through this endpoint. The IN_PROGRESS and ENDED statuses are managed internally by the system.

Path parameters

tenderCode
string
required
The unique code of the tender whose status you want to update.

Request body

statusCode
string
New status for the tender. One of CREATED, VALIDATED.

Response

result
boolean
true when the status update succeeded.
code
number
Return code. 0 = OK, 99 = KO.
tender
object
required
The updated tender with its new status.

Response codes

CodeDescription
200OK — status updated
400Bad request
401Unauthorized
403Forbidden
404Tender not found
405Method not allowed
500Internal server error

Example

curl --request PUT \
  --url 'https://<host>/paper-channel-bo/v1/tender/AGD-2024-TE' \
  --header 'x-api-key: <your-api-key>' \
  --header 'Content-Type: application/json' \
  --data '{"statusCode": "VALIDATED"}'

Delete a tender

DELETE /paper-channel-bo/v1/tender/{tenderCode} Permanently deletes a tender and its associated data. Requires the tender-write permission.
Deletion is irreversible. All delivery drivers and costs associated with this tender will also be removed.

Path parameters

tenderCode
string
required
The unique code of the tender to delete.

Response codes

CodeDescription
200Tender deleted successfully

Example

curl --request DELETE \
  --url 'https://<host>/paper-channel-bo/v1/tender/AGD-2024-TE' \
  --header 'x-api-key: <your-api-key>'

Download tenders file

GET /paper-channel-bo/v1/delivery-tender/file-download Downloads the tenders list as a file. The response may include a pre-generated file or a retry indicator if the file is still being prepared.

Query parameters

tenderCode
string
Filter the download to a specific tender code.
uuid
string
UUID of a previously requested file download to poll its status.

Response

data
string
Base64-encoded file content. Present when the file is ready (status: UPLOADED).
retryAfter
integer
Seconds to wait before polling again. Present when status is UPLOADING.
uuid
string
File download UUID to use in subsequent polling requests. Maximum 32 characters.
status
string
File preparation status. One of UPLOADING, UPLOADED.

Response codes

CodeDescription
200OK
400Bad request
401Unauthorized
403Forbidden
404Not found
405Method not allowed
500Internal server error

Example

curl --request GET \
  --url 'https://<host>/paper-channel-bo/v1/delivery-tender/file-download?tenderCode=AGD-2024-TE' \
  --header 'x-api-key: <your-api-key>'

Build docs developers (and LLMs) love