This integration is powered by Singer's Shippo tap. For support, visit the GitHub repo or join the Singer Slack.
Shippo integration summary
Stitch’s Shippo integration replicates data using the Shippo API. Refer to the Schema section for a list of objects available for replication.
Shippo feature snapshot
A high-level look at Stitch's Shippo integration, including release status, useful links, and the features supported in Stitch.
STITCH | |||
Release Status |
Released |
Supported By | |
Stitch Plan |
Free |
Singer GitHub Repository | |
DATA SELECTION | |||
Table Selection |
Unsupported |
Column Selection |
Unsupported |
REPLICATION SETTINGS | |||
Anchor Scheduling |
Unsupported |
Advanced Scheduling |
Unsupported |
Table-level Reset |
Unsupported |
Configurable Replication Methods |
Unsupported |
TRANSPARENCY | |||
Extraction Logs |
Unsupported |
Loading Reports |
Supported |
Connecting Shippo
Step 1: Retrieve your Shippo API token
- Sign into your Shippo account.
- In the left nav tab, click API.
-
Locate the API LIve Token field in the Tokens section:
Leave this page open for now - you’ll need it to complete the setup.
Step 2: Add Shippo as a Stitch data source
- Sign into your Stitch account.
-
On the Stitch Dashboard page, click the Add Integration button.
-
Click the Shippo icon.
-
Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.
For example, the name “Stitch Shippo” would create a schema called
stitch_shippo
in the destination. Note: Schema names cannot be changed after you save the integration. - In the Shippo Token field, paste your Shippo API Live token.
Step 3: Define the historical sync
The Sync Historical Data setting will define the starting date for your Shippo integration. This means that data equal to or newer than this date will be replicated to your data warehouse.
Change this setting if you want to replicate data beyond Shippo’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.
Step 4: Create a replication schedule
In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.
Shippo integrations support the following replication scheduling methods:
To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.
Initial and historical replication jobs
After you finish setting up Shippo, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.
For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.
Free historical data loads
The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.
Shippo table schemas
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs
> customers
), while case is maintained in PostgreSQL destinations (CusTomERs
> CusTomERs
). Refer to the Loading Guide for your destination for more info.
addresses
Replication Method : |
Key-based Incremental |
Replication Key : |
object_updated |
Primary Key : |
object_id |
API endpoint : |
The addresses
table contains info about address objects. These are used to create shipments, obtain rates, and print labels.
object_id
The address object ID. Reference: |
|||
object_updated
The last time the address was updated. |
|||
object_state
The state of the address. Possible values include |
|||
object_purpose
Indicates if the address can be used to purchase labels or only obtain rates. Possible values are |
|||
object_source
The source of the address. Possible values are |
|||
object_created
The time the address was created. |
|||
object_owner
The username of the user who created the address. |
|||
name
The first and last name of the addressee. |
|||
company
The company name associated with the address. |
|||
street1
The first street line of the address. |
|||
street2
The second street line of the address. |
|||
city
The name of the city contained in the address. |
|||
state
The state of the address. State values are only required for United States and Canada. Ex: |
|||
zip
The postal code of the address. |
|||
country
The address’s country code. Ex: |
|||
phone
The phone number associated with the address. |
|||
email
The email address of the contact person. |
|||
is_residential
Indicates if the address is a residential address. |
|||
metadata
Additional information about the address. |
|||
test
Indicates if the address was created in test mode. |
|||
messages
Details about messages associated with the address.
|
parcels
Replication Method : |
Key-based Incremental |
Replication Key : |
object_updated |
Primary Key : |
object_id |
API endpoint : |
The parcels
table contains info about parcel objects. Parcels are used to create shipments, obtain rates, and print labels.
object_id
The parcel ID. Reference: |
object_updated
The last time the parcel was updated. |
object_state
The state of the parcel. Ex: |
object_created
The time the parcel was created. |
object_owner
The username of the user who created the parcel. |
template
This is the template defined for the parcel. A parcel template is a predefined package used by one or multiple carriers. Click the link in the left column for more info about possible values in Shippo’s documentation. |
length
The length of the parcel. |
width
The width of the parcel. |
height
The height of the parcel. |
distance_unit
The unit used for length, width, and height. Possible values are:
|
weight
The weight of the parcel. |
mass_unit
The unit used for weight. Possible values include:
|
metadata
Additional information about the parcel. |
extra
Optional extra services requested for each parcel in a multi-parcel shipment. Click the link in the left column for more info about possible values in Shippo’s documentation. |
test
Indicates if the parcel was created in test mode. |
refunds
Replication Method : |
Key-based Incremental |
Replication Key : |
object_updated |
Primary Key : |
object_id |
API endpoint : |
The refunds
table contains info about refunds, which are reimbursements for successfully created but unused transactions.
Refund processing time and data discrepancies
If the data in this table doesn’t look like you’d expect it to, keep in mind that refunds can take up to 14 days to be processed.
object_id
The refund ID. |
object_updated
The time the refund was last updated. |
object_created
The time the refund was created. |
object_owner
The username of the user who created the refund. |
transaction
The ID of the transaction to be refunded. Reference: |
test
Indicates if the refund was created in test mode. |
shipments
Replication Method : |
Key-based Incremental |
Replication Key : |
object_updated |
Primary Key : |
object_id |
API endpoint : |
The shipments
table contains info about shipment objects. Shipment objects are made up of to and from addresses and the parcel to be shipped.
object_id
The shipment ID. |
|||
object_updated
The last time the shipment was updated. |
|||
object_state
The state of the shipment. Possible values are |
|||
object_purpose
Indicates whether a shipment can be used to purchase labels or only obtain quote rates. Possible values are |
|||
object_created
The time the shipment was created. |
|||
object_owner
The username of the user who created the shipment. |
|||
object_from
The ID of the address that should be used as the sender address. Reference: |
|||
object_to
The ID of the address that should be used as the recipient address. Reference: |
|||
object_return
The ID of the address where the shipment will be sent back if it isn’t delivered. If this field is not set, shipments will be returned to the address in the Reference: |
|||
object_parcel
The ID of the parcel to be shipped. Reference: |
|||
submission-date
The date the shipment will be tendered to the carrier. |
|||
insurance_amount
The total parcel value to be insured. |
|||
insurance_currency
The currency used for |
|||
extra
|
|||
customs_declaration
The ID of the customs declarations object for an international shipment. |
|||
reference1
Optional text to be printed on the shipping label. |
|||
reference2
Optional text to be printed on the shipping label. |
|||
rates_url
The URL of the rates list for the given shipment. |
|||
rates_list
Values of available rates.
|
|||
carrier_accounts
IDs of the carrier accounts to be used for getting shipping rates for the shipment.
|
|||
metadata
Additional information about the shipment. |
|||
test
Indicates if the shipment was created in test mode. |
|||
messages
Details about messages associated with the shipment.
|
transactions
Replication Method : |
Key-based Incremental |
Replication Key : | |
Primary Key : |
object_id |
API endpoint : |
The transactions
table contains info about transactions, which are the purchases of shipping labels from a shipping provider for a specific service.
object_id
The transaction ID. Reference: |
|||
object_updated
The time the transaction was last updated. |
|||
object_state
Indicates the validity of the transaction based on the given data, regardless of what the carrier returns. Possible values include |
|||
object_status
The status of the transaction. Possible values:
|
|||
object_created
The time the transaction was created. |
|||
object_owner
The username of the user who created the transaction. |
|||
test
Indicates if the transaction was created in test mode. |
|||
rate
The ID of the rate object for which a label has to be obtained. |
|||
tracking_number
The carrier-specific tracking number that can be used to track the shipment. A value will only be returned if:
|
|||
tracking_status
The latest tracking information for the shipment.
|
|||
tracking_history
A list of tracking events for the shipment the transaction is associated with. |
|||
tracking_url_provider
The URL used to track the item on the carrier-provided tracking website. |
|||
label_url
The URL for the label in the format defined in the account settings. |
|||
commercial_invoice_url
The URL for the commercial invoice for this transaction as a PDF. Values are only returned if:
|
|||
metadata
Additional information about the transaction. |
|||
messages
Details about messages associated with the transaction.
|
Related | Troubleshooting |
Questions? Feedback?
Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.