{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"b6927c6f-1058-43c9-84fc-c373e69871b0","name":"IB Blue API Documentation","description":"The International Bridge Blue API allows developers to integrate shipping labels and fulfillment within their e-commerce businesses and online marketplaces. The API offers price comparison, label printing, manifest generation, transactions details and tracking features. The guideline below will help get you started. For additional help, please email us at [support@myibservices.com](https://mailto:support@myibservices.com).\n\nTo create an account, please visit [https://blue.myib.com](https://blue.myib.com/register) and sign up for a free account. You'll use the same email address and password to submit API requests (see below). Before you can start printing live labels, you'll need to (1) verify your email address, (2) verify your SMS, (3) fill in your full mailing address and (4) add a valid credit card to our system. In a short time, one of our agents will call you at the SMS number provided to verify your identity.\n\n## Carriers and Services\n\nCurrently the International Bridge Blue platform supports USPS, GSS (presorted and discounted USPS), FedEx, UPS and IB Carrier services. We are in the process of adding more carriers and services.\n\n## eVS vs ePostage\n\nInternational Bridge is certified for both USPS eVS and ePostage. By default, accounts are set up with the ePostage configuration. If you'd like to switch your account to the eVS configuration, please email us at [support@myibservices.com](https://mailto:support@myibservices.com).\n\n## Discounts\n\nFor high volume shippers, please contact us for possible domestic and international rate discounts. If you are part of an organization that has USPS negotiated rates and/or if you'd like to manage organization users (for pricing and billing), some additional steps are required. Please email us at [support@myibservices.com](https://mailto:support@myibservices.com).\n\n## Billing\n\nWe support several payment methods. By default, accounts are set up for \"meter\" payments. You can add funds to your meter using different payment methods (credit card, ACH, wire transfer or by mailing us a check). As you print shipping labels via the Blue website or the Blue API, the cost of the label is deducted from your account/meter balance. You can turn on the meter auto-refill flag to ensure printing labels without any downtime. For high volume shippers who are also trusted and vetted partners, we offer invoice billing.\n\neVS accounts handle billing directly with the USPS including refunds and adjustments. A platform usage fee is applied to eVS accounts via invoice.\n\n## Manifesting\n\nManifesting can be performed explicitly (for one or all unmanifested mailpieces) via the manifesting API or by using the Blue website. International Bridge manifests \"on behalf of the user\" at the end of the day at 11:55PM PST based on the mailpiece's postmark date. For example, if a mailpiece is postmarked for 02/12/2020, it is automatically manifested on 02/11/2020 at 11:55PM PST (if it wasn't already manifested or refunded). The manifest response contains a collection of several SCAN (Shipment Confirmation Acceptance Notice) forms, each with its EFN (Electronic File Number); the number of the SCAN forms depends on the induction point, destination entry and other aggregation factors.\n\n## Refunds\n\nYou may explicitly request a refund for any USPS label within the 30-day period after it's creation. This is accomplished by the appropriate API call which includes the mailpiece tracking number.\n\nOnce a refund is initiated, it typically takes about two weeks for USPS to finalize the refund request. After this time, if label doesn’t have any physical scans, you will be refunded the full label price. If you are on the Meter billing type, your account balance will be increased by the refunded amount. If you are on Invoice, we will credit you in the upcoming Invoice.\n\nThe refund notification (inlcuding the approved/rejected result) is done through a refunds report to your email address. This report is sent once a day for any requested refunds.\n\nRefunds are approved by the USPS. To qualify for a refund, the label must not be inducted into the USPS mailstream.\n\n## Adjustments\n\nAs a USPS-certified ePostage partner, International Bridge charges the user for any mailpiece adjustments incurred during the delivery.\n\nBased on the information entered by the user when the label is created, and the data obtained by the sampling of mailpieces, USPS verifies if a shipper has paid the correct postage amount. If USPS detects any underpayment, they will deliver the package to the recipient and charge the shipper for the postage due.\n\nAll label cost adjustments for the previous months are charged after 21st of current month. For Meter users the account balance will be decreased for the postage due. For Invoiced users, the adjustments will be charged on the next invoice.\n\nTo notify you about the label cost adjustments, every 1st of the month we email you a monthly adjustments-report. The report includes the list and metadata for all mailpieces for which postage has been adjusted during the past month.\n\nAdjustments are detected and charged by the USPS. The best way to avoid this and ensure a carefree shipping experience is by entering correct mailpiece information when creating the label.\n\n## Sandbox\n\nThe Sandbox environment will help you get started, test your requests and the API responses before you generate Production labels. To create an account on the Sandbox environment, please visit [https://blue-sandbox.myib.com](https://blue-sandbox.myib.com/register). A full mailing address and credit card information is not required like it is in Production. You cannot induct mailpieces into the mailstream using labels generated in the Sandbox environment. There are no additional charges associated with requests in the Sandbox environment. When you are ready to generate live labels, switch the API Sandbox URL with the API Production URL. The requests (including headers) do not change.\n\n## API Endpoints\n\nSandbox: [https://api-sandbox.myibservices.com/v1](https://api-sandbox.myibservices.com/v1)\n\nProduction: [https://api.myibservices.com/v1](https://api.myibservices.com/v1)\n\n## RESTful API\n\nThe API is a RESTful API that supports JSON requests and responses. HATEOAS is not supported. This documentation provides code samples and libraries for different platforms to help you get started.\n\nRequests must include \"Content-Type: application/json\" in the headers. Successful responses return HTTP status code 200 and 201. Depending on the request, responses return a JSON body or not. Unsuccessful responses return HTTP status codes 4XX and 5XX with additional error details (code and message). Click [here](#errors) for details on the API errors.\n\n## Versioning\n\nThe API version is specified in the endpoint URL. The current API version is v1.\n\n## Authentication\n\nAll API calls must be authenticated. API uses basic HTTP authentication to authenticate user requests. The username and the password are the email and the password associated with the user's account created on the International Bridge Blue website ([https://blue.myib.com](https://blue.myib.com)).\n\n## Request-Response Structure and Multiple Carriers\n\nThe structure of the API has been designed to support multiple carriers, and to easily allow developers to switch between carriers while keeping common sections unchanged. For example, the address and dimensions sections are universal and their structure wouldn't change between carrier A and carrier B. Carrier specific data is passed in carrier specific attributes. For example, a USPS shipping label which includes signature confirmation is included in the usps attribute (\"usps\" : { ..., \"services\" : \\[\"SignatureConfirmation\"\\] }).\n\nResponses follow the same structure. Shipping metadata which is carrier specific is returned in carrier specific attributes.\n\n## Pagination\n\nThe RESTful routes that return array of entities are paginated. The `page_number` and `page_size` parameters can be set in the URL query parameters or in the request headers. The response headers will contain the following pagination fields: `page-count`, `page-size`, `total-count-of-items`, `current-page`.\n\n``` shell\ncurl -u user@email.com:password -X GET --header \"Content-Type: application/json\" --header \"Accept: application/json\" \"https://api.myibservices.com/v1/labels?request_id=123&page_number=2&page_size=10\"\n\n ```\n\n> The above command returns a response with the following HTTP headers: \n  \n\n``` json\nCurrent-Page: 2\nPage-Count: 167\nPage-Size: 10\nTotal-Count-Of-Items: 1667\n\n ```\n\n## Errors\n\nThe RBAPI API uses the following error codes:\n\n| Error Code | HTTP Status Code | Meaning |\n| --- | --- | --- |\n| S0001 | 422 | Failed schema validation |\n| S0002 | 400 | JSON format - unable to parse JSON |\n| X0001 | 500 | Internal server error |\n| M0002 | 404 | Empty manifest - no mailpieces found to be manifested |\n| V0001 | 422 | Invalid parameter |\n| V0002 | 422 | Invalid service parameters |\n| V0004 | 422 | UPS error |\n| V0005 | 422 | FedEx error |\n| V0006 | 422 | GSS error |\n| V0007 | 400 | Phone already confirmed |\n| V0007 | 422 | Account balance insufficient funds |\n| V0008 | 400 | Phone confirmation failed |\n| V0009 | 422 | No phone number |\n| A0001 | 401 | Authentication error - unauthenticated or/and unauthorized |\n| A0002 | 422 | User status |\n| AVS01 | 422 | Invalid address |\n| AVS02 | 422 | Invalid zip code |\n| AVS03 | 422 | Invalid state |\n| AVS04 | 422 | Invalid city |\n| AVS05 | 422 | Address not found |\n| AVS06 | 422 | Multiple addresses found |\n| AVS07 | 422 | Invalid street number |\n\n## Source/Order API\n\nThe data-source, job and order API is part of the source/order feature which allows external clients to add orders to the Blue backend via API (without purchasing the actual labels), and then leverage the Blue UI (blue.myib.com) to manage the orders (update, price, purchase, print).\n\nThe sequence of API calls should follow: create data source, import orders via the datasource, check status of job for any exceptions and manage orders (either via the API or by logging into Blue). Orders can be created only in bulk (array) via the import API call on data source. Since this can be a long running operation in which some orders will be imported successfully while other could fail, the response is a stateful job that contains a summary of successful/failed orders. Individual orders can be deleted and updated via the API, but it is recommended that the Blue UI is used for this purpose.\n\nUnlike the rest of the API calls, these 3 APIs use a different endpoint but with the same authentication (basic) and authentication credentials obtained from the Blue signup.\n\nSandbox: [https://orderapi-sandbox.myibservices.com/v1](https://orderapi-sandbox.myibservices.com/v1)\n\nProduction: [https://orderapi.myibservices.com/v1](https://orderapi.myibservices.com/v1)","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"1470180","collectionId":"b6927c6f-1058-43c9-84fc-c373e69871b0","publishedId":"SzKPUfrh","public":true,"publicUrl":"https://docs.myibservices.com","privateUrl":"https://go.postman.co/documentation/1470180-b6927c6f-1058-43c9-84fc-c373e69871b0","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.0","publishDate":"2024-12-13T21:34:36.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[{"name":"sandbox","id":"f7741b2e-c88a-4a7b-98b6-b06475026746","owner":"1470180","values":[{"key":"url","value":"https://api-sandbox.myibservices.com","enabled":true,"type":"default"},{"key":"email","value":"email","enabled":true,"type":"default"},{"key":"password","value":"","enabled":true,"type":"secret"},{"key":"orderurl","value":"https://orderapi-sandbox.myibservices.com","enabled":true,"type":"default"},{"key":"sack_tag","value":"943006881901886654000588","enabled":true,"type":"default"},{"key":"test_url","value":"","enabled":true,"type":"default"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/49b229366a21febc226939575d864e9c9a75dbb4d1d31370082e07777c625ade","favicon":"https://res.cloudinary.com/postman/image/upload/v1581633023/team/nb2jzp8tdzeffpkpp7zk.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"sandbox","value":"1470180-f7741b2e-c88a-4a7b-98b6-b06475026746"}],"canonicalUrl":"https://docs.myibservices.com/view/metadata/SzKPUfrh"}