# The REST API of BeezUP system ## Overview The REST APIs provide programmatic access to read and write BeezUP data. Basically, with this API you will be able to do everything like you were with your browser on https://go.beezup.com ! The main features are: - Register and manage your account - Create and manage and share your stores with your friends/co-workers. - Import your product catalog and schedule the auto importation - Search the channels your want to use - Configure your channels for your catalogs to export your product information: - cost and general settings - category and columns mappings - your will be able to create and manage your custom column - put in place exlusion filters based on simple conditions on your product data - override product values - get product vision for a channel catalog scope - Analyze and optimize your performance of your catalogs on all yours channels with different type of reportings by day, channel, category and by product. - Automatize your optimisation by using rules! - And of course... Manage your orders harvested from all your marketplaces: - Synchronize your orders in an uniformized way - Get the available actions and update the order status - ...and more! ## Authentication credentials The public API with the base path **/v2/public** have been put in place to give you an entry point to our system for the user registration, login and lost password. The public API does not require any credentials. We give you the some public list of values and public channels for our public commercial web site [www.beezup.com](http://www.beezup.com). The user API with the base path **/v2/user** requires a token which is available on this page: https://go.beezup.com/Account/MyAccount ## Things to keep in mind ### API Rate Limits - The BeezUP REST API is limited to 100 calls/minute. ### Media type The default media type for requests and responses is application/json. Where noted, some operations support other content types. If no additional content type is mentioned for a specific operation, then the media type is application/json. ### Required content type The required and default encoding for the request and responses is UTF8. ### Required date time format All our date time are formatted in ISO 8601 format: 2014-06-24T16:25:00Z. ### Base URL The Base URL of the BeezUP API Order Management REST API conforms to the following template. https://api.beezup.com All URLs returned by the BeezUP API are relative to this base URL, and all requests to the REST API must use this base URL template. You can test our API on https://api-docs.beezup.com/swagger-ui\ You can contact us on [gitter, #BeezUP/API](https://gitter.im/beezUP/API)
Allows sellers to: 1) Load products definitions to the BrandLovers marktplace. 2) Receive and update orders status. 3) Receive and update shipping information. 4) Receive and update customer tickets. All requests consume and return application/json content. All request must be authenticated and use HTTPS.
# Introduction The Rebilly API is built on HTTP. Our API is RESTful. It has predictable resource URLs. It returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. You can use your favorite HTTP/REST library for your programming language to use Rebilly's API, or you can use one of our SDKs (currently available in [PHP](https://github.com/Rebilly/rebilly-php) and [C#](https://github.com/Rebilly/rebilly-dotnet-client)). # Authentication When you sign up for an account, you are given your first API key. You can generate additional API keys, and delete API keys (as you may need to rotate your keys in the future). You authenticate to the Rebilly API by providing your secret key in the request header. Rebilly offers three forms of authentication: private key, JSON Web Tokens, and public key. - private key: authenticates each request by searching for the presence of an HTTP header: REB-APIKEY. - JWT: authenticates each request by the HTTP header: Authorization. - public key: authenticates by the HTTP header: REB-AUTH (read more on this below). Rebilly also offers JSON Web Tokens (JWT) authentication, where you can control the specific granular permissions and expiration for that JWT. We call our resource for generating JWT [Sessions](#tag/Sessions). Rebilly also has a client-side authentication scheme that uses an apiUser and HMAC-SHA1 signature (only for the Tokens resource), so that you may safely create tokens from the client-side without compromising your secret keys. Never share your secret keys. Keep them guarded and secure. The client-side authentication scheme uses one HTTP header named REB-AUTH. # PHP SDK For all PHP SDK examples provided in this spec you will need to configure `$client`. You may do it like this: ```php $client = new Rebilly\Client([ 'apiKey' => 'YourApiKeyHere', 'baseUrl' => 'https://api.rebilly.com', ]); ```
# Integrating with ShipStation
ShipStation strives to streamline shipping for online sellers, no matter where they sell their products online. We are continuously adding new marketplaces, shopping carts, and integration tools, because we know the e-commerce space is growing.
As a result, we’ve worked hard to provide developer resources to build custom integrations with ShipStation. If you’re interested in becoming a partner of ours, drop us a line by [filling out this form](http://www.shipstation.com/partners/shipstation-api-custom-store/) and we’ll get in touch.
There are two methods to integrate with ShipStation:
* Custom Store Integration
* ShipStation API
## Custom Store Integration
Looking for a more 1-to-1 relationship between ShipStation and your chosen selling platform? The Custom Store Integration is the ticket. Our custom store integration is just like any of our other selling channel integration, and could be eligible (based on internal review) as a branded option within the ShipStation admin. It also allows the user to sync orders within ShipStation in a single click, in addition to ShipStation automatically sending shipment status and tracking information
updates back to your cart or marketplace once a label is created. It’s the best way to sync up orders with ShipStation and have the most seamless experience.
The Custom Store allows you to perform two major functions:
* Provide order information to ShipStation, including recipient address, products, customers, etc.
* Receive tracking information when an order is shipped, including shipping method, shipping status, tracking number, and more
To integrate with the Custom Store, you must expose a web page that renders XML that adheres to the specification defined in the Custom Store Integration Guide.
We refer to this page as your “XML Endpoint”. If you can provide us an XML Endpoint, we can *pull* data from your endpoint just like we do with other marketplaces like eBay and Amazon.
**To find out more about our Custom Store Integration, click here: [Custom Store Integration Guide](https://help.shipstation.com/hc/en-us/articles/205928478)**
## ShipStation API
Our API is available for any plan, and allows for read access to almost all data in your account, and write access to create specific objects, like Orders, Customers, and Products.
The API is a great way to get data directly to and from ShipStation, like creating products, customers, and querying order & shipping data. Please note that an API integration will not allow you to use your own MarketplaceID that could eventually be branded with your company's logo (see the Custom Store Integration above for that functionality).
**This API allows developers to build applications that interface with the ShipStation platform. The API can be used to automate many tasks including:**
+ Managing Orders
+ Managing Shipments
+ Creating Shipping Labels
+ Retrieving Shipping Rates
+ and more!!!
**To learn more about our API, please review our API documentation below.**
## Which one should I pick?
The method that's right for your integration very much depends on the type of integration you're planning on implementing. A Custom Store allows ShipStation to *pull* order information from your platform the very same way we *pull* data from marketplaces such as eBay, Amazon, and Shopify. Once an order has been shipped in ShipStation, ShipStation automatically *pushes* tracking information back to your custom store. Though the functionality afforded by this approach is limited to these 2 main functions, much of the *heavy lifting* is performed by ShipStation. Importing orders
and sending tracking information is performed automatically by ShipStation, as long as your XML endpoint is available to receive our data.
An API integration, on the other hand, exposes much more functionality, but requires that the developer do much of the heavy lifting. Orders must be *pushed* to ShipStation by using our "/orders/CreateOrder" endpoint. The API allows developers to perform functions such as tagging an order,
shipping an order, creating a shipping label (without an order), retrieving shipping rates, adding funds to a carrier account, creating a warehouse, listing products, and much more. The functionality the API affords are typical actions that a user would perform if using the web app.
* **Will your integration be the main order management tool for the online seller?** If so, the API's broader range of functionality may be the best option.
* **Would you like your store integration to be a branded marketplace within the ShipStation admin?** When you integrate using the Custom Store Integration, you could be eligible to have your company branded within the ShipStation admin. A branded store could have the plugin's logo in the app,
as well as an easier store setup, order sync, and reporting. Please note, ShipStation makes the final decision, based on integration and partner requirements, on which custom stores are branded within our application.
# ShipStation API Requirements
## End Point
Endpoints are located at the following domain https://ssapi.shipstation.com/ and will need to have a specific reference added to return data. PLEASE NOTE: You cannot access this URL directly and must reference one of the specific endpoints below.
The ShipStation API uses [Basic HTTP authentication](http://en.wikipedia.org/wiki/Basic_access_authentication). Use your ShipStation ``API Key`` as the username and ``API Secret`` as the password. You can find your ``API Key`` as the username and ``API Secret`` under Settings at https://ss.shipstation.com/#/settings/api .
The Authorization header is constructed as follows:
+ Username (``API KEY``) and password (``API Secret``) are combined into a string "username:password"
+ The resulting string is then encoded using the RFC2045-MIME variant of Base64, except not limited to 76 char/line
+ The authorization method and a space i.e. "Basic " is then put before the encoded string.
For example, if the ``API KEY`` given is 'ShipStation' and the ``API Secret`` is 'Rocks' then the header is formed as follows:
+ Authorization: Basic U2hpcFN0YXRpb246Um9ja3M=
## API Rate Limits
In an effort to ensure consistent application performance and increased scalability, we have implemented rate limiting on the ShipStation API. Your integration will need to be able to handle HTTP rate limiting status messages as defined below:
All responses will include headers with status information about rate limiting.
1. X-Rate-Limit-Limit: the maximum number of requests per minute to the endpoint
2. X-Rate-Limit-Remaining: the available requests remaining in the current window
3. X-Rate-Limit-Reset: the number of seconds remaining until the next window begins
**Hitting the Limit**
If your application hits the rate limit, an HTTP 429 will be returned with this body:
"message": "Too Many Requests"
And these headers, assuming it is 40 seconds into the current window:
When the limit is reached, your application should stop making requests until X-Rate-Limit-Reset seconds have elapsed. The current Rate limit for each set of the API Key and Secret is 40 requests per minute.
If you have any issues with the API, please email us at