---
title: "Create Payment"
method: POST
path: "/provider/companies/{company_id}/invoices/{invoice_id}/payments"
tags: ["InvoicePayment"]
---

# Create Payment

`POST /provider/companies/{company_id}/invoices/{invoice_id}/payments`

## Request

- Base URL: `https://api.sandbox.hint.com/api`
- URL: `https://api.sandbox.hint.com/api/provider/companies/{company_id}/invoices/{invoice_id}/payments`
- Auth: API key in header `AUTHORIZATION`

Payments can be created only against an `issued`, `sent`, `retrying`, or `bad_debt` invoice;
any other status fails with `422 Invoice is not payable`. An invoice can not be overpaid:
an `amount_in_cents` above the invoice's `due_in_cents` fails with
`422 Amount is greater than the amount due on the invoice`, and a new payment while an
earlier one is still in flight fails with `422 Invoice has a pending payment` or
`422 Invoice has an unattempted payment`.
The returned `amount_in_cents` is the gross amount attempted on the payment method and may
include processing fees passed through to the patient, so it can exceed the invoice total.
Use the invoice's `paid_in_cents` for the amount applied to the invoice.

## Path parameters

- `company_id` string, required
- `invoice_id` string, required

## Request body

- ProviderPaymentsControllerCreateBody
  - `amount_in_cents` number, double: When creating a payment you can add an amount_in_cents, if no amount is included, we will set the payment amount = due_in_cents. Must not exceed the invoice's `due_in_cents`.
  - `external` boolean: When creating a payment, processed payments are required to include `process: true`, mark-as-paid payments are required to include `external: true` as an attribute. The request fails if it does not contain only one of these attributes.
  - `memo` string
  - `process` boolean: When creating a payment, processed payments are required to include `process: true`, mark-as-paid payments are required to include `external: true` as an attribute. The request fails if it does not contain only one of these attributes.
  - `paid_at` string, date: When creating a payment you can specify the date, if no a date is included, we will set it to the `Hint.today` date. Date must be formatted as YYYY-MM-DD.
  - `source` PaymentSource
    - `id` string, required
    - `type` string, required

## Response `200`

Successful response

- PublicPaymentBlueprintOne
  - `id` string
  - `error_message` string
  - `memo` string
  - `status` string
  - `date` string, date-time
  - `amount_in_cents` integer: Gross amount attempted on the payment method. May include processing fees passed through to the patient, so it can exceed the invoice total; see the invoice's paid_in_cents for the amount applied to the invoice.
  - `external` boolean
  - `external_type` 'cash' | 'check' | 'card' | 'ach' | 'eft' | 'other': Present only on external (mark-as-paid) payments. Currently always reported as "card", regardless of how the payment was recorded.
  - `source` PublicSourceBlueprintLeaf
    - `id` string
    - `type` string

## Changes

- **2026-11-03** `c9bda0d2dd87`: 6 warning
  - added the new `ach` enum value to the `external_type` response property for the response status `200`
  - added the new `card` enum value to the `external_type` response property for the response status `200`
  - added the new `cash` enum value to the `external_type` response property for the response status `200`
  - added the new `check` enum value to the `external_type` response property for the response status `200`
  - …2 more

[Operation history](https://skmtc.dev/hint/apis/partner-endpoints/changes/provider/companies/:company_id/invoices/:invoice_id/payments/post.md)

---

[API](https://skmtc.dev/hint/apis/partner-endpoints.md) - [All operations](https://skmtc.dev/hint/apis/partner-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/hint/apis/partner-endpoints/revisions/c9bda0d2dd87?raw)
