Skip to main content
PingMeDoc

Sell staff medical certificates from inside your product

Your customers order food handler, driver Form 1A or employee fitness certificates for their staff. Each person gets their own link and sees a PingMeDoc™ doctor online. You get each person's status, signed callbacks and a share of every paid order. No health data reaches your systems.

Order size
1 to 500 people
Who applies
Each person, on their own phone
Codes you hold
None

Order PMD-CO-00042

Sample Kitchen, Chennai

Food handler certificates, 4 people, paid

Sample
  • Karthik R emp-104issuedCertificate issuedRenews 4 Nov 2027
  • Meena S emp-105appliedWith the doctor
  • Arun P emp-106code_unusedLink sent, not used yet
  • Divya K emp-107code_unusedLink sent, not used yet
Not on this screen, ever: codes, links, phone numbers, health answers.
One order as your platform reads it through the API. Names are fictional.

Who it is for

Companies whose customers employ people who need a doctor's certificate at joining or every year.
Restaurant billing and POS software
Restaurants, cloud kitchens, caterers and bakeries. FSSAI asks for a medical certificate for every food handler each year.
Certificate: food handler (FSSAI)
Driving school and fleet software
Driving schools, cab and bus operators and logistics fleets. A driver needs Form 1A from a doctor to get or renew a licence.
Certificate: driver Form 1A
HR, payroll and hiring platforms
Employers who ask new joiners, security guards, housekeeping or kitchen staff for a fitness certificate.
Certificate: employee fitness
Staffing and recruitment agencies
Firms placing security, facility, hotel and kitchen staff with clients in India, who need the certificate before a person starts.
Certificate: employee fitness or food handler
Marketplaces and aggregators
Platforms that sell supplies or services to many small kitchens, shops or transport operators, and want one more thing to offer them.
Certificate: any of the three
Buying for your own staff?
You do not need a partnership. Order certificates for your own team at company certificates, or read about health checks for employers.

Sending nurses or students abroad? That is a different programme: see nurse recruiters for Germany or the referral code for recruiters.

Talk to us

Tell us what you run. Someone from our team replies to set up a call. Terms are agreed in writing with each partner, so nothing is switched on until you sign.
How many business customers you have
How you would offer certificates

We use these details only to reply to you.

Two ways to sell

Start with the link. Move to the API when you want orders and statuses inside your own screens.

A link in your product

You place a link with your partner code where your customers will see it. The business opens our page, chooses the certificate, adds its staff by typing, pasting from a sheet or uploading a CSV, and pays. Orders through your link count towards your share.

pingmedoc.com/partners/staff-checks?p=YOURCODE&business=Sample+Kitchen

Build work:
one link.
What you see:
order counts and statuses. The names and numbers the business typed on our page stay with us.

The API

Your product sends us the order: the business and its people. We return a pay link you show the business. You then read each person's status against your own reference, and we call your server when something changes.

Build work:
four calls and one https address for callbacks.
What you see:
each person's name, your reference, status and renewal date.

Our order page opens in a new tab or as a full page, never inside a frame. Card and UPI apps often fail inside frames, our site refuses to be framed, and phone numbers are safer typed on our page.

How it works

What the business does, and what each of its people does. You do not have to run either.

For the business (your customer)

  1. Step 1

    Adds its people

    A name and mobile number for each person, email optional. 1 to 500 people in one order, no number twice.

  2. Step 2

    Pays once

    One pay link for the whole order, and a GST invoice.

  3. Step 3

    Watches progress

    The order page lists each person by name and where they are, from waiting to issued. It never shows their code or link.

  4. Step 4

    Renews in one step

    30 and 7 days before the renewal date we send an email and WhatsApp notice with a signed link. One click reorders for the same people; anyone who has left can be unticked.

For each person

  1. Step 1

    Gets their own link

    By WhatsApp once the order is paid, or by email if WhatsApp does not reach them. They are never asked to pay.

  2. Step 2

    Applies from their phone

    The link works only for the mobile number the business gave. A one-time SMS code goes to that number, and the name must match.

  3. Step 3

    Sees a doctor online

    A registered medical practitioner reviews the case. Food handlers are examined on a video call they must join; the doctor orders tests only if the exam suggests an infection.

  4. Step 4

    Gets the certificate

    With a QR code anyone can check at pingmedoc.com/medical-certificates/verify.

The message each person gets (wording may change)
Hi Karthik, Sample Kitchen has paid for your medical fitness certificate. Apply from your phone here, you will not be asked to pay: pingmedoc.com/...

What you see, and what you never see

The short answer to the health-data question: your systems see progress, never health information.

You send us

  • The business: name, city, GSTIN if it has one, and a contact's name, mobile and email
  • For each person: name, mobile number, email if any, and your own reference

You get back

  • Order number, payment status, and the pay link while it is unpaid
  • For each person: a status (awaiting_payment, code_unused, applied, issued) and a link status
  • The renewal date once the certificate is issued
  • Names and your references, only on orders your API placed

You never get

  • The person's code or link
  • Their mobile number, played back
  • Their answers, the doctor's findings, test reports or the certificate file
  • Why a case did not end in a certificate
Consent
Each person applies on our site themselves and agrees there to the doctor's examination. The business and you see a status, not what was asked or found.
Identity
A link only works for the mobile number the business gave, with a matching name and a one-time SMS code. If a certificate is issued to a different name or number, we flag it and do not report it to you as issued.
Orders typed on our page
When the business adds its staff on our page through your link, you see counts and statuses only: no names, numbers or references.
Your agreement
The written agreement with each partner sets what each side may do with the data. API keys are stored hashed and shown to you once.

Price per person

The business pays our published price for its head count. You do not set the price or collect the payment.
Price per person by order size
Certificate1+ people5+ people25+ people100+ people
Food handler certificate (FSSAI)₹699₹599₹549₹499
Driver medical certificate (Form 1A)₹999₹849₹799₹749
Employee fitness certificate₹699₹599₹549₹499

1 to 4 people pay the single-certificate price; the steps start at 5. Up to 500 people in one order.

Work out an order

Certificate

₹7,188 for 12 people, at ₹599 each.

From 25 people the price drops to ₹549 each.

Your share

You earn a percentage of each paid order, on the amount before tax. The percentage is agreed with each partner in writing; we do not publish one rate. A refunded order reverses its share. Each month the statement shows your orders, the paid value, the share owed and the share paid out, and every payout carries its bank reference.

The API

For the engineer who will build it. Keys are issued when you sign. Base address: https://www.pingmedoc.com/api/partner/v1
Authentication
Authorization: Bearer pmdch_live_.... The key is shown once and stored hashed. A wrong, revoked or paused key always gets the same 401.
Limits
60 requests a minute and 30 new orders an hour for each key. Past that you get a 429 with a Retry-After header.
Idempotency
Creating an order needs an Idempotency-Key header, 8 to 120 characters. The same key with the same body returns the first order (200, replayed: true). The same key with a different body is a 422.
People
1 to 500 per order, Indian mobile numbers, no number twice. certificate_type is food_handler, driver_form1a or employee_fitness.
Partner API calls
CallWhat it does
POST /bulk/ordersCreates an order for the business and its people. Returns the pay link to show the business.
GET /bulk/ordersYour orders, newest first. Takes limit (up to 100) and before (a date) to page back.
GET /bulk/orders/{order_id}Payment status and each person's status, link status and renewal date. Another partner's order answers 404.
GET /bulk/statementYour share rate and, month by month: orders, paid orders, paid value, share owed and share paid out.
Create an order
curl -X POST https://www.pingmedoc.com/api/partner/v1/bulk/orders \
  -H "Authorization: Bearer $PMD_KEY" \
  -H "Idempotency-Key: order-2026-11-02-sample-kitchen" \
  -H "Content-Type: application/json" \
  -d '{
    "certificate_type": "food_handler",
    "external_ref": "your-invoice-1042",
    "business": {
      "name": "Sample Kitchen", "city": "Chennai", "gstin": null,
      "contact_name": "Ravi", "contact_phone": "+919876543210",
      "contact_email": "ravi@example.com"
    },
    "people": [
      {"name": "Karthik R", "phone": "+919000000001", "external_ref": "emp-104"},
      {"name": "Meena S", "phone": "+919000000002", "email": "meena@example.com"}
    ]
  }'
The answer: show pay_link_url to the business
HTTP/1.1 201 Created
{
  "order_id": "5f0c...e91",
  "order_number": "PMD-CO-00042",
  "status": "awaiting_payment",
  "amount_paise": 139800,
  "unit_price_paise": 69900,
  "people_count": 2,
  "pay_link_url": "https://rzp.io/...",
  "replayed": false
}
Later: each person's progress
GET /bulk/orders/{order_id}
{
  "order_number": "PMD-CO-00042",
  "status": "paid",
  "certificate_type": "food_handler",
  "details_hidden": false,
  "people": [
    {
      "id": "...",
      "external_ref": "emp-104",
      "name": "Karthik R",
      "status": "issued",
      "link_status": "issued",
      "expires_at": "2027-11-04T06:12:00Z"
    },
    {
      "id": "...",
      "external_ref": "emp-105",
      "name": "Meena S",
      "status": "code_unused",
      "link_status": "sent",
      "expires_at": null
    }
  ]
}

The answer never includes a link to our order page or any person's code. The values shown are samples.

Signed callbacks

Give us one https address. We send a POST when an order is paid, cancelled or refunded, and when a person's certificate is issued or revoked. Reply with any 2xx.

Callback events
EventSent whendata carries
order.paidThe business has paidorder_id, order_number, external_ref, status, amount_paise
order.cancelledThe order was cancelled before paymentorder_id, order_number, external_ref, status
order.refundedThe order was refunded in fullorder_id, order_number, external_ref, status
person.issuedA person's certificate was issuedorder_id, person_id, external_ref, status, expires_at
person.revokedA person's certificate was revokedorder_id, person_id, external_ref, status

external_ref is filled only on orders your API placed. No callback carries a name, phone number or health detail.

What arrives
X-PMD-Event: person.issued
X-PMD-Signature: t=1762060800,v1=9f2c...

{
  "id": "...",
  "event": "person.issued",
  "created_at": "2026-11-04T06:12:09Z",
  "data": {
    "order_id": "5f0c...e91",
    "person_id": "...",
    "external_ref": "emp-104",
    "status": "issued",
    "expires_at": "2027-11-04T06:12:00Z"
  }
}
Check the signature (Node)
import {
  createHmac,
  timingSafeEqual,
} from "node:crypto";

// header: the X-PMD-Signature value
// rawBody: the request body exactly as received
export function verified(secret, header, rawBody) {
  const [t, v1] = header
    .split(",")
    .map((p) => p.split("=")[1]);
  const expected = createHmac("sha256", secret)
    .update(`${t}.${rawBody}`)
    .digest("hex");
  const age = Date.now() / 1000 - Number(t);
  if (Math.abs(age) >= 300) return false;
  return (
    expected.length === v1.length &&
    timingSafeEqual(
      Buffer.from(expected),
      Buffer.from(v1),
    )
  );
}
Signature
X-PMD-Signature: t=<unix time>,v1=<hex>, where v1 is the HMAC-SHA256 of t.rawBody with your signing secret. Reject anything more than 5 minutes old.
Retries
If you do not answer 2xx we try again up to 7 more times, waiting 1 minute, 5 minutes, 30 minutes, 2 hours, 6 hours, 24 hours, 24 hours. Then we stop.
Your address
https on port 443 with a public host name. We look the name up ourselves and connect only to a public address, so private and internal networks are refused.
Delivery
Redirects are not followed, and each attempt stops after 8 seconds.

Who does what

You keep the customer. We run the medical and the money.
Who does what
TaskWho
Your customer relationship and your product screensYou
Showing the link, or the pay link from the APIYou
Taking the payment and issuing the GST invoicePingMeDoc
Sending each person their own linkPingMeDoc
Checking that the right person appliesPingMeDoc
The doctor's review and the certificatePingMeDoc
QR verification for anyone who asksPingMeDoc
Renewal notices to the businessPingMeDoc
Monthly statement and your payoutPingMeDoc

Launch steps

We are opening the partner channel one partner at a time.
  1. Step 1

    Tell us about your product

    Send the form above. We set up a call to understand your customers and which certificates they ask for.

  2. Step 2

    Agree terms in writing

    Your share, when it is paid, GST on the share, and what each side may do with the data.

  3. Step 3

    Get your partner account

    A partner code for your link. For the API, a key and a callback signing secret, each shown once.

  4. Step 4

    Build and try it

    Add the link, or make the calls and check a signed callback. A first order for one person shows every step.

  5. Step 5

    Go live, get paid monthly

    Your customers order. Each month you get the statement and the payout.

Questions partners ask

How is this different from the PingMeDoc partner program for recruiters?
The partner program at /partner-program is for nursing recruiters sending candidates to Germany, and /partners/recruitment-agencies gives overseas recruiters and study-abroad consultancies a referral code. This page is for companies whose customers need medical certificates for staff working in India: food handlers, drivers and employees. Your customers place orders, we take the payment, and you earn a share of each paid order.
Does our platform ever hold certificate codes?
No. Each person's link goes from us straight to that person by WhatsApp, or by email when WhatsApp does not reach them. It works only for the mobile number the business gave for that person. Your API calls and your customer's order page show a status for each person, never the code or the link.
Does our platform touch health data?
No. You send us names and mobile numbers. We send back statuses and a renewal date. The person's answers, the doctor's findings, any test reports and the certificate itself stay between the person, the doctor and PingMeDoc. We also never tell you why a case did not end in a certificate.
How does the revenue share work?
You earn a percentage of each paid order, worked out on the amount before tax. The percentage is agreed in writing with each partner; we do not publish one rate. If an order is refunded, its share is reversed. Each month you get a statement of orders, paid value, the share owed and the share paid out, and each payout is recorded with its bank reference.
What do the businesses pay?
Our published price for the number of people in the order. One to four people pay the single-certificate price, and the price per person drops at 5, 25 and 100 people. The business gets one pay link for the whole order and a GST invoice.
Can we set our own price or add a margin?
Not today. The pay link always shows our published price, and we collect the payment. What you earn comes from the revenue share.
Can we put your order page inside our app in an iframe?
No. Card and UPI apps often fail inside a frame, our site refuses to be framed for security, and staff phone numbers should be typed on our page. Open the link in a new tab, or call the API and show the pay link on your own screen.
Which certificates can our customers order?
Three: the food handler medical fitness certificate that FSSAI asks for, the driver medical certificate (Form 1A) for a licence or renewal, and an employee medical fitness certificate. Each person sees a registered medical practitioner online. Food handlers are examined on a video call they must join.
Will every food safety officer accept the food handler certificate?
We cannot promise that. The certificate follows the format in the FSS (Licensing and Registration of Food Businesses) Regulations, 2011, Schedule 4, Part II, para 10.1.2, and says the examination was a video consultation. No lab tests are included unless the doctor finds signs of an infection, and no vaccinations are given. Some officers and employers ask for an in-person exam or specific tests, so businesses should check with theirs.
How long does a certificate last?
The food handler certificate is valid for one year. Form 1A shows the date it was issued; the transport office decides how long it counts. For an employee fitness certificate the doctor decides. Through the partner channel each person gets a renewal date one year after issue, and the business gets a notice 30 and 7 days before it.
What happens when a person's link does not reach them?
Their link status shows as undeliverable. Usually the number is wrong or not on WhatsApp and no email was given. The business can check the number with the person and contact us to fix it.
Is there a test environment?
Not a separate one. Keys are issued when you sign, and the simplest test is a first order for one person, such as yourself, which shows every step from the pay link to the certificate.
How much do we have to build?
For the link: one link in your product with your partner code. For the API: four calls and one https address that receives signed callbacks. Placing orders, collecting payment, sending each person their link, the doctor's review and renewal notices all run on our side.
Can anyone check that a certificate is real?
Yes. Every certificate carries a QR code. Anyone can scan it, or check it at pingmedoc.com/medical-certificates/verify, without logging in.

Offer staff certificates without running a clinic

Tell us what you run and roughly how many businesses use it. We reply to set up a call.

Talk to us about partnering