{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"7791e992-edf5-4cbd-8512-7acc4482befd","name":"FinditParts Reseller API 2.0.1","description":"The FinditParts Reseller API allows you to search parts inventory, create and integrate FinditParts accounts, quote shipping rates for orders, and place orders on behalf of linked FinditParts users.\n\nCreating FinditParts users require a name, email, shipping address, and payment method on file. The process for creating accounts occurs on a finditparts.com page but can be embedded in an iframe or the user can be redirected and redirected back upon completion.\n\nOnce a FinditParts user is setup, API reseller clients can initiate new orders on behalf of FinditParts users that have been created by, or linked to, a API reseller client via a \"Customer Reference\" (see `createResellerCustomerSession` method for more information).\n\nAlternatively, partner applications can use API key based authentication to automate quoting and purchasing in a white-label fashion within their own UI or internal applications.\n\nCustom Postman API collections are available for specific use cases and can be provided upon request.\n\n## JWT Basics\n\nUse the `Authorization` header in the format `Bearer JWT.TOKEN.HERE`.\n\nRequirements for generating each JWT:\n\n* Each request should include a unique [JWT Token](https://jwt.io/introduction/) signed with your Reseller Client Secret (provided by FinditParts) using the `HS256` algorithm.\n* Each JWT must include an expiration header `exp` which should be as short as reasonable to prevent requests from being replayed.\n* Each JWT must include an issuer header `iss` which should be set to your Reseller Client ID (provided by FinditParts).\n\nA generic signed JWT with the above is sufficient to authorize a request to the productSearch API or the getResellerCustomerSession APIs (not on behalf of a specific customer) but the createResellerCustomerSession and shippingMethods endpoints have some additional requirements as noted in the documentation for each method (most notably needing to be signed with the Customer Reference subject which designates the request on behalf of a specific customer).\n\nExample Generic JWT payload:\n```\nJWT.sign({\n  iss: \"acme-corp-sandbox\",\n  exp: 1600903066,\n}, 'RESELLER_CLIENT_SECRET')\n=> \"JWT.TOKEN.HERE\"\n```\n\nGenerate a new short-lived token for each request where each token is used in the Authorization HTTP header in the format:\n```\nAuthorization: Bearer JWT.TOKEN.HERE\n```\n\n## Create Reseller Customer Session JWTs\n\nIn addition, when generating JWTs for the purpose of creating new sessions on behalf of customers, additional JWT headers and custom payload must be provided. Please see createResellerCustomerSession for documentation.\n\n## Customer Reference JWTs\n\nSome endpoints such as Product Search and Shipping Methods require a customer reference `sub` in the JWT to act on behalf of a specific customer. Please see USER_SETUP documentation for initial customer reference setup and specific endpoint for documentation on JWT structure.\n\n# API key based authentication\n\nClient side apps that cannot use a JWT secret, for example mobile apps or single-buyer partner applications, can use API key authentication instead.\n\nReseller clients are issued an API key in the format `api-XYZ123` next to JWT credentials.\n\nThis key can be used in the `Authentication` header in the format `Bearer api-XYZ123` to access non-user specific endpoints such as product search, new session, and create user.\n\nFor user specific API calls such as user specific pricing in product search, creating orders, etc, API key clients must first exchange a users credentials for a user specific JWT token by using new sessions API call (this call still requires your API key).\n\nA user specific JWT can be used in the same `Authentication` header in the same format `Bearer USER.JWT.TOKEN` to access user specific endpoints.\n\n# iFrame\n\nWhen embedding the redirect_url in an iframe, you can receive javascript [postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) events for when:\n* The iFrame has loaded with the payload `{ pageLoaded: true }`\n* When the user has completed a session of NEW_ORDER or USER_SETUP. Payload described in the relevant secion.\n\n# Errors\n\nError responses from the API follow the format:\n```\n{\n  errno: 99,\n  message: \"...\"\n}\n```\n\n* 0: No error\n* 1: No part number provided\n* 2: Invalid address provided\n* 3: Product or variant requested is unavailable for sale\n* 4: Invalid order. Line items or the variant selected may not meet requirements.\n* 5: Order is not cancelable.\n* 6: Invalid credentials\n* 7: Invalid user\n* 99: Unknown error\n* 404: Not Found\n","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"12847304","team":1288135,"collectionId":"7791e992-edf5-4cbd-8512-7acc4482befd","publishedId":"2sA3XY6dfM","public":true,"publicUrl":"https://api-docs.finditparts.com","privateUrl":"https://go.postman.co/documentation/12847304-7791e992-edf5-4cbd-8512-7acc4482befd","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"d76127"},"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":"d76127"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"d76127"}}]}},"version":"8.11.14","publishDate":"2024-06-24T17:47:45.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"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/51a3a47d4ae4ed478aec57f1a29700720a623f8784917ba3dce6db714f055146","favicon":"https://res.cloudinary.com/postman/image/upload/v1602868369/team/dusbv6glxbstm9dmnrcv.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"}],"canonicalUrl":"https://api-docs.finditparts.com/view/metadata/2sA3XY6dfM"}