Indice
1. General Features
1.1 URL Base
1.2 Authentication
1.3 Use Case
2. Order Extraction
3. Order Status Update
4. Product Extraction
5. Creating/Updating Products
6. Migrating API v1 a v2
1. General Features
1.1 Base URL
https://app.sellrapido.com/sr_company_ws
1.2 Authentication
The authentication system relies on the use of JWT (JSON Web Token) tokens to securely manage access to resources. The flow involves the combined use of two types of tokens:
-
Access Token
It has a limited validity (15 minutes); it is used to authenticate requests to endpoints protected via HTTP headers
Autorizzazione: Bearer <access_token>
-
Refresh Token
It has an extended validity (30 days); it allows both obtaining a new access token and the rotation of the refresh token itself (i.e. obtaining a new refresh token before it expires) without having to authenticate the user again.
For this reason, it is the customer's responsibility to store them securely and confidentially.
Authorization
Performs initial customer authentication using the web account username and password credentials, returning JWT tokens.
Endpoint
POST /api/v2/auth/authorize
Header
-
Content-Type: application/json
Payload
{
"username": "[username Sellrapido]"
"password": "[passowrd Sellrapido]"
}
Response
Produces: application/json;charset=UTF-8, text/html; charset=utf-8
Response payload structure
{
"access_token": {
"token": string, access token. Used in the Authorization header to authenticate API requests. Duration 15 minutes.
"expires_at": timestamp_ISO8601 (YYYY-MM-ddThh:mm:ssZ), expiration date and time of this token
"type": "bearer", token type. Usually bearers
},
"refresh_token": {
"token": String, refresh token used to update the access_token and rotate the refresh itself. Expires 30 days.
"expires_at": timestamp_ISO8601 (YYYY-MM-ddThh:mm:ssZ), expiration date and time of this token
"type": "bearer", token type. Usually bearers
}
}
Possible Response Codes
-
200 OK – Authentication successful
-
401 Unauthorized – The client could not be authenticated (the error message provides the reason)
-
403 Forbidden – The client does not have the necessary permissions to make the call
-
500 Internal Server Error – Internal error during processing
Examples of error messages
-
Invalid credentials for {username}
-
Account not authorized
-
Subscription is not active
Renew Token
Allows you to generate a new access token from a valid refresh token. Old access tokens will be invalidated even if they haven't expired and will therefore no longer be usable.
Endpoint
POST /api/v2/auth/token
Header
-
Content-Type: application/json
Payload
{
"refresh_token": "[refresh_token]"
}
Response
Produces: application/json;charset=UTF-8, text/html; charset=utf-8
Response payload structure
{
"access_token": {
"token": string, access token. Used in the Authorization header to authenticate API requests. Duration 15 minutes.
"expires_at": timestamp_ISO8601 (YYYY-MM-ddThh:mm:ssZ), expiration date and time of this token
"type": "bearer", token type. Usually bearers
}
}
Possible response codes
-
200 OK – Operation successful
-
400 Bad Request– error during processing (error message provides reason)
-
403 Forbidden – the client does not have the necessary permissions to make the call
-
500 Internal Server Error – Internal error while processing
Examples of error messages
-
Token expired
-
Account not authorized
-
Token generated from an invalidated refresh token
Refresh Token
Allows the current refresh token to be rotated, generating a new one with a 30-day expiration date.It is important to perform this operation before the current refresh token expires to keep the session active.
The old refresh token will be invalidated even if it has not yet expired and will therefore no longer be usable.
Endpoint
POST /api/v2/auth/refresh
Header
-
Content-Type: application/json
Payload
-
refresh_token (string)
Response
Produces: application/json;charset=UTF-8, text/html; charset=utf-8
Response payload structure
{
"access_token": {
"token": string, access token. Used in the Authorization header to authenticate API requests. Duration 15 minutes.
"expires_at": timestamp_ISO8601 (YYYY-MM-ddThh:mm:ssZ), expiration date and time of this token
"type": "bearer", token type. Usually bearers
},
"refresh_token": {
"token": String, refresh token used to update the access_token and rotate the refresh itself. Expires 30 days.
"expires_at": timestamp_ISO8601 (YYYY-MM-ddThh:mm:ssZ), expiration date and time of this token
"type": "bearer", token type. Usually bearers
}
}
Possible response codes
-
200 OK – Operation successful.
-
400 Bad Request– error during processing (error message provides reason)
-
403 Forbidden – The client does not have the necessary permissions to make the call
-
500 Internal Server Error – Internal error while processing
Examples of error messages
-
Token expired
-
Account not authorized
-
Token generated from an invalidated refresh token
1.3 Use case
The recommended workflow sequence is as follows:
- Initial authentication via /authorize to obtain a refresh token and a first access token that is already usable. This call should be performed only once.
- When the current access token expires (valid for 15 minutes), a new one must be requested using the /token endpoint and the refresh token.
- Before the 30-day expiration of the refresh token, it must be rotated using /refresh.
- If the refresh token expires, the procedure must be repeated starting from /authorize.
Expired or invalidated access tokens and refresh tokens can no longer be used.
JWT tokens are not stored on the server side: the system does not keep any persistent copy of the issued access tokens or refresh tokens.
For this reason, it is the client's responsibility to store them securely and confidentially.
2. Order Extraction
Endpoint: /api/v2/order
Metodo: GET
Header Accept: CSV o JSON
Parametri (query string):
startDate
: yyyy-mm-dd (filter by order date)endDate
: yyyy-mm-dd (filter by order date)startModified
: yyyy-mm-ddendModified
: yyyy-mm-ddcode
: order codeformat
: csv|json (defaults to json if not specified)status
: sent, standby, cancelled, accepted (comma-separated list of values)
columnSeparator: column separator for CSV format (e.g., |
)writeHeading
: true|false (true to include column headers; defaults to true if not specified)offset
: index of the first record to retrievelimit
: number of records to retrieve (-1 to retrieve all; defaults to /immagini_guida/cred-yatego-1.png
)tags
: tag1, tag2 (orders containing at least one of the specified comma-separated tags will be returned)
Examples:
##########################################################
REQUEST V2
##########################################################GET /sr_company_ws/api/v2/order?code=15690,11-13067-60538&status=sent,accepted&start_date=2025-03-16&start_modified=2025-03-16&end_date=2025-05-14&end_modified=2025-07-14&tags=menu-tags6,menu-tags2&offset=0&limit=3&column_separator=$&write_heading=true&format=csv
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzcm9fYXBpIiwic3ViIjoiNDciLCJhdWQiOlsic3JvX2FwaSJdLCJpYXQiOjE3NTM3ODc3NzcsImV4cCI6MTc1Mzc4ODY3NywianRpIjoiMzYxNGE3MjAtYzI0Yy00M2MyLWI3ODAtZmZjODE1OTVlYzEwIiwiYWNjb3VudF9pZCI6NDcsInVzZXJuYW1lIjoibS5jcmVtb25pbmlAc2VsbHJhcGlkby5jb20iLCJjb21wYW55X2lkIjozMTAsInRva2VuX25hbWUiOiJhY2Nlc3NfdG9rZW4iLCJleHBpcmVfYXQiOiIyMDI1LTA3LTI5VDExOjMxOjE3Ljc4MzA2NzgyMVoiLCJjcmVhdGlvbl9hdCI6IjIwMjUtMDctMjlUMTE6MTY6MTcuNzgzMDY3ODIxWiIsInJlZnJlc2hfanRpIjoiMzgyMmZlODUtN2MyMy00MDMzLWI4ODktMjRhMzczZDQwZGY5In0.eUEtodQNunimWcUwcKl91TCybu2x8WJ-2JutbHTX5qc
decoded parameter list
code:15690,11-13067-60538
status:sent,accepted
start_date:2025-03-16
start_modified:2025-03-16
end_date:2025-05-14
end_modified:2025-07-14
tags:menu-tags6,menu-tags2
offset:0
limit:3
column_separator:$
write_heading:true
format:csv
##########################################################
RESPONSE
##########################################################
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Payload
{
"orders": [
{
"head": {
"id": 6714,
"shop": 168,
"customer": 12,
"courier": null,
"code": "11-13067-60538",
"code_number": 295,
"marketplace_code": "Ebay",
"channel_code": "Italy",
"courier_code": "GLS Italy",
"shipping_code": "IT_BartoliniBRTExpressEbay",
"insurance_code": "",
"payment_code": "CreditCard",
"supplier_code": "",
"buyer_loc_place": 0,
"buyer_loc_place_dd": 0,
"merchant_id": "marchant",
"fields_lock": "",
"date_order": "2025-05-12T17:27:06Z",
"reference_1": "",
"reference_2": "",
"buyer_user_id": "merchant",
"buyer_checkout_message": "",
"buyer_email": "",
"buyer_token": "nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6AAlIaoD5aKpgydj6x9nY+seQ==",
"shipping_price": 5.0,
"shipping_insurance_price": 0.0,
"marketplace_fee": 2.45,
"paypal_fee": 0.0,
"shipped_by_marketplace": 0,
"is_prime": 0,
"cod_cash_only": 0,
"cod_option": "",
"cod_price": 0.0,
"price_discount_markup": 0.0,
"buyer_name": "Nome Cognome",
"buyer_address1": "Via Nomevia 45",
"buyer_address2": "",
"buyer_zip": "CAP",
"buyer_city": "Città",
"buyer_province": "Provincia",
"buyer_country": "ITA",
"buyer_latitude": 0.0,
"buyer_longitude": 0.0,
"buyer_phone": "012345",
"buyer_fax": "",
"buyer_mobile": "",
"buyer_fiscal_code": "",
"buyer_vat": "",
"currency": "EUR",
"price": 9.0,
"status": "sent",
"status_old": "sent",
"status_message": "",
"date_payment": "2025-05-12T17:27:05Z",
"date_shipping": "2025-05-13T13:40:58Z",
"weight": 5.0,
"tracking": "LT850004073",
"note": "",
"payment_note": "",
"buyer_name_dd": "Nome Cognome",
"buyer_address1_dd": "Via Nomevia 45",
"buyer_address2_dd": "",
"buyer_zip_dd": "CAP",
"buyer_city_dd": "Città",
"buyer_province_dd": "Provincia",
"buyer_country_dd": "ITA",
"buyer_latitude_dd": 0.0,
"buyer_longitude_dd": 0.0,
"buyer_phone_dd": "012345",
"buyer_fax_dd": "",
"buyer_mobile_dd": "",
"shipping_note": "",
"paypal_transaction_id": "",
"billed": 0,
"tags": "menu-tags2;",
"courier_info": {},
"problem_description": "",
"shipping_cost": 0.0,
"feedbacks": {},
"feedbacks_date": "2025-05-12T17:44:17Z",
"content_type": "",
"hidden": 0,
"upload_status": {
"request_payload": "{\"CreatedTime\":\"2025-05-12T19:27:06.000Z\",\"AmountPaid\":{\"currencyID\":\"EUR\",\"content\":9},\"OrderID\":\"11-13067-60538\",\"PaymentHoldStatus\":\"None\",\"TransactionArray\":{\"Transaction\":{\"Status\":{\"ReturnStatus\":\"NotApplicable\",\"InquiryStatus\":\"NotApplicable\",\"PaymentHoldStatus\":\"None\"},\"ActualHandlingCost\":{\"currencyID\":\"EUR\",\"content\":0},\"Platform\":\"eBay\",\"ActualShippingCost\":{\"currencyID\":\"EUR\",\"content\":5},\"ShippingDetails\":{\"SalesTax\":{\"SalesTaxPercent\":0},\"ShipmentTrackingDetails\":{\"ShipmentTrackingNumber\":\"LT850004073\",\"ShippingCarrierUsed\":\"GLS Italy\"},\"SellingManagerSalesRecordNumber\":295},\"TransactionSiteID\":\"Italy\",\"Buyer\":{\"Email\":\"Invalid Request\",\"UserLastName\":\"Cognome\",\"UserFirstName\":\"Nome\"},\"TransactionPrice\":{\"currencyID\":\"EUR\",\"content\":4},\"ShippedTime\":\"2025-05-13T15:40:58.000Z\",\"QuantityPurchased\":1,\"TransactionID\":10072442519011,\"ExtendedOrderID\":\"11-13067-60538\",\"eBayPlusTransaction\":false,\"Item\":{\"Site\":\"Italy\",\"Title\":\"284 Fiat 7579570 TAPPO MONOBLOCCO FIAT PANDA\",\"SKU\":\"14_284\",\"ItemID\":197139218223,\"Location\":\"priverno\"},\"Taxes\":{\"TaxDetails\":{\"TaxDescription\":\"SalesTax\",\"TaxAmount\":{\"currencyID\":\"EUR\",\"content\":0},\"TaxOnSubtotalAmount\":{\"currencyID\":\"EUR\",\"content\":0},\"Imposition\":\"SalesTax\",\"TaxOnShippingAmount\":{\"currencyID\":\"EUR\",\"content\":0},\"TaxOnHandlingAmount\":{\"currencyID\":\"EUR\",\"content\":0}},\"TotalTaxAmount\":{\"currencyID\":\"EUR\",\"content\":0}},\"ShippingServiceSelected\":{\"ShippingPackageInfo\":{\"ActualDeliveryTime\":\"2025-05-20T12:07:00.000Z\",\"EstimatedDeliveryTimeMin\":\"2025-05-14T22:00:00.000Z\",\"EstimatedDeliveryTimeMax\":\"2025-05-18T22:00:00.000Z\"}},\"CreatedDate\":\"2025-05-12T19:27:06.000Z\",\"InventoryReservationID\":10072442519011,\"FinalValueFee\":{\"currencyID\":\"EUR\",\"content\":2.45},\"OrderLineItemID\":\"197139218223-10072442519011\"}},\"EIASToken\":\"nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6AAlIaoD5aKpgydj6x9nY+seQ==\",\"OrderStatus\":\"Completed\",\"BuyerUserID\":\"userid\",\"IsMultiLegShipping\":false,\"AdjustmentAmount\":{\"currencyID\":\"EUR\",\"content\":0},\"SellerEIASToken\":\"nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6MCmYapC5OKpQSdj6x9nY+seQ==\",\"CheckoutStatus\":{\"Status\":\"Complete\",\"LastModifiedTime\":\"2025-05-20T11:22:42.000Z\",\"PaymentInstrument\":\"PayPal\",\"PaymentMethod\":\"CreditCard\",\"IntegratedMerchantCreditCardEnabled\":false,\"eBayPaymentStatus\":\"NoPaymentFailure\"},\"AmountSaved\":{\"currencyID\":\"EUR\",\"content\":0},\"ShippingDetails\":{\"SalesTax\":{\"SalesTaxPercent\":0,\"ShippingIncludedInTax\":false,\"SalesTaxAmount\":{\"currencyID\":\"EUR\",\"content\":0}},\"ShippingServiceOptions\":{\"ExpeditedService\":false,\"ShippingTimeMax\":2,\"ShippingServiceCost\":{\"currencyID\":\"EUR\",\"content\":5},\"ShippingService\":\"IT_BartoliniBRTExpressEbay\",\"ShippingServicePriority\":1,\"ShippingTimeMin\":1},\"SellingManagerSalesRecordNumber\":295},\"Subtotal\":{\"currencyID\":\"EUR\",\"content\":4},\"PaidTime\":\"2025-05-12T19:27:05.390Z\",\"ContainseBayPlusTransaction\":false,\"ShippedTime\":\"2025-05-13T15:40:58.000Z\",\"MonetaryDetails\":{\"Payments\":{\"Payment\":{\"Payer\":{\"type\":\"eBayUser\",\"content\":\"userid\"},\"ReferenceID\":{\"type\":\"ExternalTransactionID\",\"content\":2461729608401},\"FeeOrCreditAmount\":{\"currencyID\":\"EUR\",\"content\":0},\"PaymentTime\":\"2025-05-12T19:27:05.390Z\",\"PaymentAmount\":{\"currencyID\":\"EUR\",\"content\":9},\"Payee\":{\"type\":\"eBayUser\",\"content\":\"lea-line\"},\"PaymentStatus\":\"Succeeded\"}}},\"ExtendedOrderID\":\"11-13067-60538\",\"ShippingServiceSelected\":{\"ShippingServiceCost\":{\"currencyID\":\"EUR\",\"content\":5},\"ShippingService\":\"IT_BartoliniBRTExpressEbay\",\"ShippingPackageInfo\":{\"ActualDeliveryTime\":\"2025-05-20T12:07:00.000Z\"}},\"ShippingAddress\":{\"Street2\":\"\",\"Street1\":\"Via Nomevia 45\",\"AddressOwner\":\"eBay\",\"CountryName\":\"Italy\",\"Phone\":012345,\"StateOrProvince\":\"Provincia\",\"Country\":\"IT\",\"PostalCode\":\"CAP\",\"CityName\":\"Città\",\"AddressID\":012345,\"Name\":\"Nome\"},\"Total\":{\"currencyID\":\"EUR\",\"content\":9},\"CancelStatus\":\"NotApplicable\",\"SellerUserID\":\"lea-line\"}",
"request_date": "Wed May 28 11:19:19 UTC 2025"
}
},
"marketplace_country": "ITA",
"agent": "",
"buyer_invoice_ecode": "",
"buyer_pec": "",
"date_last_ship": null,
"date_last_delivery": "2025-05-18T20:00:00Z",
"created": "2025-05-12T17:32:28Z",
"modified": "2025-05-28T09:19:19Z",
"is_b2b": 0,
"billing_info": {},
"force_profit_loss_calculation": "false",
"total_tax": 0.0,
"reservation": 0,
"dbClass": "com.sellrapido.common.model.db.company.Order_head",
"tags_label": ";CONTRORDINE DA FARE;"
},
"rows": [
{
"id": 7040,
"order_head": 6714,
"order_row_supplier": null,
"supplier": null,
"order_supplier_code": "",
"courier_code": "GLS Italy",
"tracking": "",
"fields_lock": "",
"shipping_cost": 1.0,
"shipping_code": "IT_BartoliniBRTExpressEbay",
"transaction_id": "10072442519011",
"product_id": "197139218223",
"sku": "14_284",
"ean": "",
"brand": "Fiat",
"mpn": "x",
"sku_parent": "",
"title": "284 Fiat 7579570 TAPPO MONOBLOCCO FIAT PANDA",
"title_extra": "",
"quantity": 1,
"stock_unloaded": 1,
"price": 4.0,
"price_total": 4.0,
"price_discount_markup": 0.0,
"price_cost": 3.0,
"refund_price": 0.0,
"refund_date": null,
"refund_reason": "",
"shipping_price": 5.0,
"shipping_insurance_price": 0.0,
"date_shipping": "2025-05-13T13:40:58Z",
"shipping_note": "",
"cod_price": 0.0,
"marketplace_fee": 0.0,
"weight": 5.0,
"note": "",
"vat_perc": 22.0,
"image_url": "",
"category_id": "",
"category_name": "",
"date_payment": null,
"product_info": {
"fieldConstraints": null,
"product_id": 2054,
"catalog_id": 14,
"catalog_code": "CUSTOM",
"catalog_name": "listino_catene",
"sku": "284",
"sku_noprefix": null,
"ean": "",
"mpn": "x",
"isbn": "",
"brand": "Fiat",
"catalog_category1": "RICAMBI",
"catalog_category2": "PF e SPED",
"catalog_category3": "SPED 2GG",
"url_image1": "https://app.sellrapido.com/static/cmp/3697/ctl/34/images/18886479-1-1627883055441.jpg",
"price1": 3.0,
"price_shipping1": 1.0,
"vat_perc": 0.0,
"sku_variation": null,
"ean_variation": "",
"warehouse": "",
"on_demand_days": 0,
"on_demand": false,
"extra1": "",
"extra2": "",
"extra3": "",
"extra4": "",
"extra5": "",
"extra6": "",
"extra7": "",
"extra8": "",
"extra9": "",
"price2": 0.0,
"price3": 0.0,
"price4": 0.0,
"price5": 0.0,
"price6": 0.0,
"price_shipping2": 0.0,
"price_shipping3": 0.0,
"price_shipping4": 0.0,
"price_shipping5": 0.0,
"price_shipping6": 0.0,
"price_cost": 0.0,
"variations": [],
"compatibility": {},
"attributes": {},
"listingFees": {
"fieldConstraints": null,
"marketplace_fee": 0.0,
"shipping_price": 0.0,
"shipping_cost": 0.0,
"fee_additional": 0.0,
"paypal_fee": 0.0
},
"condition_code": "none",
"condition_description": "",
"supplier_sku_prefix": "",
"repricing": false,
"no_repricing_price": null,
"lowest_price": 0.0,
"quantity": 10.0,
"is_sro": true,
"listing_price": 4.0,
"listing_price_noshipping": 4.0,
"listing_price_shipping1": 0.0,
"listing_priceB2B": 0.0,
"origin_country": "IT",
"title": "7579570 TAPPO MONOBLOCCO FIAT PANDA",
"delivery_days": 1
},
"on_demand_date": null,
"created": "2025-05-12T17:32:29Z",
"modified": "2025-05-28T09:19:20Z",
"order_supplier": 0,
"refund_supplier_quantity": 0,
"refund_marketplace_fee": 0.0,
"product_tax": 0.0,
"no_vat": "false",
"courier_info": {}
}
]
},
{
"head": {
"id": 2476,
"shop": 168,
"customer": 1499,
"courier": null,
"code": "15690",
"code_number": 0,
"marketplace_code": "Scaboo",
"channel_code": "Scaboo Italian",
"courier_code": "BARTOLINI1",
"shipping_code": "corriere (consegna in circa 3/4 gg lavorativi dall'accredito del vostro pagamento) - servizio di tracciamento corriere con track",
"insurance_code": "",
"payment_code": "Ordine Generato In Automatico Tramite API",
"supplier_code": "Catalogo prodotti italiano",
"buyer_loc_place": 0,
"buyer_loc_place_dd": 0,
"merchant_id": "https://shop.b2bdrop.com/",
"fields_lock": "",
"date_order": "2025-03-17T06:12:08Z",
"reference_1": "",
"reference_2": "",
"buyer_user_id": "",
"buyer_checkout_message": "{"sr_origin_catalogs":{"77_BD_IT_0001_070.00000000010969":12}}",
"buyer_email": "info@unhiverse.com",
"buyer_token": "",
"shipping_price": 0.0,
"shipping_insurance_price": 0.0,
"marketplace_fee": 0.0,
"paypal_fee": 0.0,
"shipped_by_marketplace": 0,
"is_prime": 0,
"cod_cash_only": 0,
"cod_option": "",
"cod_price": 0.0,
"price_discount_markup": 0.0,
"buyer_name": "Nome Cognome",
"buyer_address1": "Via Nomevia 2",
"buyer_address2": "",
"buyer_zip": "CAP",
"buyer_city": "Città",
"buyer_province": "ITALIA",
"buyer_country": "ITA",
"buyer_latitude": 0.0,
"buyer_longitude": 0.0,
"buyer_phone": "012345",
"buyer_fax": "",
"buyer_mobile": "",
"buyer_fiscal_code": "012345",
"buyer_vat": "012345",
"currency": "EUR",
"price": 13.11,
"status": "sent",
"status_old": "accepted",
"status_message": "",
"date_payment": "2025-03-17T06:12:08Z",
"date_shipping": null,
"weight": 0.0,
"tracking": "280340324736",
"note": "",
"payment_note": "",
"buyer_name_dd": "Nome Cognome",
"buyer_address1_dd": "Via Nomevia",
"buyer_address2_dd": "",
"buyer_zip_dd": "CAP",
"buyer_city_dd": "Città",
"buyer_province_dd": "Provincia",
"buyer_country_dd": "ITA",
"buyer_latitude_dd": 0.0,
"buyer_longitude_dd": 0.0,
"buyer_phone_dd": "012345",
"buyer_fax_dd": "",
"buyer_mobile_dd": "",
"shipping_note": "",
"paypal_transaction_id": "",
"billed": 0,
"tags": "menu-tags7;menu-tags6;",
"courier_info": {},
"problem_description": "",
"shipping_cost": 0.0,
"feedbacks": {},
"feedbacks_date": null,
"content_type": "",
"hidden": 0,
"marketplace_country": "ITA",
"agent": "",
"buyer_invoice_ecode": "m5uxcr1",
"buyer_pec": "pec@pec.it",
"date_last_ship": null,
"date_last_delivery": null,
"created": "2025-03-17T06:13:25Z",
"modified": "2025-05-21T08:07:24Z",
"is_b2b": 0,
"billing_info": {},
"force_profit_loss_calculation": "false",
"total_tax": 2.36,
"reservation": 0,
"dbClass": "com.sellrapido.common.model.db.company.Order_head",
"tags_label": ""
},
"rows": [
{
"id": 3213,
"order_head": 2476,
"order_row_supplier": null,
"supplier": null,
"order_supplier_code": "",
"courier_code": "",
"tracking": "",
"fields_lock": "",
"shipping_cost": 0.0,
"shipping_code": "",
"transaction_id": "15690-451",
"product_id": "451",
"sku": "77_BD_IT_0001_070.00000000010969",
"ean": "8000866109697",
"brand": "Dc Comics",
"mpn": "",
"sku_parent": "",
"title": "Borraccia Ciclo Batman Bici Bambino 350 Ml Nero Giallo",
"title_extra": "",
"quantity": 1,
"stock_unloaded": 1,
"price": 13.11,
"price_total": 13.11,
"price_discount_markup": 0.0,
"price_cost": 9.95,
"refund_price": 0.0,
"refund_date": null,
"refund_reason": "",
"shipping_price": 0.0,
"shipping_insurance_price": 0.0,
"date_shipping": null,
"shipping_note": "",
"cod_price": 0.0,
"marketplace_fee": 0.0,
"weight": 0.0,
"note": "",
"vat_perc": 22.0,
"image_url": "https://scambiodati.ecommercezone.it/img/10969 1.jpg",
"category_id": "",
"category_name": "",
"date_payment": null,
"product_info": {
"fieldConstraints": null,
"product_id": 258354018,
"catalog_id": 77,
"catalog_code": "CUSTOM",
"catalog_name": "COLZANI_AUTO/MOTO_ITA",
"sku": "BD_IT_0001_070.00000000010969",
"sku_noprefix": null,
"ean": "8000866109697",
"mpn": "",
"isbn": "",
"brand": "Dc Comics",
"catalog_category1": "CICLO",
"catalog_category2": "LINEA BAMBINO",
"catalog_category3": "BORRACCE",
"url_image1": "https://scambiodati.ecommercezone.it/img/10969 1.jpg",
"price1": 9.95,
"price_shipping1": 0.0,
"vat_perc": 0.0,
"sku_variation": null,
"ean_variation": "",
"warehouse": "",
"on_demand_days": 0,
"on_demand": false,
"extra1": "",
"extra2": "",
"extra3": "",
"extra4": "",
"extra5": "",
"extra6": "",
"extra7": "",
"extra8": "",
"extra9": "",
"price2": 0.0,
"price3": 0.0,
"price4": 0.0,
"price5": 0.0,
"price6": 0.0,
"price_shipping2": 0.0,
"price_shipping3": 0.0,
"price_shipping4": 0.0,
"price_shipping5": 0.0,
"price_shipping6": 0.0,
"price_cost": 0.0,
"variations": [],
"compatibility": {},
"attributes": {},
"listingFees": {
"fieldConstraints": null,
"marketplace_fee": 0.0,
"shipping_price": 0.0,
"shipping_cost": 0.0,
"fee_additional": 0.0,
"paypal_fee": 0.0
},
"condition_code": "none",
"condition_description": "",
"supplier_sku_prefix": "",
"repricing": false,
"no_repricing_price": null,
"lowest_price": 0.0,
"quantity": 40.0,
"is_sro": true,
"listing_price": 13.11,
"listing_price_noshipping": 13.11,
"listing_price_shipping1": 0.0,
"listing_priceB2B": 0.0,
"origin_country": "",
"title": "Borraccia ciclo Batman bici bambino 350 ml nero giallo"
},
"on_demand_date": null,
"created": "2025-03-17T06:13:28Z",
"modified": "2025-03-17T10:00:21Z",
"order_supplier": 0,
"refund_supplier_quantity": 0,
"refund_marketplace_fee": 0.0,
"product_tax": 2.36,
"no_vat": "false",
"courier_info": {}
}
]
}
],
"totalCount": 2,
"offset": 0,
"limit": 3
3. Order Status Update
Endpoint: /api/v2/order/status
Metodo: POST
Allows updating the following data:
-
status
-
tracking and carrier information
-
the payment date
Warning:
It is possible to perform bulk updates for multiple orders with a single request.
Tracking and carrier information can be updated, but not removed.
The payment date can be updated, but not removed.
The request payload must have the following format:
[
{"id":1406, "status":"sent", "tracking":"test", "courier":59},
{"id":1453, "status":"sent", "tracking":"test", "courier_code":"BARTOLINI1"},
{"id":1442, "status":"accepted", "payment_date":"2020-10-20T02:30:00.000"},
{"id":1443, "status":"standby", "tracking":null, "courier":null, "payment_date":"2020-10-20T02:30:00.000"},
{"id":1453, "status":" sent ", "tracking":null, "courier":null, "payment_date":"2020-10-20T02:30:00.000", "shipping_note": "consegna effettuata di mattina"}
]
Each element in the array represents an update for a different order.
-
id
is the order ID (required) -
status
is the order status. It can be one of the following values:standby
,accepted
,sent
,cancelled
(required) -
courier_code
is an alternative to courier and represents the courier's identifier. It can be one of the following values:
AWS, BARTOLINI1, DBSCHENKER, DHL, EBOOST, FEDEX, FERCAM, GLS, GLSFIX, MBE, NEXIVE_EXP, NEXIVE_REG, POSTE_ITALIANE_CRONO, SDA, SOGETRAS, SPEDIAMO.IT, TNT, UPS -
tracking
is the tracking code, which must be provided together with courier -
payment_date
: payment date in ISO 8601 format -
shipping_note
: shipping notes (optional)
Various consistency checks are implemented.
The request may return a list of errors.
Status changes that were successful (or that resulted in no actual changes in the system) are not included in the response.
Example of a response with errors:
[
{
"index": 0,
"id": "1",
"error_message": "order with id 1 has tracking but no courier"
}
]
index
identifies the i-th element of the input. It can be set to-1
if the error cannot be traced back to a specific item.id
refers to the order IDerror_message
is a description of the error
[
]
Examples:
##################################
REQUEST V2
##################################POST /sr_company_ws/api/v2/order/status
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzcm9fYXBpIiwic3ViIjoiNDciLCJhdWQiOlsic3JvX2FwaSJdLCJpYXQiOjE3NTM3OTgxNTEsImV4cCI6MTc1Mzc5OTA1MSwianRpIjoiOWUzZTY1OTctOTQwOS00ZTIyLWI5NDktOTQ4MGYxNWFkZGYwIiwiYWNjb3VudF9pZCI6NDcsInVzZXJuYW1lIjoibS5jcmVtb25pbmlAc2VsbHJhcGlkby5jb20iLCJjb21wYW55X2lkIjozMTAsInRva2VuX25hbWUiOiJhY2Nlc3NfdG9rZW4iLCJleHBpcmVfYXQiOiIyMDI1LTA3LTI5VDE0OjI0OjExLjAyODMyNzcwN1oiLCJjcmVhdGlvbl9hdCI6IjIwMjUtMDctMjlUMTQ6MDk6MTEuMDI4MzI3NzA3WiIsInJlZnJlc2hfanRpIjoiMzgyMmZlODUtN2MyMy00MDMzLWI4ODktMjRhMzczZDQwZGY5In0.Y6P87Qc2IphD026gfDqaK6Q31olyFmlxy4j56aZxYsk
[{
"id": 2476,
"status": "sent",
"tracking": "M6660159584",
"courier_code":"666"
}]
##################################
RESPONSE
##################################HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Encoding: gzip
[]
in caso di errore payload di response del tipo
[
{
"index": 0,
"id": "2476",
"error_message": "Unable to enqueue a change status request for order 15690 on shop Sellrapido e-Commerce https://www.b2bdrop.com/ - ITA due to a previous pending request"
}
]
index: index of the order in the request payload (0-based)
id: order ID
error_message: information about the error that prevented the update
4. Product Extraction
Endpoint: /api/v2/product
Metodo: GET
The parameters are as follows:
catalog
: the ID of the catalog for which you want to download products. If not specified, products from all catalogs will be extracted.
published
: true. Set to "true" if you want to download only products published on at least one marketplace. If not specified, both published and unpublished products will be extracted.
zip
: false. Set to "false" if you want to download the CSV file inside a ZIP archive. If not specified, the CSV will be downloaded uncompressed.
fields
: e.g., sku, ean (list of columns to include in the export)
field_separator
: e.g., | (character used to separate fields in the file). If not specified, | will be used as the default separator.
row_separator
: e.g., \n (character used to separate rows in the file). If not specified, the newline character \n will be used by default.
text_qualifier
: character used as a qualifier for strings in the file. If not specified, no qualifier will be used.
Examples:
##################################
REQUEST V2
##################################GET /sr_company_ws/api/v2/product?fields=id,sku,title&catalog=77&published=false&zip=false&field_separator=%C2%A7&row_separator=%0A&text_qualifier=%27
Accept: application/csv
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzcm9fYXBpIiwic3ViIjoiNDciLCJhdWQiOlsic3JvX2FwaSJdLCJpYXQiOjE3NTM3OTkzNTcsImV4cCI6MTc1MzgwMDI1NywianRpIjoiMDNjNzg0NDgtNmU5OS00ZTQ5LTg1ZDEtYjU1NmMwMWZjM2YwIiwiYWNjb3VudF9pZCI6NDcsInVzZXJuYW1lIjoibS5jcmVtb25pbmlAc2VsbHJhcGlkby5jb20iLCJjb21wYW55X2lkIjozMTAsInRva2VuX25hbWUiOiJhY2Nlc3NfdG9rZW4iLCJleHBpcmVfYXQiOiIyMDI1LTA3LTI5VDE0OjQ0OjE3LjU5OTg5NTM5NFoiLCJjcmVhdGlvbl9hdCI6IjIwMjUtMDctMjlUMTQ6Mjk6MTcuNTk5ODk1Mzk0WiIsInJlZnJlc2hfanRpIjoiMzgyMmZlODUtN2MyMy00MDMzLWI4ODktMjRhMzczZDQwZGY5In0.uhDsRDEbQbklQV6Alghq5vmPqnOqdN_2yWfghRarrt4
decoded parameter listfields
:id,sku,titlecatalog
:77published
:falsezip
:falsefield_separator
:§row_separator
:%0Atext_qualifier
:'
################################
RESPONSE
################################ HTTP/1.1 200 OK
Content-Type: application/csv;charset=UTF-8
id§sku§title
'258264905'§'BD_IT_0009_AU22X2-P'§'Piedistallo per colonnina ULTRA'
'258264907'§'BD_IT_0009_AU22X2P-UACP'§'MaxiCharger AC ULTRA 2*22kW - 2 veicoli, versione con POS'
'258264910'§'BD_IT_0009_PWKIT-3KWSR'§'Kit montaggio 6 Moduli x tetto pannelli sandwich escluso binario'
'258264911'§'BD_IT_0009_PWKIT-3KWTR'§'Kit montaggio 6 moduli x tetti a tegola - escluso binario'
5. Creating/Updating Products
Product Creation
Endpoint: /api/v2/product
Metodo: POST
Product Update
Endpoint: /api/v2/product
Metodo: PATCH
The Product APIs allow updating any product regardless of the catalog type it belongs to: data entry, supplier, custom, marketplace inventory, etc.
If the catalog is linked to an external data source loaded automatically (e.g., supplier file), data uploaded via API may be overwritten by Sellrapido’s automatic import processes.
For this reason, it is recommended to use the APIs with "data entry" type catalogs or to proactively lock the product fields you want to update via API.
Description
Below are the specifications to implement the POST and PATCH APIs usable for creating and updating a list of products within Sellrapido.
-
POST: allows the creation of new products.
-
PATCH: allows partial updates of existing products.
Both APIs use JSON format and return standard HTTP status codes.
POST /api/product/{uuid}
Allows to create one or more products based on catalog and SKU.
Endpoint
POST /api/product/{uuid}
Header
Content-Type: application/json
Restrizioni Payload
- Array JSON con massimo 1000 elementi
- Ogni elemento deve includere:
catalog
(integer, required)sku
(string, required)price1
(double, required > 0)quantity
(integer, required > 0)
Editable Fields
condition_code, condition_description, sku_label, title, subtitle, description, description_extra, brand
url_image1 → url_image9
price2 → price6, price_cost, price_shipping1 → price_shipping6
fee_additional1 → fee_additional6, vat_perc, ean, isbn, mpn, asin
weight, weight_um, variations, extra1 → extra9
item_note, delivery_days, attributes, on_demand, on_demand_days
fields_lock
: contains a comma-separated list of field names that should not be altered by the catalog import procedures; this is to preserve the values set via the API, e.g., description, title, url_image1catalog_category1/2/3
: stringschannel_categories
: json array made as indicated in the Sellrapido product feed guide, or as follows
[
{
"channel": 1,
"category_id": "57267"
},
{
"channel": 503,
"category_id": "Fourniture de bureau et scolaire/Equipements de bureau/Accessoires bureau divers"
}
]
Payload Example
[
{
"catalog": 123456,
"sku": "SKU-00123",
"title": "Nuovo titolo prodotto",
"subtitle": "Sottotitolo aggiornato",
"description": "<p>Questa è una <strong>descrizione HTML</strong> con un elenco:</p><ul><li>Caratteristica 1</li><li>Caratteristica 2</li></ul><p>Grazie per l'interesse!</p>",
"brand": "MarcaX",
"quantity": 10,
"url_image1": "https://example.com/image1.jpg",
"price1": 19.99,
"price_cost": 10.50,
"vat_perc": 22,
"ean": "1234567890123",
"weight": 0.75,
"weight_um": "kg",
"extra1": "Informazione extra 1",
"item_note": "Nota sull'articolo",
"delivery_days": 3,
"on_demand": 1,
"on_demand_days": 7
}
]
Response
{
"created_items": [
{"index": 1, "data": { "catalog": 123456, "sku": "SKU-00123", ... }},
...
],
"errors": [
{"index": 0, "message": "Invalid fields [url]"},
...
]
}
PATCH /api/product/{uuid}
Allows partial product updates.
Endpoint
PATCH /api/product/{uuid}
Header
Content-Type: application/json
Restrizioni Payload
- JSON array with a maximum of 1000 elements.
- Each element must include:
catalog
,sku
Editable Fields
Same as those of the POST.
Payload Example
[
{
"catalog": 123456,
"sku": "SKU-00123",
"price1": 17.1,
"quantity": 15,
"attributes": [{ "name": "Numero prese Scart", "value": "1" }]
}
]
Response
{
"updated_items": [
{"index": 1, "data": {"price1": 17.1, ...}},
...
],
"errors": [
{"index": 0, "message": "Invalid fields [url]"},
...
]
}
Response Codes
-
200 OK – Request accepted.
-
400 Bad Request – Incorrect data.
-
500 Internal Server Error – Internal error.
Possible Error Messages
-
Request body must be an array
-
Invalid fields [field1, field2]
-
No updatable fields
-
Product SKU not found in catalog ID
-
Validation error: invalid format for field field
6. Migrating API v1 to v2
The V1 endpoints will remain active only temporarily, to ensure compatibility with existing clients during the migration to V2.
During this period, both V1 and V2 endpoints will be available.
Clients are strongly encouraged to switch to version V2, which offers a more robust, secure, and standardized architecture.
V1 endpoints do not require authentication via access token but will not receive any further updates or enhancements.
The final decommissioning date for the V1 endpoints is set for January 12, 2026.
Migration examples from V1 to V2:
- Order update (API - update orders status.txt)
- Order extraction (API - list orders.txt)
- Product extraction (API - list products.txt)