Create orders. Send invoices. Get paid.
Our Partner API lets you generate invoices for personalized apparel and leather on behalf of your customers. POST an order, get back a hosted pay link on monogram.shop — your customer pays through our secure checkout, and we handle production and shipping end-to-end. You set the amount, you set the customization — the invoice mirrors what you're billing.
Send your API key in the Authorization header.
Pass items, customer details, your reference, and (optionally) your own amount.
We return a hosted payment page on our site.
All four endpoints at a glance
Every endpoint takes the same Bearer authentication. Anchor links jump to the section with full request/response details.
| Method | Path | What it does | Details |
|---|---|---|---|
| POST | /api/v1/partner/orders | Create an invoice. Returns a hosted pay link. | jump ↓ |
| GET | /api/v1/partner/orders | List your invoices. Filter by status or reference, paginate with cursor. | jump ↓ |
| GET | /api/v1/partner/orders/{id} | Fetch one invoice in full — items, personalization, breakdown. | jump ↓ |
| GET | /api/products | Live product catalog. Same data as the section below. | jump ↓ |
Common gotcha: the path is /orders (plural), not /order.
What the fields mean
Every order body has the same five concepts. Get these right and the rest follows — examples below.
A short, URL-safe identifier for a product family. Lowercase, hyphenated, stable forever.
monogram-tee
Pick from the catalog below.
The specific size/colour/material option within a product. Globally unique.
tee-blk-m
Must belong to the productSlug you've chosen.
Customization keys vary per product (monogram, thread, placement…).
{ "monogram": "J.D.", "thread": "Gold" }Required fields are marked on each product card.
Optional. Your own unit price in integer cents — overrides catalog price.
7500 // $75.00
Up to $100,000 per line item. Omit to use the catalog price.
Optional. Your invoice ID. We store and echo it back on the order and webhooks.
INV-2026-00891
Max 120 chars. Useful for reconciliation.
How many of this variant. Integer between 1 and 50 per line item.
2
Subtotal = (amountCents or catalog price) × quantity.
Add an amountCents field to any line item to bill at the price you've quoted, instead of the catalog price. The hosted pay link will charge that exact total — ideal for wholesale, bespoke runs, gift orders, or contracted rates.
- · amountCents is the unit price in cents — subtotal = amountCents × quantity.
- · Up to $100,000 per line item. Omit to fall back to the catalog price shown below.
- · Personalization length limits are relaxed on partner orders — submit the monogram, message or engraving as quoted.
- · Required personalization fields are still enforced — partners must send all keys marked required.
Every product, every variant
Use the productSlug and variantSku values below in your order body. Personalization keys differ per product — each card lists exactly what to send.
Tees
4 productsproductSlug: pocket-teeHeavyweight cotton with an embroidered pocket.
| variantSku | Option | Price |
|---|---|---|
| pk-tee-blk-s | Black · S | $38 |
| pk-tee-blk-m | Black · M | $38 |
| pk-tee-blk-l | Black · L | $38 |
| pk-tee-ecr-m | Ecru · M | $38 |
| pk-tee-ecr-l | Ecru · L | $38 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)threadselectrequiredIvoryBlackTanGold
productSlug: henleyLong-sleeve henley with embroidered placket.
| variantSku | Option | Price |
|---|---|---|
| hn-ecr-m | Ecru · M | $42 |
| hn-ecr-l | Ecru · L | $42 |
| hn-cha-m | Charcoal · M | $42 |
| hn-cha-l | Charcoal · L | $42 |
monogramtextrequiredmax 3 chars (web only — relaxed for partners)threadselectrequiredIvoryBlackTan
productSlug: long-sleeve-teeGarment-washed cotton, embroidered sleeve.
| variantSku | Option | Price |
|---|---|---|
| ls-blk-m | Black · M | $45 |
| ls-blk-l | Black · L | $45 |
| ls-ecr-m | Ecru · M | $45 |
| ls-ecr-l | Ecru · L | $45 |
monogramtextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: monogram-teeHeavyweight cotton, embroidered with your initials.
| variantSku | Option | Price |
|---|---|---|
| tee-blk-s | Black · S | $35 |
| tee-blk-m | Black · M | $35 |
| tee-blk-l | Black · L | $35 |
| tee-ecr-m | Ecru · M | $35 |
| tee-ecr-l | Ecru · L | $35 |
monogramtextrequiredmax 3 chars (web only — relaxed for partners)threadselectrequiredIvoryBlackTanGold
Hoodies
3 productsproductSlug: zip-hoodieHeavyweight French terry with custom embroidery.
| variantSku | Option | Price |
|---|---|---|
| zh-cha-s | Charcoal · S | $82 |
| zh-cha-m | Charcoal · M | $82 |
| zh-cha-l | Charcoal · L | $82 |
| zh-cha-xl | Charcoal · XL | $82 |
| zh-olv-m | Olive · M | $82 |
| zh-olv-l | Olive · L | $82 |
texttextrequiredmax 18 chars (web only — relaxed for partners)placementselectrequiredLeft chestRight sleeve
productSlug: cropped-hoodieBoxy crop, midweight terry, embroidered.
| variantSku | Option | Price |
|---|---|---|
| ch-ecr-s | Ecru · S | $68 |
| ch-ecr-m | Ecru · M | $68 |
| ch-blk-s | Black · S | $68 |
| ch-blk-m | Black · M | $68 |
texttextrequiredmax 12 chars (web only — relaxed for partners)
productSlug: atelier-hoodieHeavyweight French terry, custom embroidery.
| variantSku | Option | Price |
|---|---|---|
| hd-cha-s | Charcoal · S | $72 |
| hd-cha-m | Charcoal · M | $72 |
| hd-cha-l | Charcoal · L | $72 |
| hd-cha-xl | Charcoal · XL | $72 |
texttextrequiredmax 18 chars (web only — relaxed for partners)placementselectrequiredLeft chestRight sleeveBack nape
Caps & hats
5 productsproductSlug: trucker-cap5-panel mesh-back, embroidered crest.
| variantSku | Option | Price |
|---|---|---|
| trk-blk | Black/White mesh | $28 |
| trk-nvy | Navy/White mesh | $28 |
| trk-olv | Olive/Tan mesh | $28 |
texttextrequiredmax 10 chars (web only — relaxed for partners)
productSlug: bucket-hatWashed canvas, embroidered side tab.
| variantSku | Option | Price |
|---|---|---|
| bkt-stn | Stone | $34 |
| bkt-olv | Olive | $34 |
| bkt-blk | Black | $34 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: washed-dad-capSoft-crown twill, unstructured, embroidered.
| variantSku | Option | Price |
|---|---|---|
| dad-blk | Washed Black | $30 |
| dad-stn | Washed Stone | $30 |
| dad-olv | Washed Olive | $30 |
| dad-nvy | Washed Navy | $30 |
texttextrequiredmax 10 chars (web only — relaxed for partners)
productSlug: cable-beanieChunky cable knit, embroidered cuff.
| variantSku | Option | Price |
|---|---|---|
| bn-cha | Charcoal | $26 |
| bn-ecr | Ecru | $26 |
| bn-rst | Rust | $26 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)threadselectrequiredIvoryBlackTanGold
productSlug: field-cap6-panel washed canvas with embroidered detail.
| variantSku | Option | Price |
|---|---|---|
| cap-stn | Stone | $32 |
| cap-olv | Olive | $32 |
| cap-blk | Black | $32 |
emblemtextrequiredmax 8 chars (web only — relaxed for partners)
Jackets
4 productsproductSlug: chore-coatCotton drill, four pockets, embroidered.
| variantSku | Option | Price |
|---|---|---|
| cc-ind-m | Indigo · M | $138 |
| cc-ind-l | Indigo · L | $138 |
| cc-blk-m | Black · M | $138 |
| cc-blk-l | Black · L | $138 |
| cc-stn-m | Stone · M | $138 |
nametextrequiredmax 14 chars (web only — relaxed for partners)
productSlug: bomber-jacketCotton/nylon shell, embroidered chest.
| variantSku | Option | Price |
|---|---|---|
| bm-blk-s | Black · S | $165 |
| bm-blk-m | Black · M | $165 |
| bm-blk-l | Black · L | $165 |
| bm-olv-m | Olive · M | $165 |
| bm-olv-l | Olive · L | $165 |
texttextrequiredmax 16 chars (web only — relaxed for partners)
productSlug: varsity-jacketMelton wool body, leather sleeves, chenille letter.
| variantSku | Option | Price |
|---|---|---|
| vs-blk-m | Black wool · Black leather · M | $185 |
| vs-blk-l | Black wool · Black leather · L | $185 |
| vs-nvy-m | Navy wool · Cream leather · M | $185 |
| vs-nvy-l | Navy wool · Cream leather · L | $185 |
lettertextrequiredmax 1 chars (web only — relaxed for partners)
productSlug: selvedge-denim-jacket13.5oz Japanese selvedge, embroidered to order.
| variantSku | Option | Price |
|---|---|---|
| dj-ind-s | Indigo · S | $145 |
| dj-ind-m | Indigo · M | $145 |
| dj-ind-l | Indigo · L | $145 |
designtextrequiredmax 24 chars (web only — relaxed for partners)placementselectrequiredChestBack yoke
Leather
11 productsproductSlug: card-holderItalian full-grain leather, four slots.
| variantSku | Option | Price |
|---|---|---|
| ch-tan | Tan | $48 |
| ch-brn | Walnut | $48 |
| ch-blk | Black | $52 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: airpods-caseSnap-on leather sleeve, debossed initials.
| variantSku | Option | Price |
|---|---|---|
| ap-pro-tan | Pro · Tan | $42 |
| ap-pro-blk | Pro · Black | $42 |
| ap-std-tan | Standard · Tan | $42 |
| ap-std-blk | Standard · Black | $42 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: watch-strapHand-stitched bridle leather, custom sized.
| variantSku | Option | Price |
|---|---|---|
| ws-tan | Tan · 20mm | $58 |
| ws-brn | Walnut · 20mm | $58 |
| ws-blk | Black · 20mm | $58 |
| ws-ox | Oxblood · 20mm | $58 |
stamptextrequiredmax 12 chars (web only — relaxed for partners)
productSlug: passport-holderFull-grain leather, debossed crest.
| variantSku | Option | Price |
|---|---|---|
| ph-tan | Tan | $78 |
| ph-brn | Walnut | $78 |
| ph-blk | Black | $84 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: money-clipLeather-wrapped spring steel, engraved.
| variantSku | Option | Price |
|---|---|---|
| mc-tan | Tan | $36 |
| mc-brn | Walnut | $36 |
| mc-blk | Black | $36 |
engravingtextrequiredmax 12 chars (web only — relaxed for partners)
productSlug: leather-notebookA6 refillable cover, blind-debossed.
| variantSku | Option | Price |
|---|---|---|
| nb-tan | Tan | $95 |
| nb-brn | Walnut | $95 |
| nb-blk | Black | $95 |
nametextrequiredmax 18 chars (web only — relaxed for partners)
productSlug: leather-coastersVegetable-tanned, engraved initials.
| variantSku | Option | Price |
|---|---|---|
| lc-nat | Natural | $32 |
| lc-brn | Walnut | $32 |
| lc-blk | Black | $32 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: leather-desk-matFull-grain workspace mat, hot-stamped corner.
| variantSku | Option | Price |
|---|---|---|
| dm-tan | Tan | $125 |
| dm-brn | Walnut | $125 |
| dm-blk | Black | $125 |
stamptextrequiredmax 18 chars (web only — relaxed for partners)
productSlug: engraved-walletItalian full-grain leather, engraved interior.
| variantSku | Option | Price |
|---|---|---|
| wlt-tan | Tan | $88 |
| wlt-brn | Walnut | $88 |
| wlt-blk | Black | $94 |
nametextrequiredmax 24 chars (web only — relaxed for partners)datedateoptional
productSlug: engraved-beltSolid brass buckle, full-grain leather strap.
| variantSku | Option | Price |
|---|---|---|
| bl-32 | 32" | $95 |
| bl-34 | 34" | $95 |
| bl-36 | 36" | $95 |
| bl-38 | 38" | $95 |
stamptextrequiredmax 20 chars (web only — relaxed for partners)
productSlug: weekend-dufflePebbled leather, monogrammed luggage tag.
| variantSku | Option | Price |
|---|---|---|
| duf-cog | Cognac | $385 |
| duf-blk | Black | $385 |
tagtextrequiredmax 3 chars (web only — relaxed for partners)
Accessories
12 productsproductSlug: iron-on-patchWoven twill, merrowed edge, custom text.
| variantSku | Option | Price |
|---|---|---|
| ptc-blk | Black/Ivory | $6 |
| ptc-olv | Olive/Tan | $6 |
| ptc-nvy | Navy/Gold | $7 |
texttextrequiredmax 12 chars (web only — relaxed for partners)
productSlug: key-fobA small piece of leather you actually use every day.
| variantSku | Option | Price |
|---|---|---|
| kf-nat | Natural | $24 |
| kf-brn | Brown | $24 |
texttextrequiredmax 14 chars (web only — relaxed for partners)
productSlug: monogram-sticker-packA starter set of die-cut vinyl stickers.
| variantSku | Option | Price |
|---|---|---|
| stk-wht | White ink | $3 |
| stk-blk | Black ink | $3 |
| stk-gld | Gold foil | $4.50 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: enamel-pinHard enamel, custom initials, butterfly clutch.
| variantSku | Option | Price |
|---|---|---|
| pin-brs | Brass | $5 |
| pin-slv | Silver | $6 |
| pin-gld | Gold-plated | $8 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: leather-bookmarkVegetable-tanned strip, hot-stamped initials.
| variantSku | Option | Price |
|---|---|---|
| bkm-nat | Natural | $8 |
| bkm-brn | Brown | $8 |
| bkm-blk | Black | $9 |
stamptextrequiredmax 4 chars (web only — relaxed for partners)
productSlug: woven-lanyardJacquard-woven cotton with your name.
| variantSku | Option | Price |
|---|---|---|
| lyd-blk | Black/Ivory | $9 |
| lyd-nvy | Navy/Cream | $9 |
| lyd-olv | Olive/Tan | $9 |
texttextrequiredmax 16 chars (web only — relaxed for partners)
productSlug: phone-strapBraided cord, leather tab, embossed initials.
| variantSku | Option | Price |
|---|---|---|
| phs-blk | Black cord · Black tab | $12 |
| phs-tan | Sand cord · Tan tab | $12 |
| phs-olv | Olive cord · Walnut tab | $12 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: cotton-bandanaHand-printed cotton, embroidered corner.
| variantSku | Option | Price |
|---|---|---|
| bnd-ind | Indigo | $14 |
| bnd-rst | Rust | $14 |
| bnd-blk | Black | $14 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: monogram-socksCombed cotton crew, embroidered cuff.
| variantSku | Option | Price |
|---|---|---|
| sck-blk | Black | $16 |
| sck-ecr | Ecru | $16 |
| sck-olv | Olive | $16 |
| sck-nvy | Navy | $16 |
monogramtextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: canvas-tote14oz heavy canvas, custom screen print.
| variantSku | Option | Price |
|---|---|---|
| tot-nat | Natural · Black ink | $18 |
| tot-blk | Black · White ink | $18 |
| tot-olv | Olive · Ivory ink | $18 |
texttextrequiredmax 18 chars (web only — relaxed for partners)
productSlug: knit-glovesLambswool, embroidered cuff.
| variantSku | Option | Price |
|---|---|---|
| glv-cha | Charcoal | $24 |
| glv-cml | Camel | $24 |
| glv-blk | Black | $24 |
monogramtextrequiredmax 3 chars (web only — relaxed for partners)
productSlug: wool-scarfLambswool, fringed edge, embroidered initials.
| variantSku | Option | Price |
|---|---|---|
| scf-cha | Charcoal | $32 |
| scf-cml | Camel | $32 |
| scf-nvy | Navy | $32 |
initialstextrequiredmax 3 chars (web only — relaxed for partners)
POST /api/v1/partner/orders HTTP/1.1
Host: monogram.shop
Authorization: Bearer YOUR_PARTNER_KEY
Content-Type: application/json
{
"reference": "INV-2026-00891",
"customer": {
"name": "Jane Doe",
"email": "jane@example.com",
"address": {
"line1": "12 Hudson Yards",
"city": "New York",
"region": "NY",
"postalCode": "10001",
"country": "US"
}
},
"items": [
{
"productSlug": "monogram-tee",
"variantSku": "tee-blk-m",
"quantity": 2,
"amountCents": 7500,
"personalization": { "monogram": "J.D.", "date": "2026-05-24", "thread": "Gold" }
}
],
"notes": "Gift wrap"
}HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "K4n7XQpA",
"status": "pending",
"reference": "INV-2026-00891",
"subtotalCents": 15000,
"shippingCents": 0,
"taxCents": 0,
"totalCents": 15000,
"currency": "USD",
"payUrl": "https://monogram.shop/pay/K4n7XQpA",
"createdAt": "2026-05-24T13:11:02.341Z"
}Fetching invoices
You can list every invoice you've created, or fetch one by id. Authentication is the same Bearer key you used to create the order — we'll only return invoices created with your key.
/api/v1/partner/ordersList your invoices, newest first. Returns a summary row per invoice plus a nextCursor for pagination.
status· pending | paid | fulfilled | cancelledreference· your invoice ID, exact matchcursor· ISO timestamp from previous responselimit· 1–100, default 25
GET /api/v1/partner/orders?status=paid&limit=10 Authorization: Bearer YOUR_PARTNER_KEY
{
"orders": [
{
"id": "K4n7XQpA",
"status": "paid",
"reference": "INV-2026-00891",
"customer": { "name": "Jane Doe", "email": "jane@example.com" },
"subtotalCents": 15000,
"shippingCents": 0,
"taxCents": 0,
"totalCents": 15000,
"currency": "USD",
"payUrl": "https://monogram.shop/pay/K4n7XQpA",
"itemCount": 2,
"createdAt": "2026-05-24T13:11:02.341Z",
"paidAt": "2026-05-24T13:18:44.001Z"
}
],
"nextCursor": "2026-05-24T13:11:02.341Z"
}/api/v1/partner/orders/{id}Full invoice payload — items, personalization, customer, pricing breakdown, and dates. Returns 404 if the invoice wasn't created with your API key.
GET /api/v1/partner/orders/K4n7XQpA Authorization: Bearer YOUR_PARTNER_KEY
{
"id": "K4n7XQpA",
"status": "paid",
"reference": "INV-2026-00891",
"customer": {
"name": "Jane Doe",
"email": "jane@example.com",
"address": { "line1": "12 Hudson Yards", "city": "New York", ... }
},
"items": [
{
"productSlug": "monogram-tee",
"productName": "Monogram Tee",
"variantSku": "tee-blk-m",
"variantLabel": "Black · M",
"quantity": 2,
"unitPriceCents": 7500,
"lineTotalCents": 15000,
"personalization": { "monogram": "J.D.", "thread": "Gold" }
}
],
"subtotalCents": 15000,
"shippingCents": 0,
"taxCents": 0,
"totalCents": 15000,
"currency": "USD",
"payUrl": "https://monogram.shop/pay/K4n7XQpA",
"notes": "Gift wrap",
"createdAt": "2026-05-24T13:11:02.341Z",
"paidAt": "2026-05-24T13:18:44.001Z",
"updatedAt": "2026-05-24T13:18:44.001Z"
}On every list response, if nextCursor is non-null, pass it back as ?cursor=<value> to get the next page. When nextCursor comes back as null, you've reached the end.
Common errors
| Message | Cause | Fix |
|---|---|---|
| Unauthorized | Missing or invalid Bearer token. | Re-check the Authorization header. |
| Validation failed (422) | Body doesn't match our schema. Response includes an issues map. | Match field names and types to the anatomy block above. |
| Unknown product: <slug> | productSlug isn't in the catalog or has been deactivated. | Use a slug shown in the catalog below. |
| Unknown variant <sku> for product <slug> | The SKU doesn't belong to that product. | Check the variant rows of the product card. |
| Missing required personalization "<key>" | A required customization key is absent or empty. | Send every key marked required on the product card. |
Personalization maxLength errors never apply to partner orders — those limits are relaxed for you.