User Tools

Site Tools


api

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
api [2022/02/08 19:12]
flack [Quote API]
api [2022/04/29 17:04] (current)
flack [Quote order]
Line 162: Line 162:
 ===== InChIKey lookup ===== ===== InChIKey lookup =====
 == Endpoint: == == Endpoint: ==
-<code>/lookup/<inchi_key></code>+<code>/lookup/inchikey/<inchi_key></code>
  
 == Example API request: == == Example API request: ==
Line 1066: Line 1066:
   * **higher_amounts**: Set to true if you would like to get a quote for the compounds in the largest possible quantity in case they do not cost more than the specified amount. (default: false)   * **higher_amounts**: Set to true if you would like to get a quote for the compounds in the largest possible quantity in case they do not cost more than the specified amount. (default: false)
   * **item_filters**: Per query item filters. Currently it supports only supplier filtering. See example below.   * **item_filters**: Per query item filters. Currently it supports only supplier filtering. See example below.
 +  * **scheme**: If you have access to predefined / pre-negotiated quote request schemes, you can specify here which one you want to use. You have to send the ID of the scheme which will be provided to you after negotiation. A quote query scheme is essentially a template that contains predefined quote query parameters, or even include private parameters that affect quote generation in various ways (e.g.: discounts, predefined custom prices). These parameters can be customized for your use case. The scheme might already contain mandatory fields like delivery_country. In this case you don't have to specify them again, they will be applied from the scheme. Any explicitly specified public parameter during the request will override the one that comes from the specified scheme. 
  
 The **amount** or target concentration-volume pair (**target_volume** and **target_cc**) need to be specified. The **amount** or target concentration-volume pair (**target_volume** and **target_cc**) need to be specified.
Line 1694: Line 1695:
 Where currency is not specified, it is always USD. Where currency is not specified, it is always USD.
  
 +  * **additional_document_notes**: additional document notes if there are any
 +  * **amount_range**: Amount / product (mg), min - max product amounts as a list
 +  * **amount_range_display**: Amount / product (mg) as string
   * **analytical_services_price**: price of analytical services (USD)   * **analytical_services_price**: price of analytical services (USD)
   * **avg_product_price**: Average product price (USD)   * **avg_product_price**: Average product price (USD)
Line 1729: Line 1733:
     * **quote**: The ID of the quote this product level quote data belongs to.     * **quote**: The ID of the quote this product level quote data belongs to.
   * **name**: The name of the quote. Quotes created via the API don't have names.   * **name**: The name of the quote. Quotes created via the API don't have names.
-  * **order_data**: Order data. (Should be neglected).+  * **order_data**: If the quote has been ordered, data related to the purchase order is provided here. 
 +    * **billing_address**: Billing address 
 +    * **billing_city**: Billing city 
 +    * **billing_company_name**: Billing Institution / Company name 
 +    * **billing_country**: Billing country 
 +    * **billing_post_code**: Billing ZIP / Post code 
 +    * **billing_state**: Billing State / Province 
 +    * **billing_email**: Billing contact email 
 +    * **billing_first_name**: Billing contact first name 
 +    * **billing_last_name**: Billing contact last name 
 +    * **billing_phone**: Billing contact phone number 
 +    * **billing_same**: Whether the billing data is the same is shipping data 
 +    * **billing_vat**: Billing VAT number 
 +    * **shipping_address**: Shipping address 
 +    * **shipping_city**: shipping city 
 +    * **shipping_company_name**: Shipping Institution / Company name 
 +    * **shipping_country**: Shipping country 
 +    * **shipping_post_code**: Shipping ZIP / Post code 
 +    * **shipping_state**: Shipping State / Province 
 +    * **shipping_email**: Shipping contact email 
 +    * **shipping_first_name**: Shipping contact first name 
 +    * **shipping_last_name**: Shipping contact last name 
 +    * **shipping_phone**: Shipping contact phone number 
 +    * **notes**: notes 
 +    * **po_number**: Customer Purchase Order number 
 +    * **po_file_filename**: In case a Purchase Order file was submitted, the name of the filename. 
 +    * **po_option**: Purchase Order option (10: Upload PO, 20: Order without PO, 30: Send PO later) 
 +    * **po_option_display**: Purchase Order option as string 
 +    * **created**: Datetime when the purchase order was submitted 
 +    * **updated**: Datetime when the purchase order data was updated 
 +    * **id**: ID of the purchase order data
   * **payment_due_days**: Payment terms. Number of days net or prepayment by credit card   * **payment_due_days**: Payment terms. Number of days net or prepayment by credit card
   * **price**: Total price of quote (USD)   * **price**: Total price of quote (USD)
Line 1826: Line 1860:
 </code> </code>
  
 +
 +===== Quote order =====
 +
 +Submit purchase order for a quote via API.
 +
 +<code>
 +http --form POST https://mcule.com/api/v1/iquotes/15677/order/ po_option=10 po_file@~/po.pdf "Authorization: Token <your_token>" --print HBhb
 +</code>
 +
 +== Example request: ===
 +<code>
 +POST /api/v1/iquotes/15677/order/ HTTP/1.1
 +Accept: */*
 +Accept-Encoding: gzip, deflate
 +Authorization: Token <your_token>
 +Content-Type: multipart/form-data; boundary=b582e4472c434fd6b30b265ffef125e8
 +
 ++-----------------------------------------+
 +| NOTE: binary data not shown in terminal |
 ++-----------------------------------------+
 +</code>
 +
 +Please note that in case you submit a file in the API request, you have to use //Content-Type: multipart/form-data// as you can see at the above request.
 +
 +If you don't submit a file in the API request, you can use //Content-Type: application/json// :
 +
 +<code>
 +echo '{"po_option": 20, "shipping_country": "US", "shipping_first_name": "John", "shipping_last_name": "Doe"}' | http https://mcule.com/api/v1/iquotes/15677/order/ "Authorization: Token <your_token>" --print HBhb
 +</code>
 +
 +== Example request: ===
 +<code>
 +POST /api/v1/iquotes/15677/order/ HTTP/1.1
 +Accept: application/json, */*
 +Authorization: Token <your_token>
 +Content-Type: application/json
 +{
 +    "po_option": 20,
 +    "shipping_country": "US",
 +    "shipping_first_name": "John",
 +    "shipping_last_name": "Doe"
 +}
 +</code>
 +
 +== Example response: ===
 +<code>
 +HTTP/1.0 201 CREATED
 +Allow: POST, OPTIONS
 +Content-Type: application/json
 +
 +{
 +    "billing_address": "",
 +    "billing_city": "",
 +    "billing_company_name": "",
 +    "billing_country": "",
 +    "billing_email": "",
 +    "billing_first_name": "",
 +    "billing_last_name": "",
 +    "billing_phone": "",
 +    "billing_post_code": "",
 +    "billing_same": true,
 +    "billing_state": "",
 +    "billing_vat": "",
 +    "created": "2022-04-29T17:02:09.257359",
 +    "id": 3691,
 +    "notes": "",
 +    "po_file_filename": "",
 +    "po_number": "",
 +    "po_option": 20,
 +    "po_option_display": "Order without PO",
 +    "shipping_address": "",
 +    "shipping_city": "",
 +    "shipping_company_name": "",
 +    "shipping_country": "US",
 +    "shipping_email": "",
 +    "shipping_first_name": "John",
 +    "shipping_last_name": "Doe",
 +    "shipping_phone": "",
 +    "shipping_post_code": "",
 +    "shipping_state": "",
 +    "updated": "2022-04-29T17:02:09.257373"
 +}
 +</code>
 +
 +
 +Mandatory fields:
 +    * **po_option**: Purchase Order option (10: Upload PO, 20: Order without PO, 30: Send PO later)
 +
 +Optional fields:
 +    * **billing_address**: Billing address
 +    * **billing_city**: Billing city
 +    * **billing_company_name**: Billing Institution / Company name
 +    * **billing_country**: Billing country
 +    * **billing_post_code**: Billing ZIP / Post code
 +    * **billing_state**: Billing State / Province
 +    * **billing_email**: Billing contact email
 +    * **billing_first_name**: Billing contact first name
 +    * **billing_last_name**: Billing contact last name
 +    * **billing_phone**: Billing contact phone number
 +    * **billing_same**: Whether the billing data is the same as shipping data
 +    * **billing_vat**: Billing VAT number
 +    * **shipping_address**: Shipping address
 +    * **shipping_city**: Shipping city
 +    * **shipping_company_name**: Shipping Institution / Company name
 +    * **shipping_country**: Shipping country
 +    * **shipping_post_code**: Shipping ZIP / Post code
 +    * **shipping_state**: Shipping State / Province
 +    * **shipping_email**: Shipping contact email
 +    * **shipping_first_name**: Shipping contact first name
 +    * **shipping_last_name**: Shipping contact last name
 +    * **shipping_phone**: Shipping contact phone number
 +    * **notes**: notes
 +    * **po_number**: Customer Purchase Order number
 +    * **po_file**: Purchase Order document file.
 +
 +The address and contact fields are optional if this information is included in the Purchase Order document or will be provided later to our support team. Although providing the shipping and billing address / contact information here can speed up the ordering process, if you decide to leave them empty, our support team will contact you to reconcile this information. 
 +
 +Subsequent calls to this same endpoint make it possible to update the purchase order information. You can also report incorrect data at order@mcule.com. Please make sure you reference the quote's Full reference ID (**reference_id_full** field in the corresponding API response) in your email.
  
  
api.1644343965.txt.gz · Last modified: 2022/02/08 19:12 by flack