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 |