Receipts, receiving purchases
This is the new Receipts endpoint. Looking for the old /api/v1/purchaseorders/{id}/receipts endpoint? See this old page.
With "Receipts" you register received purchase orders.
Receipts can be linked to a specific purchase order or to a supplier to register received products from multiple purchase orders.
You can also receive products that are not on purchase orders. Picqer will then create a new purchase order with the products that are received that were not purchased.
Attributes
Name |
Type |
Required |
Description |
idreceipt |
integer |
generated |
Unique Picqer reference |
idwarehouse |
integer |
optional |
Linked to resource Warehouses. If you do not provide a idwarehouse, we will select the first warehouse. |
supplier |
array |
optional* |
Linked to resource Suppliers. Either a supplier or a purchase order is required. |
purchaseorder |
array |
optional* |
Linked to resource Purchase orders. Either a supplier or a purchase order is required. |
receiptid |
string |
generated |
Per-account receipt number |
status |
string |
read-only |
Status of receipt: processing or completed |
remarks |
string |
optional |
Remarks about this receipt |
completed_by |
string |
read-only |
User that completed the receipt. |
amount_received |
integer |
read-only |
Amount of products in this receipt. |
amount_received_excessive |
integer |
read-only |
Amount of products in this receipt more then purchased. |
completed_at |
string |
read-only |
Datetime that this receipt is completed |
created |
string |
read-only |
Datetime that this receipt is created |
products |
array |
required |
Products in this receipt |
products.idreceipt_product |
integer |
generated |
Unique id of this line item |
products.idpurchaseorder_product |
integer |
read-only |
Linked to line of purchase order, the product that is being received |
products.idproduct |
integer |
required |
Linked to resource Products |
products.idpurchaseorder |
integer |
read-only |
Linked to resource Purchase order, as each product can come from a different purchase order |
products.productcode |
string |
read-only |
Productcode of product |
products.name |
string |
read-only |
Name of product |
products.amount |
integer |
required |
Amount that is being received in this receipt |
products.amount_ordered |
integer |
read-only |
Amount that was ordered in the purchas order |
products.added_by_receipt |
boolean |
read-only |
False if this product was originally ordered, true if this product was added by this receipt |
products.stock_location |
array |
read-only |
Currently linked location to add the stock to on receiving |
Get all receipts
GET
https://example.picqer.com/api/v1/receipts
HTTP/1.1 200 OK
[
{
"idreceipt": 469364,
"idwarehouse": 18,
"supplier": {
"idsupplier": 55151,
"name": "Schoenmaker Kramer"
},
"purchaseorder": {
"idpurchaseorder": 612084,
"purchaseorderid": "20201023"
},
"receiptid": "RC2020-1071",
"status": "processing",
"remarks": null,
"completed_by": null,
"amount_received": 5,
"amount_received_excessive": 0,
"completed_at": null,
"created": "2020-11-11 14:18:42",
"updated": "2020-11-11 14:18:42",
"products": [
{
"idreceipt_product": 14959405,
"idpurchaseorder_product": 9473892,
"idproduct": 13177709,
"idpurchaseorder": 612084,
"productcode": "AA568904",
"productcode_supplier": "SEC-AA568904",
"name": "Secrid Eco Drive Calculator Lumix",
"barcode": "5480962989264",
"amount": 0,
"amount_ordered": 5,
"amount_receiving": 0,
"added_by_receipt": false,
"abc_classification": null
},
{
"idreceipt_product": 14959407,
"idpurchaseorder_product": 9473893,
"idproduct": 13177679,
"idpurchaseorder": 612084,
"productcode": "AT298759",
"productcode_supplier": "NES-AT298759",
"name": "Nestle Watch Graphing Lumix S",
"barcode": "3376627429184",
"amount": 3,
"amount_ordered": 5,
"amount_receiving": 0,
"added_by_receipt": false,
"abc_classification": null
}
]
},
...
]
Filters
You can filter the receipts with the following parameters. Add these filters as querystring parameters to the URL.
Attribute |
Description |
Example |
status |
Only receipts with this status |
processing |
idpurchaseorder |
Receipts for this purchase order. |
|
idsupplier |
Receipts for this supplier. |
|
Get single receipt
GET
https://example.picqer.com/api/v1/receipts/{idreceipt}
HTTP/1.1 200 OK
{
"idreceipt": 469364,
"idwarehouse": 18,
"supplier": {
"idsupplier": 55151,
"name": "Schoenmaker Kramer"
},
"purchaseorder": {
"idpurchaseorder": 612084,
"purchaseorderid": "20201023"
},
"receiptid": "RC2020-1071",
"status": "processing",
"remarks": null,
"completed_by": null,
"amount_received": 5,
"amount_received_excessive": 0,
"completed_at": null,
"created": "2020-11-11 14:18:42",
"updated": "2020-11-11 14:18:42",
"products": [
{
"idreceipt_product": 14959405,
"idpurchaseorder_product": 9473892,
"idproduct": 13177709,
"idpurchaseorder": 612084,
"productcode": "AA568904",
"productcode_supplier": "SEC-AA568904",
"name": "Secrid Eco Drive Calculator Lumix",
"barcode": "5480962989264",
"amount": 0,
"amount_ordered": 5,
"amount_receiving": 0,
"added_by_receipt": false,
"abc_classification": null,
"amount_previously_received": 5,
"amount_more_than_ordered": 0,
"amount_backorders": 0,
"image": null,
"stock": 53,
"stock_location": {
"idlocation": 2059474,
"idwarehouse": 18,
"parent_idlocation": 2059472,
"name": "A.2.1.2",
"remarks": null,
"unlink_on_empty": false,
"location_type": {
"idlocation_type": 1,
"name": "Standaard",
"default": true,
"color": "#0000f0"
},
"is_bulk_location": false
}
},
{
"idreceipt_product": 14959407,
"idpurchaseorder_product": 9473893,
"idproduct": 13177679,
"idpurchaseorder": 612084,
"productcode": "AT298759",
"productcode_supplier": "NES-AT298759",
"name": "Nestle Watch Graphing Lumix S",
"barcode": "3376627429184",
"amount": 0,
"amount_ordered": 5,
"amount_receiving": 0,
"added_by_receipt": false,
"abc_classification": null,
"amount_previously_received": 5,
"amount_more_than_ordered": 0,
"amount_backorders": 0,
"image": null,
"stock": 228,
"stock_location": {
"idlocation": 2060036,
"idwarehouse": 18,
"parent_idlocation": 2060035,
"name": "B.6.3.1",
"remarks": null,
"unlink_on_empty": false,
"location_type": {
"idlocation_type": 1,
"name": "Standaard",
"default": true,
"color": "#0000f0"
},
"is_bulk_location": false
}
}
]
}
Create a new receipt
You can create a receipt for a purchase order by providing 'idpurchaseorder', or for a supplier by providing 'idsupplier'.
POST
https://example.picqer.com/api/v1/receipts
{
"idpurchaseorder": 666379
}
HTTP/1.1 201 Created
{
"idreceipt": 496349,
"idwarehouse": 18,
"supplier": {
"idsupplier": 63386,
"name": "Heiku"
},
"purchaseorder": {
"idpurchaseorder": 666379,
"purchaseorderid": "20201024"
},
"receiptid": "RC2020-1073",
"status": "processing",
"remarks": null,
"completed_by": null,
"amount_received": 0,
"amount_received_excessive": 0,
"completed_at": null,
"created": "2020-11-27 12:03:43",
"updated": "2020-11-27 12:03:43",
"products": [
{
"idreceipt_product": 15792546,
"idpurchaseorder_product": 10412819,
"idproduct": 14781906,
"idpurchaseorder": 666379,
"productcode": "SW10111",
"productcode_supplier": "",
"name": "Kicker XXL Champ Elite Pro",
"barcode": "",
"amount": 0,
"amount_ordered": 2,
"amount_receiving": 0,
"added_by_receipt": false,
"abc_classification": null,
"amount_previously_received": 0,
"amount_more_than_ordered": 0,
"amount_backorders": 0,
"image": null,
"stock": 5,
"stock_location": null
},
{
"idreceipt_product": 15792545,
"idpurchaseorder_product": 10412818,
"idproduct": 14781890,
"idpurchaseorder": 666379,
"productcode": "SW10114",
"productcode_supplier": "",
"name": "Kicker Champ Elite",
"barcode": "",
"amount": 0,
"amount_ordered": 2,
"amount_receiving": 0,
"added_by_receipt": false,
"abc_classification": null,
"amount_previously_received": 0,
"amount_more_than_ordered": 0,
"amount_backorders": 0,
"image": null,
"stock": 21,
"stock_location": null
}
]
}
Mark all products as received
After you created a receipt for a purchase order, you can mark all products as received. This will set the amount received to the amount you ordered.
POST
https://example.picqer.com/api/v1/receipts/{idreceipt}/mark-all-received
HTTP/1.1 200 OK
{
"idreceipt": 496349,
"idwarehouse": 18,
"supplier": {
"idsupplier": 63386,
"name": "Heiku"
},
"purchaseorder": {
"idpurchaseorder": 666379,
"purchaseorderid": "20201024"
},
"receiptid": "RC2020-1073",
"status": "processing",
"remarks": null,
"completed_by": null,
"amount_received": 4,
"amount_received_excessive": 0,
"completed_at": null,
"created": "2020-11-27 12:03:43",
"updated": "2020-11-27 12:03:43",
"products": [
{
"idreceipt_product": 15792546,
"idpurchaseorder_product": 10412819,
"idproduct": 14781906,
"idpurchaseorder": 666379,
"productcode": "SW10111",
"productcode_supplier": "",
"name": "Kicker XXL Champ Elite Pro",
"barcode": "",
"amount": 2,
"amount_ordered": 2,
"amount_receiving": 2,
"added_by_receipt": false,
"abc_classification": null,
"amount_previously_received": 0,
"amount_more_than_ordered": 0,
"amount_backorders": 0,
"image": null,
"stock": 5,
"stock_location": null
},
{
"idreceipt_product": 15792545,
"idpurchaseorder_product": 10412818,
"idproduct": 14781890,
"idpurchaseorder": 666379,
"productcode": "SW10114",
"productcode_supplier": "",
"name": "Kicker Champ Elite",
"barcode": "",
"amount": 2,
"amount_ordered": 2,
"amount_receiving": 2,
"added_by_receipt": false,
"abc_classification": null,
"amount_previously_received": 0,
"amount_more_than_ordered": 0,
"amount_backorders": 0,
"image": null,
"stock": 21,
"stock_location": null
}
]
}
Complete receipt
If you complete a receipt, we will add all the products to the stock and set the status to completed.
As a response you do not see the status changed, this will be done in the background. If you retrieve the receipt again, you see status changed to 'completed' and the user and date of the completion filled.
PUT
https://example.picqer.com/api/v1/receipts/{idreceipt}
{
"status": "completed"
}
HTTP/1.1 200 OK
{
"idreceipt": 496349,
"idwarehouse": 18,
"supplier": {
"idsupplier": 63386,
"name": "Heiku"
},
"purchaseorder": {
"idpurchaseorder": 666379,
"purchaseorderid": "20201024"
},
"receiptid": "RC2020-1073",
"status": "processing",
"remarks": null,
"completed_by": null,
"amount_received": 4,
"amount_received_excessive": 4,
"completed_at": null,
"created": "2020-11-27 12:03:43",
"updated": "2020-11-27 12:03:43",
"products": [
...
]
}
Scan or add product
If you want to mark product for product as received, use this endpoint to increment the amount received by 1. You can provide a `barcode` or a `idproduct`.
You get the matched receipt product as a response.
If you want to add a product that is not on the receipt yet, then provide the `idproduct` and the parameter `force` as 'true'.
POST
https://example.picqer.com/api/v1/receipts/{idreceipt}/products
{
"barcode": "2745515900917"
}
HTTP/1.1 200 OK
{
"idreceipt_product": 15793402,
"idpurchaseorder_product": 10413052,
"idproduct": 13177749,
"idpurchaseorder": 666408,
"productcode": "BP673709",
"productcode_supplier": "OPE-BP673709",
"name": "Opel LZ20 Color",
"barcode": "2745515900917",
"amount": 1,
"amount_ordered": 5,
"amount_receiving": 1,
"added_by_receipt": false,
"abc_classification": null,
"amount_previously_received": 0,
"amount_more_than_ordered": 0,
"amount_backorders": 0,
"image": null,
"stock": 24,
"stock_location": {
"idlocation": 2059871,
"idwarehouse": 18,
"parent_idlocation": 2059870,
"name": "B.3.3.1",
"remarks": null,
"unlink_on_empty": false,
"location_type": {
"idlocation_type": 1,
"name": "Standaard",
"default": true,
"color": "#0000f0"
},
"is_bulk_location": false
}
}
Change amount or location of product on receipt
Use this endpoint if you want to provide a specific amount that is received, or change the linked stock location.
Provide `delta` to change the amount up or down, or provide `amount` to set the amount to the given value.
Provide `stock_idlocation` to change the linked location to receive the stock on.
PUT
https://example.picqer.com/api/v1/receipts/{idreceipt}/products/{idreceipt_product}
{
"delta": 2
}
HTTP/1.1 200 OK
{
"idreceipt_product": 15793402,
...
"amount": 3,
"amount_ordered": 5,
...
}