Skip to navigation

Update payment method

View as Markdown

Update invoice payment method

Changes the payment method selected for the still-open invoice :id — e.g. switching between Lightning wallets or to cash — and recomputes the payment destination and crypto amount for the new method.

This replaces the deprecated PATCH /v1/invoice/pm, which took the invoice id in the body.

Auth

x-api-key header with Merchant.invoice.patch. Also accepts JWT user and POS JWT.

Path params

  • id (required): the invoice id.

Body (application/json)

  • paymentMethodId — the target payment method (a PaymentMethodsLike value, e.g. BTC_StrikeLike, CASH).

Errors

  • 400 Cannot update payment method on a closed or expired invoice. — the invoice is not in New status.
  • 400 The selected payment method is not available for this store. — the method is not enabled for the store (this is also what you get if you omit paymentMethodId).
  • 400 Payment method data not found in the invoice. — the invoice carries no crypto data for that method.

Notas: Handler: updatepmService.updateInvoicePaymentType({ invoiceId: <path id>, paymentMethodId }). paymentMethodId is declared @IsOptional in UpdatePMBodyDto, so validation lets it through, but omitting it always ends in a 400 — treat it as required. Emits a PAYMENT_METHOD_UPDATED invoice event.

Authentication

x-api-keystring
API Key authentication via header

Path parameters

idstringRequired
Id of the invoice whose payment method changes.

Headers

x-application-account-idstringOptional

Scope the request to a specific store / account instead of the one resolved from the API key. Aliases: the x-account-id header, or the application_account_id / account_id query parameter.

Request

This endpoint expects an object.
paymentMethodIdstringRequired