Skip to main content

ShipStation Integration

Real ID can automatically sync ID checks on your orders with ShipStation and update their corresponding order status when customers complete ID checks.

That way you can automate a holding process, where a high risk order is automatically held until the customer verifies their ID.

How does it work?

Real ID integrates with ShipStation using their REST API. Once you enter your ShipStation API credentials in Real ID, then pick order statuses that should be applied when the customer completes or requires ID verification from your ID triggers.

Orders are searched in ShipStation using the WooCommerce order ID as the external reference, with optional prefix support for merchants who use prefixes in their ShipStation setup.

Creating ShipStation API Credentials

First, generate API credentials in your ShipStation account:

Opening your ShipStation API account

  • Go to Settings > API Settings

Opening the ShipStation API settings within the settings navigation menu

  • Click "Generate API Keys", make sure to select the v1 ShipStation API key option

Selecting the ShipStation v1 API as the key type then generate the key

  • Copy both the API Key and API Secret for the next step

Copying the Shipstation API key and secret for integration into the Real ID WooCommerce plugin

Integrating ShipStation with Real ID

Adding the shipstation API credentials to the Real ID WooCommerce plugin. After integrating, Real ID will automatically hold and release orders in ShipStation based on customer verification

Now that you have ShipStation API credentials, let's connect them to Real ID.

Open the Real ID Settings > WooCommerce tab and scroll to the ShipStation Integration settings.

Then enter your API Key and API Secret that you generated in ShipStation:

Adding the ShipStation API keys to Real ID to finish the integration

If your WooCommerce orders appear in ShipStation with a prefix (like "WC-1234" instead of just "1234"), enter that prefix in the Order Prefix field. Otherwise, leave it blank.

As you enter your credentials, click Test Connection to verify the connection. If the credentials are correct, you'll see a "Connected" message.

Don't forget to click Save in the top right hand corner so these changes are saved.

ShipStation Order Statuses syncing

After setting up the integration and successfully connecting, Real ID will automatically handle fulfillment statuses in ShipStation:

  • When ID Check is Created: On Hold (prevents shipping until verified)
  • When ID Check Passes: Awaiting Shipment (ready to fulfill)
  • When ID Check Fails: Cancelled (prevents fulfillment)

Order Processing Flow

When ID Verification is Required

When an order requires ID verification:

  • First checks if the order is already shipped, cancelled, or in fulfillment (skips if true)
  • Updates ShipStation order to your chosen "On Check Created" status (default: On Hold)
  • Adds an internal note: "ID verification required"
  • Prevents the order from shipping until verification completes

When ID Verification Passes

When the customer successfully completes verification:

  • First checks if the order is already shipped or cancelled (skips if true)
  • Updates ShipStation order to your chosen "On Check Passed" status (default: Awaiting Shipment)
  • Adds an internal note: "ID verification passed"
  • The order can now be fulfilled normally

When ID Verification Fails

When verification fails:

  • First checks if the order is already shipped or cancelled (skips if true)
  • Updates ShipStation order to your chosen "On Check Failed" status (default: Cancelled)
  • Adds an internal note: "ID verification failed"
  • The merchant can decide how to proceed

Edge Cases Handled

Late ID Verification: If a customer completes ID verification after their order has already been cancelled or shipped, the integration will skip the update and log this event. You'll see a note in the ID check events explaining what happened.

Orders Already Being Packed: If an order is already in "Awaiting Shipment" status when an ID check is created, it won't be reverted back to "On Hold". This prevents disrupting your warehouse operations.

Order Status Protection

The ShipStation integration includes comprehensive safeguards to ensure ID verification never disrupts your fulfillment operations. Understanding these protections helps you confidently use the integration without worrying about interference with your shipping workflow.

Protected Order States

The integration will automatically skip updates for orders in these states:

1. Shipped Orders (Status ID: 4)

  • Why it's protected: Once an order is marked as shipped in ShipStation, it represents a completed fulfillment transaction
  • What happens: If ID verification completes after shipping, no update occurs
  • Event logged: "Order [ID] is in a final state (Shipped) and will not be updated"
  • Use case: Prevents confusion when customers complete verification after receiving their order

2. Cancelled Orders (Status ID: 5)

  • Why it's protected: Cancelled orders represent a business decision that shouldn't be reversed automatically
  • What happens: ID verification results won't change cancelled status
  • Event logged: "Order [ID] is in a final state (Cancelled) and will not be updated. Note: ID verification passed but order was already cancelled."
  • Use case: Maintains order history integrity and prevents resurrection of cancelled transactions

3. Orders Being Fulfilled (Status ID: 2 - Awaiting Shipment)

  • Why it's protected: Orders in active fulfillment shouldn't be disrupted
  • What happens: New ID checks won't revert these orders back to "On Hold"
  • Event logged: "Order [ID] is already in fulfillment and will not be reverted to hold"
  • Use case: Prevents warehouse confusion when packing is already underway

How Protection Works

When any ID verification event occurs, the integration follows this decision flow:

  1. Fetch Current Status: Retrieves the order's current status from ShipStation
  2. Check Protection Rules: Determines if the order is in a protected state
  3. Skip or Proceed:
    • Protected states: Logs the skip reason and takes no action
    • Non-protected states: Proceeds with the configured status update

Viewing Protected Order Events

All protection decisions are transparently logged in the ID check's event timeline:

  1. Navigate to the ID check details in your WooCommerce admin
  2. Scroll to the Events section
  3. Look for events with type "shipstation-order-sync-skipped"
  4. These events explain why an update was skipped

Common Scenarios

Scenario 1: Late Verification

  • Customer places order requiring ID verification
  • Merchant manually ships order before verification completes
  • Customer later completes ID verification
  • Result: Order remains "Shipped", skip event is logged

Scenario 2: Quick Cancellation

  • Order requires ID verification
  • Customer requests cancellation
  • Merchant cancels in ShipStation
  • Customer attempts ID verification
  • Result: Order remains "Cancelled", skip event is logged

Scenario 3: Fast Fulfillment

  • Order initially doesn't require ID (under threshold)
  • Merchant begins fulfillment (Awaiting Shipment)
  • Manual ID check is created later
  • Result: Order remains "Awaiting Shipment", not reverted to hold

Customizing Protection Behavior

While the core protections cannot be disabled (by design), you can:

  1. Adjust Status Mappings: Configure which statuses are applied for non-protected orders
  2. Use Manual Overrides: Manually update orders in ShipStation when needed
  3. Monitor Skip Events: Use the event log to identify patterns and adjust your workflow

Frequently Asked Questions

How are orders matched between WooCommerce and ShipStation?

Real ID searches for orders in ShipStation using the WooCommerce order ID as the external reference. If you've configured an order prefix, it will be prepended to the order ID during the search.

What happens if an order isn't found in ShipStation?

If an order can't be found in ShipStation (perhaps it hasn't synced yet), the status update will be skipped and an event will be logged. The integration will continue to function normally for other orders.

Can I disable certain status updates?

Yes, you can leave any status mapping blank in the settings to disable that particular update. For example, if you don't want to automatically cancel failed orders, leave the "When ID Check Fails" field empty.

How do I know if the integration is working?

Each ShipStation action is logged as an event on the ID check. You can view these events in the check details to see exactly what happened with the ShipStation integration.

The ShipStation order status isn't updating, what should I check?

  1. Verify the integration is enabled in settings
  2. Check that your API credentials are correct using the "Test Connection" button
  3. Ensure the order exists in ShipStation with the correct external reference
  4. Check if you're using an order prefix and have it configured correctly
  5. Review the events on the ID check for any error messages
  6. Make sure thare aren't multiple ShipStation orders for a single corresponding WooCommerce order
  7. Review the order's status in ShipStation, if it's in a final state such as canceled or shipped, then Real ID cannot update it