Getting started

Not a developer? Start at Learn: short videos and plain manuals for store owners, employees, HR, bookkeepers and business owners.

PhilForms fills official Philippine government forms for you. That includes BIR, SSS, PhilHealth, Pag-IBIG, GSIS, CSC and more.

You send the answers. You get back the real form as a PDF, with every answer printed in the right box. Each PDF is also sealed and digitally signed, so anyone can check it is genuine.

No code yet? Open the fill studio, pick a form and type. It is the same engine, in your browser.

What you need

- A free PhilForms account. Create one on the account page, or from code: curl -X POST https://philforms.com/api/v1/account -H "Content-Type: application/json" -d '{"email":"you@example.com"}'. A new account starts on Free (25 credits a month, watermarked outside the free grants) with a 30-day Pro trial banked: start it with POST /api/v1/account/trial (or "start_trial": true at sign-up) any time until February 28, 2027. Free also issues 5 clean BIR 2307s a quarter and 5 clean 2316s a year through POST /api/v1/certificates. - A way to send a web request. The examples below use curl, which comes with macOS, Linux and Windows 10 and later.

Step 1: get your API key

Want to see a fill before writing code? The playground loads a form's parameters with example values and runs a check or a fill from the page.

An API key is a password for your code. A new account first opens a one-minute set-up (who you fill forms for, what brings you here, your details — skip it any time); then your account page shows two keys, once:

Key · Starts with · Use it for · Safe in browser code?; Live key · pk_live_ · Real PDFs. Each one costs a credit from your plan (see Credits). · No. Keep it on your server.; Test key · pk_test_ · Free practice, up to 500 test PDFs a month. Every PDF is stamped "TEST - NOT FOR FILING". · No.; Site key · pk_embed_ · A form on your own website. It works only on the sites you list (see Embed). · Yes.

Keep the live key secret, like any password. Your code sends it in a header: Authorization: Bearer <your key>.

Good to know: on the Free plan and during the trial, answers are printed into the PDF as a sharp image. It looks the same on paper. Paid plans print real text you can select and search.

Step 2: find your form

Every form has an id, like bir-2307. Search by number or by name:

curl "https://philforms.com/api/v1/engine/forms?q=2307"

Then ask what the form needs:

curl https://philforms.com/api/v1/parameters/bir-2307

You get a list of parameters: one for each box on the form. Each one has a name (the key you send), the label printed on the paper, and a type such as text, date or amount. You can also browse every form in the form reference.

Step 3: check your answers

Before you make a PDF, ask PhilForms to check your answers. A check is free. It needs no key and uses none of your quota.

curl -X POST https://philforms.com/api/v1/engine/check/bir-2307 \ -H "Content-Type: application/json" \ -d '{"payee_tin":"123-456-789-000","payee_name":"DELA CRUZ, JUAN"}'

If something is wrong, the answer tells you which box, what it expects, and why.

Step 4: fill the form

Send the same answers to the fill address, with your key:

curl -X POST https://philforms.com/api/v1/engine/fill/bir-2307 \ -H "Authorization: Bearer $PHILFORMS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"payee_tin":"123-456-789-000","payee_name":"DELA CRUZ, JUAN"}' \ -o 2307.pdf

Open 2307.pdf. That is the official form, filled in.

Tip: you can try steps 3 and 4 without a terminal in the API playground.

Step 5: let others verify it

Anyone who receives your PDF can check that PhilForms issued it and that nobody changed it since. They drop the file on the verify page. Read more in Seals and verification.

Where to go next

- Filling a form: every option, header and error. - Form fields and types: what to send for each kind of box. - Automation and integrations: many forms at once, spreadsheets and no-code tools.

This guide as markdown