splitforms.com
guide · form types

RMA Form in HTML — Return Merchandise Authorization Template

An HTML RMA (return merchandise authorization) form — order number, product, reason for return, condition, photo of the issue, customer info. POSTs to splitforms; webhook into your warehouse system or CRM.

html
<form action="https://splitforms.com/api/submit"
      method="POST"
      enctype="multipart/form-data">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="_subject"   value="New RMA request" />

  <fieldset>
    <legend>Order information</legend>
    <label>Order number<input name="order_number" required /></label>
    <label>Product to return<input name="product" required /></label>
    <label>Purchase date<input name="purchase_date" type="date" required /></label>
  </fieldset>

  <fieldset>
    <legend>Return details</legend>
    <label>
      Reason for return
      <select name="reason" required>
        <option value="">— select —</option>
        <option>Defective on arrival</option>
        <option>Damaged in shipping</option>
        <option>Wrong item received</option>
        <option>No longer needed</option>
        <option>Changed my mind</option>
        <option>Other</option>
      </select>
    </label>

    <label>
      Product condition
      <select name="condition" required>
        <option value="">— select —</option>
        <option>Unopened / sealed</option>
        <option>Opened, like new</option>
        <option>Used, with original packaging</option>
        <option>Used, no packaging</option>
        <option>Damaged</option>
      </select>
    </label>

    <label>Details<textarea name="details" rows="4" required></textarea></label>

    <label>Photo of the issue (recommended)
      <input name="issue_photo" type="file" accept="image/*" multiple />
    </label>
  </fieldset>

  <fieldset>
    <legend>Your information</legend>
    <label>Full name<input name="name" required autocomplete="name" /></label>
    <label>Email<input name="email" type="email" required autocomplete="email" /></label>
    <label>Phone<input name="phone" type="tel" autocomplete="tel" /></label>
  </fieldset>

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />
  <button type="submit">Request RMA</button>
</form>

An RMA form captures the information your warehouse needs to authorize a return — order number, product, reason, condition, and photographic evidence for damage claims. Make every field required; vague RMAs (no order number, no condition info) clog the workflow and add hours of back-and-forth per request.

The reason select is the most important field. It drives the downstream workflow: 'defective on arrival' needs a warranty claim path; 'damaged in shipping' needs a carrier claim path; 'changed my mind' goes through standard returns. Map the reason values to your workflow stages so triage is automatic.

Photo upload (multiple) for damage claims. Customers can attach 5 files up to 10 MB each. Photos let you assess damage without shipping the product back — many claims can be resolved with a replacement before the original product even ships. Saves both customer and warehouse time.

splitforms emails you the RMA request and webhooks the payload to your warehouse system or CRM. Configure separate webhooks per reason value if the workflows diverge significantly — e.g., 'defective on arrival' triggers a Slack notification to QA, while 'changed my mind' goes to the customer service queue.

How to set this up

Step 01

Capture order number first

Required field. RMAs without an order number are unprocessable; rejecting at the form level saves support time.

Step 02

Categorize the reason

Reason + condition select fields drive the downstream workflow. Map values to your warehouse stages.

Step 03

Accept multiple photos

type=file with multiple. Photos let you assess damage without round-trip shipping.

Step 04

Webhook by reason

Different reasons trigger different workflows. Configure separate webhooks in splitforms.

Order # + reason + photo upload. Triage by reason via webhook.

Frequently asked questions

What does RMA stand for?

Return Merchandise Authorization. It's the process customers go through to get permission to return a product, and the tracking number that follows the return through your warehouse.

What fields are essential on an RMA form?

Order number, product, purchase date, reason for return, condition, customer contact info. Photo upload is recommended for damage claims. Don't skip any — vague RMAs add hours of back-and-forth.

How do I handle photo uploads on an RMA form?

Use `<input type="file" accept="image/*" multiple>` for multi-image upload. splitforms accepts up to 5 files at 10 MB each per submission. Photos arrive as email attachments and downloadable files from the dashboard.

Should I auto-approve some RMAs?

Yes — for low-value items or trusted customers, auto-approve via webhook logic. RMAs under $X with 'no longer needed' / 'changed my mind' reasons can skip manual review and email the customer a shipping label automatically.

Related guides

HTML forms

HTML Form — How to Build and Submit Forms in HTML

Form types

Warranty Form in HTML — Working Code Template

Ship the form, not the backend.

Free for 1,000 submissions/month. Email delivery, AI spam filtering, signed webhooks, real dashboard — all on the free plan. No credit card.

Get a free access key →