{"templateId":"markdown","versions":[{"version":"shipstation-v2","label":"ShipStation V2 API","link":"/apis/shipstation-v2/docs/partners/partner-integration-guide","default":true,"active":false,"folderId":"58c9a61d"},{"version":"shipengine","label":"ShipStation API (formerly ShipEngine)","link":"/apis/shipengine/docs/partners/partner-integration-guide","default":false,"active":true,"folderId":"58c9a61d"},{"version":"shipstation-v1","label":"ShipStation V1 API","link":"/apis/shipstation-v1/docs/partners/partner-integration-guide","default":false,"active":false,"folderId":"58c9a61d"}],"sharedDataIds":{"sidebar":"sidebar-apis/@shipengine/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Partner Integrations With ShipStation API","keywords":"shipping, labels, shipstation, documentation, api","siteUrl":"https://docs.shipstation.com","lang":"en-US","llmstxt":{"hide":false,"title":"ShipStation API LLM Docs","description":"Find links and references to all markdown documentation for use with LLMs","excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"partner-integrations-with-shipstation-api","__idx":0},"children":["Partner Integrations With ShipStation API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["ShipStation's Partner APIs allow platforms to manage individual ShipStation API accounts and make calls on their behalf. This workflow is useful if your customers are paying for their own shipping costs, as it supports the creation of individual account balances and provides logical separation for customer accounts."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"partner-key","__idx":1},"children":["Partner Key"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In order to use some of the API calls outlined in this section, you will need a Partner Key. Partner Keys are provisioned by the ShipStation API team and are available on request. You will need to provide us an email address that will be associated with the partner key - this email address will be the default on all accounts and can be overridden on account creation. It will also be the primary contact email in case of technical issues where our team may need to get in touch."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You will be provided with two credentials: one for testing, and one for production. The accessible endpoints and functions will be identical for both credentials. However, account access is exclusive to the credential set being used. Credentials can be cycled on request."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create-accounts","__idx":2},"children":["Create accounts"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The first step to access the ShipStation API as a partner is to ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/partners/accounts/create"},"children":["create a ShipStation API account"]},". An account created through the Partners API has full access to our production APIs, but limited access to the UI."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"account-management-fuctions","__idx":3},"children":["Account Management Fuctions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following functions are available to manage the accounts created through the partners API:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/partners/accounts/get-account"},"children":["Get Account by ID"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/partners/accounts/get-account-by-external-id"},"children":["Get Account by External ID"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/partners/accounts/list"},"children":["List your Accounts"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/partners/accounts/enable"},"children":["Enable a ShipStation API Account"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/partners/accounts/disable"},"children":["Disable a ShipStation API Account"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/partners/create-shipengine-api-key"},"children":["Create ShipStation API Key"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/partners/disable-api-key"},"children":["Disable API Key"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-on-behalf-of-header","__idx":4},"children":["The On-Behalf-Of header"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All calls to the ShipStation API will require the following two headers:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Header Name"},"children":["Header Name"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["API-Key"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This is your ShipStation Partner API key. See the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/getting-started/get-started"},"children":["Getting Started"]}," page for details."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["On-Behalf-Of"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This is the Account ID of the ShipStation API account that you are operating on behalf of."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"give-usps-access-to-each-merchant","__idx":5},"children":["Give USPS Access to Each Merchant"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Now that you have created an account for your user, they'll need carriers connected in order to ship. You can ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/carriers/connect"},"children":["connect carrier accounts"]}," or provision carrier accounts. In the US, you can provision USPS (via Stamps.com), UPS, and DHL Express through ShipStation API."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"http","header":{"controls":{"copy":{}}},"source":"POST /v1/registration/stamps_com HTTP/1.1\nHost: api.shipengine.com\nAPI-Key: __PARTNER_API_KEY_HERE__\nOn-Behalf-Of: se-123456\nContent-Type: application/json\n\n{\n  \"nickname\": \"My Stamps account\",\n  \"email\": \"useremail@gmail.com\",\n  \"agree_to_carrier_terms\": true,\n  \"should_send_email\": false,\n  \"address\": {\n    \"name\": \"Real Name\",\n    \"phone\": \"2223334444\",\n    \"company_name\": \"Real Company\",\n    \"address_line1\": \"123 Easy St\",\n    \"address_line2\": \"\",\n    \"city_locality\": \"Bronx\",\n    \"state_province\": \"NY\",\n    \"postal_code\": \"12345\",\n    \"country_code\": \"US\",\n    \"address_residential_indicator\": \"yes\",\n  }\n}\n","lang":"http"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"carrier_id\": \"se-12345\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"add-ups-services-to-an-account","__idx":6},"children":["Add UPS Services to an Account"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can enable UPS services for your user which will be funded through the account balance created in the previous step. You will need approval from UPS in order to offer these discounted UPS services to your users."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"http","header":{"controls":{"copy":{}}},"source":"POST /v1/registration/ups HTTP/1.1\nHost: api.shipengine.com\nAPI-Key: __PARTNER_API_KEY_HERE__\nOn-Behalf-Of: se-123456\nContent-Type: application/json\n\n{\n   \"nickname\": \"My UPS Account\",\n   \"email\": \"useremail@gmail.com\",\n   \"agree_to_carrier_terms\": true,\n   \"end_user_ip_address\": \"154.22.87.100\",\n   \"address\": {\n    \"name\": \"Real Name\",\n    \"phone\": \"2223334444\",\n    \"company_name\": \"Real Company\",\n    \"address_line1\": \"123 Easy St\",\n    \"address_line2\": \"\",\n    \"city_locality\": \"Bronx\",\n    \"state_province\": \"NY\",\n    \"postal_code\": \"12345\",\n    \"country_code\": \"US\",\n   }\n}\n","lang":"http"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"carrier_id\": \"se-12346\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"enabling-ups-ground-saver-for-existing-users","__idx":7},"children":["Enabling UPS Ground Saver for Existing Users"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can enable the UPS Ground Saver service for users who have already established their UPS account. This step is only required if the UPS account was created prior to UPS Ground Saver being enabled for your platform. This allows them to access this cost-effective shipping option for residential shipping."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"http","header":{"controls":{"copy":{}}},"source":"PUT /v1/connections/carriers/ups_walleted/{carrier_id}/settings HTTP/1.1\nHost: api.shipengine.com\nAPI-Key: __YOUR_SHIPENGINE_PARTNER_API_KEY__\nOn-Behalf-Of: __PAYPAL_ACCOUNT_ID__\nContent-Type: application/json\n\n{\n  \"nickname\": \"My UPS Account\",\n  \"is_primary_account\": true,\n  \"use_ground_freight_pricing\": false,\n  \"enable_ground_saver_service\": true\n}\n","lang":"http"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"add-dhl-express-services-to-an-account","__idx":8},"children":["Add DHL Express Services to an Account"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can enable DHL Express services for your user which will be funded through the account balance created in an earlier step."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"http","header":{"controls":{"copy":{}}},"source":"POST /v1/registration/dhl_express_walleted HTTP/1.1\nHost: api.shipengine.com\nAPI-Key: __PARTNER_API_KEY_HERE__\nOn-Behalf-Of: se-123456\nContent-Type: application/json\n\n{\n  \"nickname\": \"My DHL Account\"\n}\n","lang":"http"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"carrier_id\": \"se-12347\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"manage-the-account-balance","__idx":9},"children":["Manage the Account Balance"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Labels created via the account balance are pre-paid, meaning that there must be enough funds in the balance to create the label. To check the current balance, List Carriers - ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/reference/list-carriers"},"children":["Connect carrier accounts"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"add-funds","__idx":10},"children":["Add Funds"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"http","header":{"controls":{"copy":{}}},"source":"POST /v1/connections/carriers/stamps_com/::carrier_id/add_funds HTTP/1.1\nHost: api.shipengine.com\nAPI-Key: __PARTNER_API_KEY_HERE__\nOn-Behalf-Of: se-123456\nContent-Type: application/json\n\n{\n  \"currency\": \"usd\",\n  \"amount\": 10.0\n}\n\n","lang":"http"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"balance\": {\n    \"amount\": {\n      \"balance\": 14.0400,\n      \"postage_payment_id\": \"297745C13332000\"\n    },\n    \"currency\": \"usd\"\n  },\n  \"transaction_id\": \"6622440\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"auto-funding","__idx":11},"children":["Auto-Funding"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Some merchants prefer not to manually manage their balance. To facilitate a more seamless workflow we offer the option to setup auto-funding for the account balance, which will add funds when the balance gets below a certain threshold. Please note the balance must start at an amount over the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["low_balance_purchase_threshold"]}," to trigger auto-funding."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"http","header":{"controls":{"copy":{}}},"source":"POST /v1/carriers/::carrier_id/auto_funding HTTP/1.1\nHost: api.shipengine.com\nAPI-Key: __PARTNER_API_KEY_HERE__\nOn-Behalf-Of: se-123456\nContent-Type: application/json\n\n{\n  \"is_enabled\":true,\n  \"low_balance_purchase_threshold\": {\n    \"currency\":\"usd\",\n    \"amount\":\"10.0\"\n  },\n  \"purchase_amount\":{\n    \"currency\":\"usd\",\n    \"amount\":\"100.0\"\n    },\n  \"maximum_purchases_per_day\":10\n}\n\n","lang":"http"},"children":[]}]},"headings":[{"value":"Partner Integrations With ShipStation API","id":"partner-integrations-with-shipstation-api","depth":1},{"value":"Partner Key","id":"partner-key","depth":2},{"value":"Create accounts","id":"create-accounts","depth":2},{"value":"Account Management Fuctions","id":"account-management-fuctions","depth":3},{"value":"The On-Behalf-Of header","id":"the-on-behalf-of-header","depth":2},{"value":"Give USPS Access to Each Merchant","id":"give-usps-access-to-each-merchant","depth":2},{"value":"Add UPS Services to an Account","id":"add-ups-services-to-an-account","depth":2},{"value":"Enabling UPS Ground Saver for Existing Users","id":"enabling-ups-ground-saver-for-existing-users","depth":2},{"value":"Add DHL Express Services to an Account","id":"add-dhl-express-services-to-an-account","depth":2},{"value":"Manage the Account Balance","id":"manage-the-account-balance","depth":2},{"value":"Add Funds","id":"add-funds","depth":3},{"value":"Auto-Funding","id":"auto-funding","depth":3}],"frontmatter":{"seo":{"title":"Partner Integrations With ShipStation API"}},"lastModified":"2026-04-08T10:47:45.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/apis/shipengine/docs/partners/partner-integration-guide","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}