Skip to main content
POST
/
api
/
v1
/
invoices
/
{invoice_id}
/
record-manual-payment
cURL
curl -X POST https://api.metrifox.com/api/v1/invoices/5e5d2f9a-4f4e-4f1d-8c9c-2f1c4e3b9a01/record-manual-payment \
  -H "x-api-key: $METRIFOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "payment_method_type": "cash",
    "amount_in_standard_unit": 100.0,
    "payment_date": "2026-05-29"
  }'
{
  "statusCode": 200,
  "message": "Manual payment recorded successfully",
  "meta": {},
  "data": {
    "id": "8d3f1b21-3a91-4e64-8e2a-1d4d7f2b9a01",
    "payment_method_type": "cash",
    "amount_in_standard_unit": 100,
    "amount_in_base_unit": 10000,
    "currency": "USD",
    "created_at": "2026-05-29T18:42:11Z",
    "updated_at": "2026-05-29T18:42:11Z"
  },
  "errors": {}
}

Documentation Index

Fetch the complete documentation index at: https://docs.metrifox.com/llms.txt

Use this file to discover all available pages before exploring further.

The currency of the payment is taken from the invoice — you don’t pass it. The invoice must be in open or overdue status, and amount_in_standard_unit must not exceed the invoice’s current outstanding amount. Partial payments are supported: call this endpoint multiple times until the invoice is fully paid.

Authorizations

x-api-key
string
header
required

Path Parameters

invoice_id
string<uuid>
required

ID of the invoice the payment should be applied to.

Body

application/json
payment_method_type
enum<string>
required

How the payment was collected outside of Metrifox. Must be one of:

  • cash
  • bank_transfer
  • check
Available options:
cash,
bank_transfer,
check
amount_in_standard_unit
number<float>
required

The amount paid, expressed in standard units of the invoice's currency (e.g. 100.00 means 100.00 USD on a USD invoice). Must be greater than 0 and must not exceed the invoice's current outstanding amount.

Required range: x >= 0.01
payment_date
string<date>
required

The date the payment was actually received (YYYY-MM-DD). Used as the effective date of the payment for accounting purposes.

Response

Manual payment recorded successfully

statusCode
integer
Example:

200

message
string
Example:

"Manual payment recorded successfully"

data
object

A manual payment recorded against an invoice.

meta
object
errors
object