Get Started
Welcome to the TeeAllover API documentation. This guide will help you integrate with our print-on-demand platform.
📋 Prerequisites
To use this API, you need two essential credentials:
- StoreCode - Your unique 3-character store identifier
- API Authentication - Username and Password for basic auth
Follow the steps below to obtain these credentials from your TeeAllover account.
🔑 How to Get Your StoreCode and API Credentials
Step 1: Login to TeeAllover
Visit TeeAllover Pro and login to your account. You can get the StoreCode ( Example: MPO ) as image below.

Step 2: Navigate to Account Settings
Once logged in, go to: Menu → Edit Account → Settings
Or directly visit: Account Settings
Step 4: Get Your Credentials
- API Username: Use the same StoreCode value as your username
- API Password: Get From Account Settings

API Endpoints Configuration
Available Endpoints:
Authentication
All API requests require authentication using Basic Auth with your TeeAllover credentials.
🔐 Authentication Requirements
You need two pieces of information to authenticate with the API:
- StoreCode - Your 3-character store identifier
- Username:Password - Username and password for basic auth
Authorization Type
Basic Auth - Base64 encoded credentials
📝 How Authentication Works
The API uses HTTP Basic Authentication. Your credentials are encoded in Base64 format and sent in the Authorization header.
Format:
Authorization: Basic <base64_encode(username:password)>
Example:
storeCode:mypassword123
This gets Base64 encoded to:
TVBPOm15cGFzc3dvcmQxMjM=
# Authentication Example
curl -X GET \
-H "Authorization: Basic <base64_encode(MPO:your_password)>" \
"https://api.teeallover.com/t/Tee/v1//Store"
⚠️ Security Best Practices
- Never hardcode credentials in your application code
- Use environment variables or secure configuration files
- Always use HTTPS when making API requests
- Rotate your password regularly
- Monitor your API usage for any suspicious activity
Testing Your Credentials
You can test your authentication by making a simple request to the Store endpoint:
# Test Authentication
curl -X GET \
-H "Authorization: Basic <base64_encode(MPO:your_password)>" \
"https://api.teeallover.com/t/Tee/v1/MPO/Store"
If authentication is successful, you'll receive your store information. If not, you'll get a 401 Unauthorized response.
Overview Flow
Complete workflow from store creation to order fulfillment and tracking.
🔄 Process Flow Chart
POST /Store - Initialize your store
POST /Order - Submit order with products
System verifies product availability and design files. It may take a few minutes if files to large. so to reduce verification time, Please cache return SKU ( contain design number ) in your system then reuse it.
Order verified and ready for fulfillment
POST /request_fulfillment - Process order
Order processed successfully
Error returned directly
GET /Tracking - Monitor order status
Real-time updates sent to your webhook endpoint
📋 Key Points
- Store Creation - Required first step to initialize your store
- Order Submission - Orders are posted with product details
- Product & Design Verification - System verifies availability and design files
- Order Ready - Verified orders are ready for fulfillment
- Fulfillment Request - Manual request to process verified orders
- Error Handling - Errors are returned directly without webhook notifications
- Tracking - Real-time order status monitoring
- Webhooks - Automatic notifications for status changes
Products
Get all available TeeAllover products with their options and specifications.
Get Map Files
Get map product examples or available positions (extra positions) for a specific product.
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
product | String | Required | Product code to get map files for (e.g., "lhd2") |
Stores
Retrieve all stores associated with your account.
Create Store
Create a new store in your account.
Request Body
Response
Parameters
Field | Type | Description |
---|---|---|
store_url | String | Your store URL |
Create Order
Create a new order with line items and shipping information.
Request Body
Response
Order Parameters
Field | Type | Required | Description | Limit |
---|---|---|---|---|
store_name | String | Required | A store of your account. Ex: ABC1 | - |
order_name | String | Required | Order Name | 20 |
String | Optional | Customer email | 50 | |
phone | String | Optional | Customer phone | 50 |
financial_status | String | Optional | Paid, Processing, Authorized, Completed. Other mark as Pending | 20 |
created_at | String | Optional | datetime: Y-m-d H:i:s | 20 |
line_items | Array | Required | Order must contain line_items | - |
shipping_address | Object | Required | Order must contain Shipping Address | - |
🎯 TikTok Label Information
For TikTok Label, please use the following format:
- address1: Label URL (required)
- address2: Tracking Number (required)
- Other fields: Fill with "***"
Get Order
Retrieve order details by store name and order name.
Query Parameters
Field | Type | Required | Description |
---|---|---|---|
store_name | String | Required | Store Code |
order_name | String | Required | Order Name |
Response
Update Order Info
Update order information including customer details and shipping address.
Query Parameters
Field | Type | Required | Description |
---|---|---|---|
store_name | String | Required | Store Code |
order_name | String | Required | Order Name |
Update Parameters
Field | Type | Required | Description |
---|---|---|---|
String | Optional | Customer email address | |
phone | String | Optional | Customer phone number |
financial_status | String | Optional | Payment status (e.g., "Paid", "Pending") |
first_name | String | Optional | Customer first name |
last_name | String | Optional | Customer last name |
address1 | String | Optional | Primary address line |
address2 | String | Optional | Secondary address line |
city | String | Optional | City name |
province | String | Optional | State or province |
country | String | Optional | Country code (e.g., "US", "CA") |
zip | String | Optional | Postal/ZIP code |
Request Body
Update Order Item
Update specific line items within an order.
Parameters
Field | Type | Required | Description |
---|---|---|---|
store_name | String | Required | Store Code |
order_name | String | Required | Order Name |
item_id | String | Required | Specific item ID to update |
quantity | Integer | Optional | New quantity for the item |
item_status | String | Optional | Item status (e.g., "order", "hold", "cancel") |
Request Body
Response
Request Cancel
Cancel specific line items from an order and process refunds. If your order locked to production, you may need supporter from TeeAllover.
Request Body
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
store_name |
string | Yes | Store identifier |
order_name |
string | Yes | Order identifier |
items |
array | Yes | Array of line item IDs to cancel |
new_status |
string | No | New status for canceled items (trash, hold, normal) |
Response
Response Fields
Field | Type | Description |
---|---|---|
success |
boolean | Indicates if the request was successful |
data.store_name |
string | Store identifier |
data.order_name |
string | Order identifier |
data.total_refund |
number | Total refund amount for all canceled items |
data.line_items |
array | Array of canceled line items |
data.line_items[].item_id |
string | Shopify line item ID |
data.line_items[].sku |
string | Product SKU |
data.line_items[].quantity |
number | Quantity canceled |
data.line_items[].invoice_id |
string | Invoice ID |
data.line_items[].item_status |
string | New status applied to the item |
Status Values
trash
: Item is canceled and moved to trashhold
: Item is put on holdnormal
: Item status is reset to normal (empty status)
Error Responses
{
"success": false,
"error": [
"LineItem 123456789 not found",
"LineItem 987654321 is not fulfilled"
]
}
Common Error Messages
"LineItem {item_id} not found"
: The specified line item doesn't exist"LineItem {item_id} is not fulfilled"
: The line item doesn't have a valid invoice ID"Invalid new status"
: The new_status parameter has an invalid value
Business Rules
- Only items with valid invoice IDs can be canceled
- Seller can only cancel items they own
- Refunds are automatically processed for canceled items
- Email notifications are sent to relevant parties
Request Fulfillment
Request invoice creation for specific line items to fulfill orders.
Request Body
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
store_name |
string | Yes | The store identifier (e.g., "ABC1") |
order_name |
string | Yes | The order identifier (e.g., "1234") |
items |
array | Yes | Array of item_id to request fulfill |
Response
Response Fields
Field | Type | Description |
---|---|---|
success |
boolean | Indicates if the request was successful |
data.store_name |
string | The store identifier |
data.order_name |
string | The order identifier |
data.invoice_name |
string | The generated invoice name |
data.total |
number | Total amount of the invoice |
data.line_items |
array | Array of fulfilled line items |
Error Responses
Common error messages:
"LineItem {item_id} not found"
: The specified line item doesn't exist"LineItem {item_id} already has invoice"
: The line item is already fulfilled"Your balance is not enough"
: Insufficient balance to create invoice"No valid items found"
: No items could be processed
Business Rules
- Only items without existing invoices can be fulfilled
- Seller must have sufficient balance to cover the invoice total
- Seller can only fulfill items they own
- Invoice is created immediately upon successful request
- Balance is deducted automatically upon invoice creation
Get Tracking
Retrieve tracking numbers for shipped orders.
Response
Webhooks
Manage webhooks to receive real-time notifications about order updates.
Available Topics
Topic | Type | Description |
---|---|---|
tracking_updated
|
Webhook | When tracking information is updated |
invoice_error
|
Webhook | List of orders not invoiced when system creates invoice |
design_error
|
Webhook | Notice Design Error: When Map Items with file urls. System must process file urls to valid design files. If something went wrong, system will send this webhook to notify you. |
Get Webhooks Response
Create Webhook Request
Create Webhook Response
Update Webhook Request
Update Webhook Response
Delete Webhook Request
Delete Webhook Response
Design Error Webhook Payload
When a design error occurs, your webhook endpoint will receive a POST request with the following payload:
Design Error Fields
Field | Type | Required | Description |
---|---|---|---|
errors | Array | Required | Array of design error objects |
errors[].store_name | String | Required | Store name where the error occurred |
errors[].order_name | String | Required | Order name where the error occurred |
errors[].sku | String | Required | SKU of the item with design error |
errors[].item_id | String | Required | Unique identifier of the item |
errors[].quantity | String | Required | Quantity of the item |
errors[].design_status | String | Required | Status indicating design error (e.g., "Design-error") |
errors[].error | String | Required | Detailed error message including file ID or path |
topic | String | Required | Webhook topic identifier ("design_error") |
Error Codes
The TeeAllover API uses the following error codes:
Error Code | Meaning |
---|---|
101 | Permission Denied |
400 | Bad Request |
401 | Unauthorized |
404 | Not Found |