---
title: "Verify Patient"
method: POST
path: "/billing/payment-link/verify-patient"
tags: ["provider", "billing", "public"]
---

# Verify Patient

`POST /billing/payment-link/verify-patient`

## Request

- Base URL: `https://docs.decodahealth.com` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.decodahealth.com/billing/payment-link/verify-patient`
- Auth: none declared. Required headers: `TENANT`, `API-KEY`
- TypeScript: <https://skmtc.dev/decodahealth/apis/decoda-api/docs/billing/payment-link/verify-patient/post.ts> (a function with typed inputs; its response is checked against the schema)

## Headers

- `TENANT` string, required
- `API-KEY` string, required

## Request body

- VerifyPatient
  - `patientId` string, required
  - `lastName` string, required
  - `phoneNumber` string, required
  - `dateOfBirth` string, required

## Response `200`

Successful Response

- PaymentLinkDetails
  - `charges` ChargeDetailWithItems[], required
    - `id` string, nullable: A unique identifier for the charge. Auto-generated if not provided.
    - `patientId` string, required: Identifier of the patient being charged.
    - `patient` PatientSummary
      - `id` string, required: The unique identifier for the user.
      - `firstName` string, nullable: The user's first name.
      - `lastName` string, nullable: The user's last name.
      - `phoneNumber` string, nullable: The user's phone number.
      - `email` string, nullable: The user's email address.
      - `type` 'PROVIDER' | 'PATIENT' | 'ASSISTANT', required
      - `locationId` string, nullable: The location of the user.
      - `externalId` string, nullable: The user's external identifier if available.
      - `address` string, nullable: The user's primary address.
      - `addressLineTwo` string, nullable: Additional address information.
      - `city` string, nullable: The city of the user's address.
      - `state` string, nullable: The state of the user's address.
      - `zipCode` string, nullable: The postal code of the user's address.
      - `country` string, nullable: The country of the user's address.
      - `createdDate` string, date-time, required: The date and time when the user was created.
      - `addressValid` boolean, nullable: Whether the user's address is valid.
      - `meta` object, nullable: Any additional metadata about the user relevant to your system.
      - `isArchived` boolean, nullable: Whether the user is archived.
      - `primaryLocationId` string, nullable: The primary location of the user.
      - `gender` string, nullable: The gender of the patient.
      - `dateOfBirth` string, date, nullable: The date of birth of the patient.
      - `patientMedications` string[], nullable: List of patient's self-reported medications.
      - `onSchedulingBlacklist` boolean, nullable: Whether the patient is on the scheduling blacklist.
      - `surchargeDisabled` boolean, nullable: Whether surcharges are disabled for this patient.
      - `tags` PatientTagSummary[], nullable: List of patient tags
        - `id` string, required: Unique identifier for the patient tag
        - `name` string, required: Name of the patient tag
        - `emoji` string, nullable: Emoji associated with the tag
        - `color` string, nullable: Color code for the tag (hex format)
        - `isActive` boolean, required: Whether the tag is active
        - `createdDate` string, date-time, required: Date and time when the tag was created
        - `updatedDate` string, date-time, nullable: Date and time when the tag was last updated
      - `creditBalance` integer, nullable: Patient's credit balance in cents.
      - `preferredProviderId` string, nullable: The preferred provider ID for this patient.
    - `total` integer: Total amount of the charge.
    - `totalOutstanding` integer, required: Total outstanding amount that is yet to be paid.
    - `description` string, nullable: Description of the charge.
    - `status` 'OUTSTANDING' | 'PAID' | 'EXTERNAL_SETTLEMENT' | 'VOID' | 'WRITE_OFF' | 'REFUNDED' | 'CHARGEBACK' | 'PAYMENT_PLAN' | 'COLLECTIONS'
    - `discountAmount` integer, nullable: Any discount applied to the total outstanding.
    - `discountPercentage` number, nullable: Percentage of discount applied to the charge.
    - `externalId` string, nullable: External identifier for the charge, if applicable.
    - `externalCreatedDate` string, date-time, nullable: The creation date of the charge in your external system, if applicable.
    - `ruleSetId` string, nullable: Identifier for the `RuleSet` applied to this `Charge`, if any.
    - `createdDate` string, date-time, nullable: The date when the charge was created.
    - `creatorId` string, nullable: Identifier of the `Provider` who created the charge (i.e. the Clinician, or relevant Biller).
    - `items` ChargeItemDetailOutput[], required
      - `id` string, nullable: Unique identifier for the charge item
      - `itemId` string, nullable: Optional unique identifier for the item
      - `chargeId` string, required: Identifier of the charge this item is associated with
      - `name` string, nullable: Name of the item (None for items with associated inventory item)
      - `description` string, nullable: Description of the item
      - `quantity` integer, required: Quantity of the item being charged
      - `discountAmount` integer, nullable: Discount amount for the item
      - `discountPercentage` number, nullable: Discount percentage for the item
      - `discountReason` string, nullable: Reason for discount
      - `price` integer, required: Price of the item in cents
      - `soldPackageId` string, nullable: Unique identifier for the sold package usage
      - `bankedQuantity` integer, nullable: Quantity to bank for later use
      - `bankedItemId` string, nullable: ID of banked item being used (for tracking usage)
      - `issuedDiscountId` string, nullable: Unique identifier for the specific issued discount instance used
      - `soldByProviderId` string, nullable: Unique identifier for the provider who sold the item
      - `taxAmount` integer, nullable: Tax amount for the item in cents
      - `pricingId` string, nullable: Unique identifier for the pricing for the item
      - `shipmentIds` string[], nullable: Optional list of shipment IDs to reduce the stock quantity of
      - `item` ItemTiny
        - `id` string: Unique identifier for the item
        - `name` string, required: Name of the item
        - `brandName` string, nullable: Optional brand name of the item
        - `description` string, nullable: Optional description of the item
        - `price` integer, required: Price of the item in cents
        - `category` string, nullable: Category name (references category.name)
        - `unit` 'AMPOULES' | 'APPLICATORS' | 'BOTTLES' | 'BOXES' | 'CAPSULES' | 'CUPS' | 'DOSES' | 'G_PER_ML' | 'GRAMS' | 'IU' | 'IU_PER_ML' | 'OUNCES' | 'FLUID_OUNCES' | 'KG' | 'KITS' | 'LITERS' | 'MCG' | 'MG' | 'MG_PER_ML' | 'ML' | 'MMOL' | 'MICROGRAM_PER_ML' | 'PACKS' | 'PAIRS' | 'PATCHES' | 'PERCENTAGE' | 'PIECES' | 'POUCHES' | 'ROLLS' | 'SACHETS' | 'SHEETS' | 'SPRAYS' | 'STRIPS' | 'SYRINGES' | 'TABLETS' | 'TABLETS_PER_DAY' | 'TESTS' | 'TUBES' | 'UNITS' | 'VIALS' | 'TREATMENTS' | 'SESSIONS' | 'PULSES' | 'JOULES' | 'CENTIMETERS' | 'THREAD_COUNT' | 'INJECTIONS' | 'WRINKLE_UNITS' | 'POUNDS' | 'FEET' | 'INCHES'
        - `isPhysical` boolean: Whether the item is physical
        - `isArchived` boolean: Whether the item is archived
        - `internalNotes` string, nullable: Optional internal notes for the item
        - `taxable` boolean: Whether the item is subject to taxes
        - `sortOrder` integer, nullable: Optional sort order for the item
        - `allowCustomPricing` boolean: Whether custom pricing is allowed for this item
        - `type` 'ITEM' | 'PRODUCT' | 'MEDICATION' | 'SERVICE' | 'PACKAGE' | 'MEMBERSHIP'
      - `locationId` string, nullable: Location ID where the sale occurred
      - `locationName` string, nullable: Location name where the sale occurred
      - `saleDate` string, date-time, nullable: Date when the sale occurred
    - `tips` TipDetail[]: List of `Tips` in the `Charge`.
      - `chargeId` string, required: Charge ID this tip belongs to
      - `amount` integer, required: Tip amount in cents
      - `providerId` string, required: Provider ID receiving the tip
      - `id` string: Unique identifier for the tip
      - `provider` ProviderTiny
        - `id` string, required
        - `firstName` string, required
        - `lastName` string, nullable
        - `email` string, nullable
        - `createdDate` string, date-time, nullable
    - `locationId` string, nullable: Identifier of the `Location` where the charge was created.
    - `eventId` string, nullable: Identifier of the `Event` this charge is associated with, if any.
    - `memberId` string, nullable: Identifier of the `Member` this charge is associated with, if any.
    - `comment` string, nullable: Any additional comments about the charge.
    - `meta` object, nullable: Any additional metadata about the charge relevant to your system.
    - `merchantAccountId` string, nullable: Identifier of the `MerchantAccount` this charge is associated with.
    - `adjustments` AdjustmentSummary[], required
      - `chargeId` string, required
      - `providerId` string, nullable
      - `locationId` string, nullable
      - `id` string, required: Unique identifier for the adjustment
      - `amount` integer, required: Amount of the adjustment
      - `reason` string, nullable: Reason for the adjustment
      - `createdDate` string, date-time, required: Date when the adjustment was created
      - `adjustmentType` 'WRITE_OFF' | 'ADJUSTMENT' | 'EXTERNAL_SETTLEMENT', required
    - `payments` ChargePaymentDetailOutput[], required
      - `paymentId` string, required: The unique identifier for the payment.
      - `amount` integer, required: The amount of the payment.
      - `createdDate` string, date-time, nullable: The date and time the payment was created.
      - `chargeId` string, required: The unique identifier for the charge.
      - `payment` PaymentOutput, required
        - `id` string, required: The unique identifier for the payment.
        - `patientId` string, nullable: The ID of the patient associated with the payment.
        - `payinId` string, nullable: The ID of the payin associated with the payment.
        - `amount` integer, required: The total amount of the payment.
        - `status` 'CANCELED' | 'CREATED' | 'FAILED' | 'IN_REVIEW' | 'PRESENTING' | 'PROCESSING' | 'SUCCEEDED', required
        - `currency` string: The currency in which the payment was made.
        - `payinConfigId` string, nullable: The configuration ID for the payin.
        - `paymentMedium` string, required: The name of the payment medium.
        - `paymentMethodId` string, nullable: The ID of the payment method used.
        - `stripePaymentIntentId` string, nullable: Stripe's payment intent ID if used.
        - `failedReason` string, nullable: Reason for payment failure if applicable.
        - `updatedDate` string, date-time, nullable: The date and time the payment was last updated.
        - `createdDate` string, date-time, required: The date and time the payment was created.
        - `fee` integer: The fee charged by the payment processor.
        - `feeToPatient` integer, required: The fee charged to the patient for the transaction.
        - `paymentMethod` PaymentMethodSummary
          - `id` string, required
          - `patientId` string, nullable, required
          - `rainforestPaymentMethodId` string, required
          - `brand` string, nullable, required
          - `last4` string, nullable, required
          - `expMonth` integer, nullable, required
          - `expYear` integer, nullable, required
          - `accountHolderType` string, nullable, required
          - `accountNumberLast4` integer, nullable, required
          - `bankName` string, nullable, required
          - `routingNumber` integer, nullable, required
          - `description` string, nullable, required
          - `type` 'CARD' | 'ACH' | 'APPLE_PAY', required
          - `isDefault` boolean
          - `isArchived` boolean
        - `refunds` RefundSummary[]: List of refunds associated with the payment.
          - `id` string, required
          - `paymentId` string, required
          - `amount` integer, required
          - `reason` 'DUPLICATE' | 'DISPUTE' | 'BOOKING_FEE' | 'OTHER', required
          - `createdDate` string, date-time, required
          - `status` 'CANCELED' | 'CREATED' | 'FAILED' | 'IN_REVIEW' | 'PRESENTING' | 'PROCESSING' | 'SUCCEEDED', required
          - `rainforestRefundId` string, nullable
          - `fee` integer
  - `patient` PatientSummary, required
    - `id` string, required: The unique identifier for the user.
    - `firstName` string, nullable: The user's first name.
    - `lastName` string, nullable: The user's last name.
    - `phoneNumber` string, nullable: The user's phone number.
    - `email` string, nullable: The user's email address.
    - `type` 'PROVIDER' | 'PATIENT' | 'ASSISTANT', required
    - `locationId` string, nullable: The location of the user.
    - `externalId` string, nullable: The user's external identifier if available.
    - `address` string, nullable: The user's primary address.
    - `addressLineTwo` string, nullable: Additional address information.
    - `city` string, nullable: The city of the user's address.
    - `state` string, nullable: The state of the user's address.
    - `zipCode` string, nullable: The postal code of the user's address.
    - `country` string, nullable: The country of the user's address.
    - `createdDate` string, date-time, required: The date and time when the user was created.
    - `addressValid` boolean, nullable: Whether the user's address is valid.
    - `meta` object, nullable: Any additional metadata about the user relevant to your system.
    - `isArchived` boolean, nullable: Whether the user is archived.
    - `primaryLocationId` string, nullable: The primary location of the user.
    - `gender` string, nullable: The gender of the patient.
    - `dateOfBirth` string, date, nullable: The date of birth of the patient.
    - `patientMedications` string[], nullable: List of patient's self-reported medications.
    - `onSchedulingBlacklist` boolean, nullable: Whether the patient is on the scheduling blacklist.
    - `surchargeDisabled` boolean, nullable: Whether surcharges are disabled for this patient.
    - `tags` PatientTagSummary[], nullable: List of patient tags
      - `id` string, required: Unique identifier for the patient tag
      - `name` string, required: Name of the patient tag
      - `emoji` string, nullable: Emoji associated with the tag
      - `color` string, nullable: Color code for the tag (hex format)
      - `isActive` boolean, required: Whether the tag is active
      - `createdDate` string, date-time, required: Date and time when the tag was created
      - `updatedDate` string, date-time, nullable: Date and time when the tag was last updated
    - `creditBalance` integer, nullable: Patient's credit balance in cents.
    - `preferredProviderId` string, nullable: The preferred provider ID for this patient.
  - `paymentLink` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/decodahealth/apis/decoda-api.md) - [All operations](https://skmtc.dev/decodahealth/apis/decoda-api/llms.txt) - [OpenAPI document](https://skmtc.dev/decodahealth/apis/decoda-api/revisions/4ab18c80f9e9?raw)
