Record payment on Wave invoice
wave_record_paymentRecord a payment already received against an approved invoice in Wave. Preview changes first, then confirm to update the books without moving money.
Instructions
Record a payment the business has ALREADY received against an approved invoice. This changes the books; it does not move money. amount is in the invoice's currency and may not exceed the amount due. payment_account_id is the account the money landed in: wave_list_accounts with subtypes ["CASH_AND_BANK"]. This is a two-step tool: the first call (confirm omitted) returns a preview and a fingerprint and changes nothing. Show the preview to the user. Only after they agree, call again with confirm: true and the fingerprint.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| memo | No | Internal note on the payment | |
| amount | Yes | Amount received, in the invoice currency, e.g. "1130.00" | |
| confirm | No | Leave false to get a preview (nothing happens). Set true only after the user has seen the preview and agreed, and pass the preview's fingerprint. | |
| invoice_id | Yes | Invoice ID exactly as returned by Wave (an opaque string) | |
| fingerprint | No | The fingerprint returned by the preview call; required with confirm: true | |
| payment_date | Yes | Date the payment was actually received (YYYY-MM-DD) | |
| exchange_rate | No | Rate from the invoice currency to the deposit account's currency. Omit when they match. REQUIRED when they differ (e.g. a USD invoice paid into a CAD account); never guess it, ask the user. | |
| payment_method | Yes | How it was paid; e-transfers are BANK_TRANSFER | |
| payment_account_id | Yes | Deposit account ID exactly as returned by Wave (an opaque string) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| invoice | No | ||
| message | Yes | ||
| preview | No | ||
| fingerprint | No |