Managed accounts (aka retailer credentials) allow you to use your own retailer
accounts (e.g., Amazon) for order processing. This gives you control over the accounts
used to place orders and can help with order limits and account management.
Overview
When you create retailer credentials, Zinc uses those accounts to log in and place orders on your behalf. Credentials are encrypted and stored securely.
If you don’t configure retailer credentials, Zinc will use default internal accounts
to process your orders.
Order Locking
To prevent conflicts and ensure order integrity, managed accounts are locked during order processing. Only one order can be processed at a time per managed account.
If you submit multiple orders simultaneously using the same managed account, they will be queued and processed sequentially. This prevents issues like duplicate cart items or checkout conflicts that could occur if multiple orders were placed concurrently on the same retailer account.
Endpoints
| Method | Endpoint | Description |
|---|
GET | /users/managed-accounts | List all your retailer credentials |
POST | /users/managed-accounts | Create new retailer credentials |
PUT | /users/managed-accounts/{short_id} | Update existing credentials |
DELETE | /users/managed-accounts/{short_id} | Delete credentials |
Create Credentials
curl -X POST https://api.zinc.com/users/managed-accounts \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"password": "your-amazon-password",
"retailer": "amazon"
}'
Request Fields
| Field | Type | Required | Description |
|---|
email | string | Yes | The email address for the retailer account |
password | string | No | The password for the retailer account (encrypted on storage) |
retailer | string | No | Retailer name (e.g., amazon). If omitted, applies as default credentials |
Response
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"short_id": "zn_acct_a1b2c3d4",
"email": "[email protected]",
"retailer": "amazon",
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-01-15T10:30:00Z"
}
Passwords are never returned in API responses. They are encrypted and stored securely.
List Credentials
curl https://api.zinc.com/users/managed-accounts \
-H "Authorization: Bearer <your_api_key>"
Response
{
"credentials": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"short_id": "zn_acct_a1b2c3d4",
"email": "[email protected]",
"retailer": "amazon",
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-01-15T10:30:00Z"
}
],
"total": 1
}
Update Credentials
Use the short_id from the credentials response to update:
curl -X PUT https://api.zinc.com/users/managed-accounts/zn_acct_a1b2c3d4 \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json" \
-d '{
"password": "new-password"
}'
Request Fields
All fields are optional. Only provided fields are updated.
| Field | Type | Description |
|---|
email | string | New email address |
password | string | New password |
retailer | string | New retailer association |
Delete Credentials
curl -X DELETE https://api.zinc.com/users/managed-accounts/zn_acct_a1b2c3d4 \
-H "Authorization: Bearer <your_api_key>"
Returns 204 No Content on success.
Response Fields
| Field | Type | Description |
|---|
id | string (UUID) | Unique identifier |
short_id | string | Short identifier used in URLs (e.g., zn_acct_a1b2c3d4) |
email | string | Retailer account email |
retailer | string or null | Retailer name, or null if default credentials |
created_at | string (ISO 8601) | When the credentials were created |
updated_at | string (ISO 8601) | When the credentials were last updated |
Best Practices
-
Use dedicated accounts - Create retailer accounts specifically for Zinc orders to avoid conflicts with personal orders
-
Monitor account health - Retailer accounts can be locked if flagged for unusual activity. Check for
login_failed or account_locked errors
-
Keep credentials updated - If you change your retailer account password, update it here to avoid order failures