Overview Last updated: 2024-11-25

Welcome Shop Management Systems (SMS) vendors! The Worldpac Developer Portal provides application developers documentation, sample code, and access to the SMS Vendor API Integration Guide for speedDIAL 2.0 - let's get you up and running fast! Have questions? Check out the Support section.

Terms and Conditions

By accessing or using this site and the Worldpac APIs, you agree to be bound by the terms and conditions setforth herein. Please read the Terms of Use for complete information.

Terms of Use

Documentation

This documentation provides information to help web-based SMS application developers get started using the speedDIAL 2.0 SMS API. Users of this documentation should have a general knowledge of web-based APIs and how they are used to authenticate and interact with databases and other applications. See the Getting Started section which describes the prerequisite API keys and tokens and how to obtain them. Additional technical resources which can be useful are listed in the Resources section.

About Worldpac

Headquartered in Newark, CA. USA, Worldpac is an importer and distributor of original equipment and quality aftermarket replacement automotive parts. Our speedDIAL catalog offering includes hundreds of thousands of products and millions of applications for all major vehicle makes. We provide product expertise and brand-recognized automotive parts directly to independent import and domestic service centers in the US, Canada and Puerto Rico with Same-Day delivery and Nationwide shipping options. Worldpac also offers customer services including our highly-praised technical and business training and other industry-leading events.

Getting Started

To get started integrating a Shop Management System (SMS) application using the speedDIAL 2.0 SMS API, you must obtain your unique vendor API Key.

Becoming a SMS Vendor

To become a qualified SMS Vendor and obtain an API Key, please email the API Integration Team at: [email protected] Please include the following company information:

Company Name
Full contact information
Associated SMS brand name
Number of years in business


Please allow 2 business days for a response from the API Integration Team. Qualified vendors will be listed on the Worldpac web sites under speedDIAL SMS API Integration

API Access Requirements

To setup a SMS API connection and obtain order information from speedDIAL 2.0, the SMS vendor will need to provide their Vendor Credentials and Customer Credentials.

Vendor Credentials

To setup a SMS API connection, the SMS vendor will need a unique API Key. To obtain an API Key, please see: Becoming a SMS Vendor

API Key

Note

When you receive your API Key, you will also receive a set of test customer credentials to be used for development. Once in production, you can drive your speedDIAL 2.0 customers to the How to create an API Token in speedDIAL 2.0 section to have them generate a unique API Token for their account.


Customer Credentials

To setup a SMS API connection your customer will need to provide the following credential information. These customer credentials will be stored in the SMS Vendor's system and used to create API punchout sessions.

Customer must have an existing Worldpac speedDIAL 2.0 account that is in good standing.

WORLDPAC Account number
speedDIAL 2.0 Username
Country of origin (US or Canada)
API Token (see steps below)

How to create an API Token in speedDIAL 2.0

  1. Log into speedDIAL 2.0
  2. From the account menu, choose Settings
  3. Click the API Tokens tab
  4. Click CREATE TOKEN and follow the steps.

Tip

Record the API Token for integrations purposes immediately after generating, you cannot retrieve this token later!
Be descriptive when naming your API Token - include the SMS service name that will be using the token and the date provisioned

Warning

Use caution when deleting API tokens - the 3rd-party SMS vendor using the token will no longer be able to authenticate on your behalf!

Connecting to the API

To connect to the the SMS API, a punchout session must be created. A punchout session is an authenticated, limited-time connection to the Worldpac speedDIAL 2.0 SMS API. Creating a punchout session is a two-step process (see diagram below) using your API credentials to request a punchout URL. The punchout URL is used by passing a specific command and associated parameters. See Command Reference Section.


SMS API Flowchart

Creating a Punchout URL

To create a punchout URL, use the baseurl and parameters listed below. A sample request and possible responses are also included below.

Tip

A punchout session token is valid for 12 hours. The token 'expiration' time is returned in the epoch format.

punchout Base URL

POST https://speeddial.worldpac.com/punchout/v1/create

POST Data Params

Name Type Description
apiKey string

The API Key for your company

apiToken string

The customer API Token created in the speedDIAL client

accountNo string

The customer account number

username string

The customer speedDIAL 2.0 username (usually an email address)

country string

US, Puerto Rico and Territories: US or US QA
Canada: CA or CA QA

smsVendorName string

The name to display in the footer of speedDIAL

referenceId string

The name to display in the footer of speedDIAL

webhooks.order string

The URL to POST back details about an order submitted to WORLDPAC

webhooks.quote string

The URL to POST back recently priced product quotes

webhooks.callback string

(OPTIONAL) A URL the browser will switch to once an order has been exported to the SMS Vendor

punchout Example

POST https://speeddial.worldpac.com/punchout/v1/create

POST Body Data

{
    "username": "{speeddial_user_email_address}",
    "accountNo": "{speeddial_account#}",
    "apiKey": "****************************************",
    "apiToken": "********************",
    "country": "US",
    "smsVendorName": "{SMS_VENDOR_NAME}",
    "webhooks": {
           "quote": "https://{SMS_VENDOR_ENDPOINT}",
           "order": "https://{SMS_VENDOR_ENDPOINT}",
        "callback": "https://{SMS_VENDOR_ENDPOINT}"
    }
}

Example Responses

Success

200 Successful operation
{
  "serverVersion": "SERVER_VERSION",
  "status": {
    "code": 200,
    "message": {
      "text": "Success"
    }
  },
  "punchout": {
    "url": "http://speeddial.worldpac.com/punchout/v1/{command}?token=4c722313-snippped-8cbd97fb3984",
    "token": "4c722313-snippped-8cbd97fb3984"
    "expiration": 1714434746
  }
}

Invalid Credentials

401 Unauthorized

  "serverVersion": "SERVER_VERSION",
  "punchout": {
    "url": "",
    "expiration": 0
  },
  "status": {
    "code": 401,
    "message": {
      "text": "Unauthorized",
      "ID": "UNAUTHORIZED"
    }
  }
}

Using the Punchout URL

The punchout URL returned when creating the punchout session is used to send commands to the Worldpac SMS API. The punchout URL contains a placeholder for the command to be used: {command}. Replace this placeholder with a command along with associated parameters or data, depending on the method. Once constructed, use the punchout URL to open a new browser window to speedDIAL 2.0. See command reference below.

Punchout URL

POST http://speeddial.worldpac.com/punchout/v1/{command}?token={token}

Command Reference

A list of Worldpac SMS API commands and Web Hooks are listed below. Commands that start with the word Show are intended to be loaded in a new browser tab by the SMS vendor, and will land the user on the speedDIAL client.

All other commands are API requests with a JSON response.

SMS API Commands

Command Description
ShowCatalog Launch a new window to this URL, and it will open the catalog with specified vehicle configured in speedDIAL 2.0
ShowOrder Launch a new window to this URL, and it will punchout and display an order in speedDIAL 2.0
GetProductQuotes An API endpoint to search for products using a search term or exact product information
CreateOrder An API endpoint to create an order using exact product information
SubmitOrder An API endpoint to submit an order by order ID

ShowCatalog

GET https://speeddial.worldpac.com/punchout/v1/ShowCatalog

Params

Name Type Description
token string

The session ID returned when the session was created

searchTerm string

(Optional) Catalog search term. e.g. brake pad

vin string

(Optional) VIN of the vehicle

licensePlate string

(Optional) Plate number for the vehicle

licenseState string

(Optional) The two character state code, e.g. CA

baseVehicleId string

(Optional) ACES Base Vehicle ID

referenceId string

(Optional) A reference ID sent back in a callback. e.g. PO# or WO#

ShowCatalog Examples

ShowCatalog by VIN

GET https://speeddial.worldpac.com/punchout/v1/ShowCatalog?token={token}&vin=SHSRD77414U240817&searchTerm=brake+pad

ShowCatalog With a License Plate

GET https://speeddial.worldpac.com/punchout/v1/ShowCatalog?token={token}&licensePlate=SAUSAGE&licenseState=TX&searchTerm=brake+pad

ShowCatalog with an ACES Vehicle ID

GET https://speeddial.worldpac.com/punchout/v1/ShowCatalog?token={token}&baseVehicleId=3732&searchTerm=brake+pad

ShowOrder

GET https://speeddial.worldpac.com/punchout/v1/ShowOrder

Params

Name Type Description
orderId string

The order number

referenceId string

(Optional) A reference ID sent back in a callback. e.g. PO# or WO#

ShowOrder Example

GET https://speeddial.worldpac.com/punchout/v1/ShowOrder?token={token}&referenceId=WO6498&orderId=92056498

GetProductQuotes

POST https://speeddial.worldpac.com/punchout/v1/GetProductQuotes?token={token}

POST Data Params

Name Type Description
productID string

Product ID or a search term

quantity string

Number of products requested

brandID string

(Optional) Must accompany the product ID for an exact match

referenceID string

(Optional) A reference ID sent back in a callback. e.g. PO# or WO#

JSON Response

{
  "serverVersion": "string",
  "status": {
    "code": "number",
    "message": {
      "text": "string",
      "ID": "string"
    }
  },
  "quotes": [
    {
      "productID": "string",
      "brandID": "string",
      "categoryID": "string",
      "productDesc": "string",
      "orderByTime": "number", // epoch
      "dispatchTime": "number", // epoch,
      "quantityAvail": "number",
      "quantityReq": "number",
      "price": "number",
      "listPrice": "number",
      "corePrice": "number",
      "weight": "number",
      "quality": "string",
      "makeId": "number",
      "subtotal": "number"
    }
  ],
  "referenceId": "string"
}

GetProductQuotes Examples

Using a search term to get gloves

POST https://speeddial.worldpac.com/punchout/v1/GetProductQuotes?token={token}

POST Body Data

{
  "productID": "gloves",
  "quantity": "1",
  "referenceID": "WO123456"
}

Exact match search with full product information

POST https://speeddial.worldpac.com/punchout/v1/GetProductQuotes?token={token}

POST Body Data

{
  "productID": "U 50",
  "brandID": "GMB",
  "quantity": "1",
  "referenceID": "WO123456"
}

CreateOrder

POST https://speeddial.worldpac.com/punchout/v1/CreateOrder?token={token}

POST Data Params

Name Type Description
referenceID string

(Optional) A reference ID sent back in a callback. e.g. PO# or WO#

productID string

WORLDPAC product ID

brandID string

WORLDPAC brand ID

quantity string

Quantity requested

JSON Response

{
  "serverVersion": "string",
  "status": {
    "code": "number",
    "message": {
      "text": "string",
      "ID": "string"
    }
  },
  "order": {
    "orderID": "string",
    "orderCreateTime": "number", // epoch
    "orderLines": [
      {
        "productID": "string",
        "brandID": "string",
        "categoryID": "string",
        "productDesc": "string",
        "dispatchTime": "number", // epoch
        "quantity": "number",
        "price": "number",
        "listPrice": "number",
        "corePrice": "number",
        "weight": "number",
        "quality": "string",
        "requestedProductId": "string",
        "status": "string",
        "statusDescription": "string"
      }
    ],
    "comment": "string",
    "status": "string",
    "statusDescription": "string"
  },
  "referenceId": "string"
}

CreateOrder Example

POST https://speeddial.worldpac.com/punchout/v1/CreateOrder?token={token}

POST Body Data

{
  "referenceID": "WO60667",
  "quotes": [
    {
      "productID": "143-3175",
      "brandID": "ND",
      "quantity": 1
    },
    {
      "productID": "3500-291825",
      "brandID": "API",
      "quantity": 1
    }
  ]
}

SubmitOrder

POST https://speeddial.worldpac.com/punchout/v1/SubmitOrder?token={token}

POST Data Params

Name Type Description
orderID string

WORLDPAC order number

referenceID string

(Optional) A reference ID sent back in a callback. e.g. PO# or WO#

JSON Response

{
  "serverVersion": "string",
  "status": {
    "code": "number",
    "message": {
      "text": "string",
      "ID": "string"
    }
  },
  "order": {
    "orderID": "string",
    "orderCreateTime": "number", // epoch
    "orderLines": [
      {
        "productID": "string",
        "brandID": "string",
        "categoryID": "string",
        "productDesc": "string",
        "dispatchTime": "number", // epoch
        "quantity": "number",
        "price": "number",
        "listPrice": "number",
        "corePrice": "number",
        "weight": "number",
        "quality": "string",
        "requestedProductId": "string",
        "status": "string",
        "statusDescription": "string"
      }
    ],
    "comment": "string",
    "status": "string",
    "statusDescription": "string"
  },
  "referenceId": "string"
}

SubmitOrder Example

POST https://speeddial.worldpac.com/punchout/v1/SubmitOrder?token={token}

POST Body Data

{
  "orderID": "45612378",
  "referenceID": "WO123456"
}

SMS API Web Hooks

Command Description
Order This webhook is called if the user chooses to Export & Submit an order. This will submit to WORLDPAC, and transfer the order details back to the SMS, using the webhooks.order webhook URL.
Quotes This webhook is called if the user chooses to Export an order. This will only transfer the order details back to the SMS, using the webhooks.quote webhook URL.

webhooks.order

Model

{
  "referenceID": "string",
  "order": {
    "orderID": "string",
    "orderCreateTime": "number",
    "orderLines": [
      {
        "productID": "string",
        "brandID": "string",
        "categoryID": "string",
        "productDesc": "string",
        "dispatchTime": "number",
        "quantity": "number",
        "price": "number",
        "listPrice": "number",
        "corePrice": "number",
        "weight": "number",
        "quality": "string",
        "requestedProductId": "string",
        "status": "string",
        "statusDescription": "string"
      }
    ],
    "comment": "string",
    "status": "number",
    "statusDescription": "string"
  }
}

Example

{
  "referenceID": "WO37405",
  "order": {
    "orderID": "33375002",
    "orderCreateTime": 1728489420000,
    "orderLines": [
      {
        "productID": "BLB9006",
        "brandID": "API",
        "categoryID": "WC",
        "productDesc": "Headlight Bulb",
        "dispatchTime": 1728513000000,
        "quantity": 1,
        "price": 6.06,
        "listPrice": 17.44,
        "corePrice": 0.0,
        "weight": 0.0,
        "quality": "",
        "requestedProductId": "9006",
        "status": "3",
        "statusDescription": "Order submitted"
      }
    ],
    "comment": "sms export/submit",
    "status": "3",API Punchout Session
    "statusDescription": "Order submitted"
  }
}

webhooks.quote

Model

{
  "referenceID": "string",
  "quotes": [
    {
      "productID": "string",
      "brandID": "string",
      "categoryID": "string",
      "productDesc": "string",
      "orderByTime": "number",
      "dispatchTime": "number",
      "quantityAvail": "number",
      "quantityReq": "number",
      "price": "number",
      "listPrice": "number",
      "corePrice": "number",
      "weight": "number",
      "quality": "string",
      "makeId": "number",
      "subtotal": "number"
    }
  ]
}

Example

{
  "referenceID": "WO37405",
  "quotes": [
    {
      "productID": "BLB9006",
      "brandID": "API",
      "categoryID": "WC",
      "productDesc": "Headlight Bulb",
      "orderByTime": 1728511200000,
      "dispatchTime": 1728513000000,
      "quantityAvail": 1,
      "quantityReq": 1,
      "price": 6.06,
      "listPrice": 17.44,
      "corePrice": 0.0,
      "weight": 0.0,
      "quality": "",
      "makeId": 49,
      "subtotal": 12.12
    }
  ]
}

Export an Order to SMS

The diagram below depicts the flow when using the Export button in a speedDIAL 2.0 order. When exported, order data is supplied to the SMS application using the webhooks.order URL supplied in the ShowCatalog API request.

SMS API Punchout Session


Resources

The Resources section contains various related automotive standards and the JSON specification.

JSON Specification

JSON is a lightweight, text-based, language-independent syntax for defining data interchange formats. It was derived from the ECMAScript programming language, but is programming language independent. JSON defines a small set of structuring rules for the portable representation of structured data.

ECMA-404 - The JSON data interchange syntax
JSON.org

Aftermarket Catalog Exchange Standard (ACES®)

The Aftermarket Catalog Exchange Standard (ACES®) is the aftermarket industry data standard for the management and communication of product fitment data.

Aftermarket Catalog Exchange Standard (ACES®)

Note

While ACES® is an open-source standard, some attribute values require a paid subscription to access the latest automotive vehicle and part data.

Product Information Exchange Standard (PIES™)

The Product Information Exchange Standard (PIES™) is the aftermarket industry data standard for the management and communication of product information.

Product Information Exchange Standard (PIES™)

Note

While PIES™ is an open-source standard, some attribute values require a paid subscription to access the latest automotive vehicle and part data.

Support

Contact a Worldpac Sales representative for answers to general questions about Worldpac products and services. See Getting Started if you want to become an API customer.


 Worldpac Sales Management Team

Worldpac API Support Team

Existing Web Partners and SMS Vendors can contact the Worldpac API support team with any technical questions, concerns, or bug-reports regarding Worldpac APIs.

 API Technical Support

Note

While every effort is made to respond to questions as quickly as possible, please allow 2 business days for a response to API support questions.

Changelog

Changes to the speedDIAL 2.0 SMS API are listed below in chronological order.

11/25/2024

speedDIAL 2.0 SMS API integration documentation published

Initial publication of speedDIAL 2.0 SMS API documentation to the Worldpac Developer Portal.