Skip to main content

Forms, Payments & Notes Workflow

This guide chains the Forms, Notes, and Billing APIs into one intake-to-checkout integration. A patient fills out a form (which saves a card on file), that form becomes a note template, a provider’s note pre-fills from the patient’s answers, and you collect payment on an itemized charge through the embedded payment component.

Overview

  1. Create a form and convert it into a note template so the note layout matches the form.
  2. Save a payment method for the patient (or collect one through the form’s Payment Methods block).
  3. Submit the form for the patient — answers flow into the patient record.
  4. Create a note pre-filled with the patient’s submitted answers.
  5. Create a charge with itemized line items that reference catalog items.
  6. Collect payment through the embedded payment component.
All amounts are in cents. Every request needs the TENANT and API-KEY headers.

Step 1: Create a form and its note template

Create the form the patient will fill out with Create Form, then convert it into a note template with Create Note Template From Form. The conversion flattens the form’s blocks and questions into template fields (signature, payment, disclaimer, statement, and document questions are skipped).
Build the form’s blocks with Demographics, Medical History, and Measurement fields where you want answers to flow into the patient record — those are the fields that pre-fill the note later. See Form Structure Reference for block and question types, and the Form Editor if you’d rather build the form in the console and just reference its ID here.

Step 2: Save a payment method

Collect a card for the patient with Create Payment Method. The patient_id goes in the query string. You can also collect the card inside the form itself by adding a Payment Methods block — see Payment Method Collection.
See the Create Payment Method reference for the exact request body your processor integration expects.

Step 3: Submit the form

Submit the patient’s answers with Patient Form Submission. Each entry in blocks carries a blockType (DEMOGRAPHICS, MEDICAL_HISTORY, PAYMENT_METHODS, INSURANCE, or DYNAMIC). Set isCompleteSubmission to true for a finished submission. Answers mapped to patient-record fields save to the chart automatically.

Step 4: Create a pre-filled note

Fetch the patient’s pre-filled answers for the template with Get Prefilled Answers, then pass them straight into Create Note. The prefill response returns each answer keyed by questionId, in the exact shape answers expects.
Prefill response:
Only questions mapped to the patient chart (demographics, medical history, and same-day measurements) come back pre-filled. Weight and height only pre-fill when a measurement was recorded the same day. Custom free-text questions convert to empty note fields — fill those in the note itself or with AI Scribe.

Step 5: Create an itemized charge

Create your catalog items once with Create Item, then reference each item’s id as itemId on the charge’s line items. Build the charge with Create Charge — set totalOutstanding to the sum of the line items minus any discounts.
Already have a cart? Convert Cart to Charge is an alternative that carries the cart’s items and discounts onto the charge. See Payment Embed: Itemized Charges for that path.

Step 6: Collect payment in the embedded component

Point the embedded payment component at the charge. The embed calls Create Embed Payment Config with the charge_id, shows the full itemized breakdown, and applies the payment to the existing charge — no duplicate charge is created.
Listen for the outcome via postMessage:
The embed URL accepts allowedMethods (CARD, ACH, APPLE_PAY), theme (light / dark), and showSummary. See Payment Embed: Itemized Charges for the full parameter list and event reference.

Next steps