EN
Sign up

Template library

Return form and RMA PDF templates

Bring the return reference, items, and customer instructions into a branded PDF. Adapt a template to your support team’s process.

02designs available
06categories

2 templates

Organize every return

A form that fits your support workflow

Help the customer and the receiving team identify the return and the items included in the package.

RMA, order, and customer

Connect a return reference to the original order and the contact details your team needs.

Items and serial numbers

Use a table for SKUs, descriptions, quantities, and serial numbers when applicable. Avoid relying on the product name alone.

Reasons and observations

Include the reason recorded by support and notes that help the receiving team review the return.

Instructions and contact details

Add instructions approved by your team, the return address, and a contact for questions. Review the conditions before distributing the document.

From return record to RMA form

  1. Copy a form

    Save an RMA design into your project and adapt its sections to your team’s process.

  2. Connect the record

    Bind the reference, customer details, items, and return instructions to your data fields.

  3. Publish and share

    Publish your copy and generate a PDF from the app or API to accompany the return.

Your data, your layout

Example data for an RMA return

The example connects a return to its order, customer, and item. Replace the reasons and instructions with those approved by your team.

The return_request fields are illustrative: each design may use a different schema. Match the names to “Schema & default data” in your copy and replace template_id with your published template’s ID.

Download return-form-request.json Understand data field bindings
return-form-request.json
{
  "template_id": "YOUR_PUBLISHED_TEMPLATE_ID",
  "expiry_minutes": 60,
  "data": {
    "return_request": {
      "number": "RMA-1042",
      "order_number": "ORD-2048",
      "requested_on": "2026-10-30",
      "customer": {
        "name": "Alex Morgan",
        "email": "customer@example.com"
      },
      "items": [
        {
          "sku": "MUG-01",
          "description": "Ceramic mug",
          "quantity": 1,
          "serial_number": "SN-00042",
          "reason": "Arrived damaged"
        }
      ],
      "instructions": "Include this form inside the parcel. Use the return address supplied by support.",
      "support_email": "returns@example.com"
    }
  }
}

From template to PDF

Generate an RMA form with the API

Save the file as return-form-request.json, replace the template ID, and adapt its data. Create an API token with documents:create and documents:read and access to that template. Run these commands from your terminal or server.

1. Submit the return data

POST /v1/documents
export SHIPPDF_API_TOKEN='YOUR_API_TOKEN'

curl --fail-with-body https://api.shippdf.com/v1/documents \
  -H "Authorization: Bearer $SHIPPDF_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: return-RMA-1042" \
  --data-binary @return-form-request.json

A successful request uses one generation credit and returns HTTP 202 with a queued document. Keep the token out of browser code. Reuse the idempotency key only when retrying the same request; use a new one for a different document.

Example response · HTTP 202{"id":"doc_example","status":"queued","pdf_url":null}

2. Check the document and open the PDF

GET /v1/documents/{document_id}
export SHIPPDF_DOCUMENT_ID='YOUR_RETURNED_DOCUMENT_ID'

curl --fail-with-body \
  "https://api.shippdf.com/v1/documents/$SHIPPDF_DOCUMENT_ID" \
  -H "Authorization: Bearer $SHIPPDF_API_TOKEN"

Use the actual ID from your response. If the status is queued or processing, wait before checking again. When it is completed, open the returned pdf_url. If it is failed, inspect failure before generating again.

Example response when complete{"id":"doc_example","status":"completed","expiry_minutes":60,"pdf_url":"https://…/document.pdf"}

The example sets expiry_minutes: 60 for one-hour download links. Read the same document again to get a fresh link without generating another PDF.

Return form and RMA questions

Does generating a form approve a return?

No. ShipPDF generates the PDF from the data you send. Your system or team decides authorization, conditions, and return status.

Can I include several items?

Yes. Configure a dynamic table with the items, quantities, and serial numbers you need and test the document with a return containing several rows.

Does the form issue a refund?

No. You can display amounts or instructions you supply, but generating the document does not initiate refunds or update orders.

How do I include different instructions for each return reason?

Configure the layout’s fields and conditions for your process. Test the cases you intend to send before publishing the template.

Connect documents and customer support

Prepare your next return form

Choose a design and adapt its references and instructions to your team.

Back to return form designs
← Explore all templates