Printcart logo

Build path: product to print-ready PDF

Printcart's REST API build path takes a product from nothing to a print-ready PDF in a fixed sequence: create the product, define a printable side with bleed and a safe zone, save a design against it, and generate the file. This guide walks each step, with links to the full schema in the API Reference.

Updated . Maintained by the Printcart team.

The sequence

text
POST /account            -> JWT
POST /stores             -> sid, secret, unauth_token
POST /products           -> product
POST /sides              -> printable surface (design area, bleed, safe zone)
   or POST /products/{id}/sides/import-from-template
POST /images             -> upload artwork (or POST /multipart/create for large files)
POST /designs            -> saved design (creates a project implicitly)
POST /projects           -> order (or reuse the implicit one)
POST /designs/{id}/generate/print-pdf -> print-ready PDF
POST /webhooks           -> get notified when things change

Each step is documented with request and response schemas in the API reference. Authentication for each call is covered in Authentication.

Sides carry print-readiness

A product on its own is not printable. The side carries the geometry:

Response fieldMeaning
design_area{width, height, top, left}: the printable rectangle
cut_line_margin{x, y}: bleed, left and right and top and bottom
safe_zone_margin{x, y}: the keep-clear margin inside the trim
side_image_size{width, height}: the mockup image size
scalepixels per dimension_unit, which turns canvas coordinates into physical size

Geometry is submitted in the same grouped form, not as flat columns. Units come from the product's dimension_unit, which is inch, cm or px.

GET /products/{product}/production-readiness reports what is still missing before a product can produce output. It is a useful onboarding pre-flight.

Designs

POST /designs takes either multipart/form-data with a design_file, or JSON that references a design_image_id you uploaded earlier. Send exactly one of side_id or product_id, and exactly one of the two file inputs.

layers, the canvas document, is submitted as a JSON-encoded string and returned as JSON. Each design snapshots the side geometry into original_side, so editing the side later does not change how an existing design renders.

Output

EndpointProduces
POST /designs/{design}/generate/print-pdfA print-ready CMYK PDF with TrimBox and BleedBox and marks. For a canvas product, the full print sheet with a cut line
POST /designs/{design}/generate/pdfA plain RGB page at the design-area size, with no bleed, marks or boxes. Not a press file
POST /designs/{design}/generate/preview-pdfA low-resolution proof. Do not send it to press
POST /designs/{design}/generate/pngA raster image for thumbnails and emails

The PDF endpoints cache their result: repeat calls return the same file until you pass {"reset": true}. The PNG endpoint takes no body. Rendering is synchronous and can take several seconds.

Projects are orders

When a store is connected to a platform such as WooCommerce, Shopify or Wix, one platform order becomes one project. Commercial fields on a project, such as customer email, totals and currency, are derived from the order data the platform integration wrote.

A project you create directly through the API does not have that order data, so those fields are empty. Keep your own order record as the source of truth for commerce and use the project id as the join key.

GET /projects/{project} returns everything needed to produce an order. It is the only response that embeds project_items, and those items embed their designs.

Questions & answers

What is the shortest path from a new product to a print-ready PDF?

Create the product, add a side (or import one from a template) with its bleed and safe zone, upload artwork, save a design, then call POST /designs/{id}/generate/print-pdf.

What is the difference between generate/print-pdf and generate/pdf?

generate/print-pdf is a CMYK, press-ready file with TrimBox, BleedBox and marks. generate/pdf is a plain RGB page at the design-area size with no bleed or marks — not a press file.

How do I know a product is ready to produce?

Call GET /products/{product}/production-readiness. It reports what is still missing before the product can generate real output.

Can you work with a merchant in my country?

Yes. Printcart services are delivered remotely, so we work with merchants in any country. Netbase JSC, the company behind Printcart, has worked with clients in 80+ countries.

Do you support my industry?

Printcart services are not tied to one industry. Full stores, custom development, integration and support are delivered remotely; tell us what you sell and we will say plainly whether Printcart fits.

How do I pay securely?

You sign the contract with and pay the company, Netbase JSC. App plans are billed through Shopify or Wix for stores on those platforms, and through PayPal for WooCommerce and direct stores. Full-store orders on solution.printcart.com check out through PayPal. Service work is quoted in writing in your Helpdesk ticket before any payment.

Who do I talk to?

Talk to our CEO, Huy Nguyen (David), on WhatsApp at https://wa.me/84937869689 or by email at support@printcart.com.

Sources