Permalink
Switch branches/tags
2pc a105191787427142_transfer_token a135545471756037_bids_view_on_unsuccessful a136995994988765_2PC_BIDS a139580578997856_shouldStartAfter_rounding a142466299985876_view_bids_on_unsuccessful_tender a144381831109498_null_value_of_bid a147460966605399_set_date_on_status a147460966605415_blocking_complaints_status_accepted a147507835786738_normal_days a147507835786741_complaint_document_upload_condition a147507835786744_claims a152458084562300_awards_status_active_bid_upload a154043417500164_PeriodEndRequired_validation a157335104845450_next_check a158515627059482_stopping2invalid a158916227407145_Administrator_award_complaintPeriod a158972595146231_parallel_testing a164800652922449_complains_mistaken a168770784473030_block_cancellation a168811274116846_dry_run a168811274116850_submit_bid_with_documents a184446326538140_questions_dateAnswered a194382545662282_satisfied_award_cancelled a195747282117598_complaint_active_award a195878228859893_invalid_json a197071106211321_add_next_award a200325340996959_bid_lotValues a200954328936723_blocking_questions a217582340368153_items_cpv_3to4_validation a224682041144054_complaint_leave_unsatisfied a225525300977111_px_operator a244188660001653_fix_deleted_bid a245173837477145_has_unanswered_questions a245493633932394_remove_features a246404800934002_special_items a253095563838185_remove_address_validation a258001251842880_batch_mode_on_refactoring a258001251842882_refactoring_sandbox_23 a258001251842882_refactoring a261876877005284_create_contracts_by_chronograph a272280131163160_claim_unsuccessful a276011822912330_update_award_docs a277941006139274_increase_coverage_to_95 a282953159619251_tests_refactoring a288110197594443_test_multilot_features_deletion a312620117236937_block_cpv a342594055523082_complaints_off a346808780435667_edr_integration_on_refactoring a423717924883673_701_award_cancelled a431278519093170_awarding_criteria_field a432419736587305_test_awarding_with_features a433718495997911_satisfy_stopping_complaint a563879808284502_disable_999999-9_additional_classification_required a736221711930801_frameworkagreement_test_fixes complaints dev_bce dev document_service documentation edr_integration frameworkagreement master_bce master merged_contracts new_sync production_bce production px_master sandbox travis_cfg_update
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
356 lines (212 sloc) 9.21 KB

Tutorial

Exploring basic rules

Let's try exploring the /tenders endpoint:

Just invoking it reveals empty set.

Now let's attempt creating some tender:

Error states that the only accepted Content-Type is application/json.

Let's satisfy the Content-type requirement:

Error states that no data has been found in JSON body.

.. index:: Tender

Creating tender

Let's provide the data attribute in the submitted body :

Success! Now we can see that new object was created. Response code is 201 and Location response header reports the location of the created object. The body of response reveals the information about the created tender: its internal id (that matches the Location segment), its official tenderID and dateModified datestamp stating the moment in time when tender was last modified. Note that tender is created with active.tendering status.

The peculiarity of the Open UA procedure is that procurementMethodType was changed from belowThreshold to aboveThresholdUA. Also there is no opportunity to set up enquiryPeriod, it will be assigned automatically.

Let's access the URL of the created object (the Location header of the response):

We can see the same response we got after creating tender.

Let's see what listing of tenders reveals us:

We do see the internal id of a tender (that can be used to construct full URL by prepending http://api-sandbox.openprocurement.org/api/0/tenders/) and its dateModified datestamp.

Modifying tender

Let's update tender by supplementing it with all other essential properties:

We see the added properies have merged with existing tender data. Additionally, the dateModified property was updated to reflect the last modification datestamp.

Checking the listing again reflects the new modification date:

Procuring entity can not change tender if there are less than 7 days before tenderPeriod ends. Changes will not be accepted by API.

That is why tenderPeriod has to be extended by 7 days.

Procuring entity can set bid guarantee:

.. index:: Document

Uploading documentation

Procuring entity can upload PDF files into the created tender. Uploading should follow the :ref:`upload` rules.

201 Created response code and Location header confirm document creation. We can additionally query the documents collection API endpoint to confirm the action:

The single array element describes the uploaded document. We can upload more documents:

And again we can confirm that there are two documents uploaded.

In case we made an error, we can reupload the document over the older version:

And we can see that it is overriding the original version:

.. index:: Enquiries, Question, Answer

Enquiries

When tender has active.tendering status and Tender.enqueryPeriod.endDate hasn't come yet, interested parties can ask questions:

Procuring entity can answer them:

One can retrieve either questions list:

or individual answer:

Enquiries can be made only during Tender.enqueryPeriod

.. index:: Bidding

Registering bid

Tender status active.tendering allows registration of bids.

Bidder can register a bid with draft status:

And activate a bid:

Proposal Uploading

Then bidder should upload proposal document(s):

It is possible to check the uploaded documents:

Bid invalidation

If tender is modified, status of all bid proposals will be changed to invalid. Bid proposal will look the following way after tender has been modified:

Bid confirmation

Bidder should confirm bid proposal:

Open UA procedure demands at least two bidders, so there should be at least two bid proposals registered to move to auction stage:

.. index:: Awarding, Qualification

Auction

After auction is scheduled anybody can visit it to watch. The auction can be reached at Tender.auctionUrl:

Bidders can find out their participation URLs via their bids:

See the Bid.participationUrl in the response. Similar, but different, URL can be retrieved for other participants:

Confirming qualification

Qualification commission registers its decision via the following call:

Setting contract value

By default contract value is set based on the award, but there is a possibility to set custom contract value.

If you want to lower contract value, you can insert new one into the amount field.

200 OK response was returned. The value was modified successfully.

Setting contract signature date

There is a possibility to set custom contract signature date. You can insert appropriate date into the dateSigned field.

If this date is not set, it will be auto-generated on the date of contract registration.

Setting contract validity period

Setting contract validity period is optional, but if it is needed, you can set appropriate startDate and endDate.

Uploading contract documentation

You can upload contract documents for the OpenUA procedure.

Let's upload contract document:

201 Created response code and Location header confirm that this document was added.

Let's view the uploaded contract document:

Cancelling tender

Tender creator can cancel tender anytime. The following steps should be applied:

  1. Prepare cancellation request.
  2. Fill it with the protocol describing the cancellation reasons.
  3. Cancel the tender with the prepared reasons.

Only the request that has been activated (3rd step above) has power to cancel tender. I.e. you have to not only prepare cancellation request but to activate it as well.

See :ref:`cancellation` data structure for details.

Preparing the cancellation request

You should pass reason, status defaults to pending.

id is autogenerated and passed in the Location header of response.

There are two possible types of cancellation reason - tender was cancelled or unsuccessful. By default reasonType value is cancelled.

You can change reasonType value to unsuccessful.

Filling cancellation with protocol and supplementary documentation

Upload the file contents

Change the document description and other properties

Upload new version of the document

Activating the request and cancelling tender