Organizations, units and workflows
PDFPhile has exactly one way to model who works with you. A barangay hall, an accounting firm, a university office and a national agency all use the same four pieces.
Piece · What it is · What it holds; Account · One person · Their login, personal keys, personal profiles and drafts; Organization · Who pays and who sets the rules · The owner's plan (seats and fills), the data policy, the activity log; Unit · Any part of the organization · A name, a label (department, division, office, team or project) and an optional code such as a cost centre. Units nest up to 4 deep.; Membership · A person in an organization · One role and one home unit
For example: *City Treasurer's Office* (organization) → *Treasury* (department) → *Payroll* (team).
The label on a unit is only a label. A "department" and a "project" behave the same way, so you can mirror your own chart without learning a second concept. (Organizations used to be called teams. It is the same thing with the same id, and old links and the X-PDFPhile-Team header still work.)
Create one and invite people
1. Sign in and open Organization. Creating one needs a plan with 2 or more seats. You become its owner, and it uses your plan. 2. Add units on the Units tab, or type a few starting units when you create it. 3. On Members, invite people by email with a role and a home unit. Each invitation holds a seat until it is accepted, revoked or expires. The link works once, for that address only, for 7 days. If this server can't send email, copy the link and send it yourself. 4. The invited person opens the link and signs in (or creates an account) with that address. They join, and their browser starts acting in the organization.
Roles
- Owner: everything, including deleting the organization. Pays for it. - Admin: units, members (but not other owners), keys, the data policy and webhooks. Admins also look after the shared library. - Member: fills, scans and captures forms, and shares drafts and profiles with their unit. - Viewer: reads what is shared and their unit's usage, but can't do metered work.
Acting as
You choose where your work counts. Under Acting as (on the Organization page, and in the bar above a form's fields) pick Personal, or an organization and one of its units:
- Fills are billed to the organization's plan and tagged with the unit, so the usage report splits them per unit, per member and per form. - Drafts and profiles you share are seen by that unit and every unit inside it. A Treasury item is visible to Payroll; a Payroll item is not visible to the rest of Treasury. Admins see everything. - Members act in their home unit or a unit inside it. Admins can act in any unit.
From code, send the same choice as headers:
curl -X POST https://pdfphile.com/api/v1/engine/fill/bir-1601C \ -H "Authorization: Bearer $PDFPHILE_API_KEY" \ -H "X-PDFPhile-Org: team_..." \ -H "X-PDFPhile-Unit: unit_..." \ -H "Content-Type: application/json" \ -d '{"withholding_agent_tin":"123-456-789-000"}'
Or make a key for a unit on the Keys tab (POST /api/v1/keys with X-PDFPhile-Org). That key is bound to the organization and unit, so your server doesn't need the headers. It stops working if the person who made it leaves.
Data policy
An admin can make PDFPhile stricter for everyone in the organization. It can never be looser than the platform defaults.
Setting · Default · What it does; AI reading · allowed · Off: document reading is refused and scans are read on our server only. Nothing goes to an AI provider.; Saved values · allowed · Off: no profiles or drafts are kept for the organization.; Allowed forms · every form · Only the listed form ids can be filled, scanned, read, batched or scheduled.; Batch file retention · 30 days · Batch ZIPs are deleted after 1–30 days.; Test keys · allowed · Off: every PDF is a real, metered one.
Every change is recorded on the Activity tab (who, what, from → to). Your data shows exactly what each feature sends and keeps under the policy in force.
Webhooks
Send workflow events to your own system or to chat. Add one on the Webhooks tab or with POST /api/v1/webhooks:
{ "url": "https://hooks.slack.com/services/…", "event": ["draft.submitted", "fill.rejected"], "format": "slack", "unit_id": "unit_..." }
- json posts the event, signed with the endpoint's own secret (shown once) in X-PDFPhile-Signature. - slack posts a one-line message. Slack, Google Chat and Microsoft Teams incoming webhooks all accept it. - A webhook for a unit gets that unit's events and those of the units inside it. - Payloads never carry form values: only ids, the form, the unit, who acted, counts and issue codes.
Events: fill.completed, fill.rejected, capture.completed, batch.completed, schedule.ran, draft.submitted, draft.approved, draft.returned, member.joined, member.removed, form.created, form.deleted, key.created, key.revoked, policy.updated. Each delivery is retried up to 3 times and logged. Test sends a ping.
Review handoff
One person prepares a form, another checks it before it is filed.
1. The preparer opens the form, then Drafts → Save draft shared with my unit. 2. In the same menu they send it to a reviewer by email. The draft is now *in review*. 3. The reviewer finds it on Organization → Review queue, opens it, then approves it or returns it with a note. The preparer can't review their own draft.
From code: POST /api/v1/drafts/:id/submit { assignee }, then POST /api/v1/drafts/:id/review { decision: "approve" · "return", note }. The queue is GET /api/v1/drafts?status=in_review&assigned=me. Each step fires a draft.* event.
Shared library
Admins keep forms with the organization's details already filled in (TIN, address, signatory), plus company profiles. On any form, ⋯ → Share to … library. Everyone in the organization finds them on Organization → Shared library. Opening one fills those details for you.
Also per organization
- Your own PDFs become custom forms and can be shared with the organization. - An automation hook can bill its fills to an organization (Account → Automation). - Embed site keys (Account → Embed) always act for their owner personally, never for an organization.