GetInvoicePayments

View as Markdown
Get the list of payments recorded against an invoice. Optionally filter by a payment date range. InvoiceId: Check the GetInvoices call fromDate/toDate: optional payment date range in ISO format e.g. 2026-01-01 (both must be set to apply the filter) ## Payment object fields - **status** — whether the payment settled. 1 VALID (settled), 2 INVALID (failed), 3 PENDING (in flight), 4 REFUNDED. May be absent on payments predating the field; treat absent as settled. - **paymentFees** — the online processing fee taken on top of `amount`, which never includes it. Stripe collects `amount + paymentFees` as a single charge, so this is what reconciles a payment against a Stripe payout. - **stripePaymentIntentId** — the Stripe PaymentIntent behind the payment, or null for a manually recorded one. All three are read-only: they report what the payment provider did and are never accepted in a request body. ## This endpoint returns attempts, not receipts The payments recorded against an invoice are every attempt made against it, not only the money it received. A declined card records a payment row of its own, so this list can total **more** than the invoice's `paidAmount`. Only status 1 rows move `paidAmount`, and only those sum to it. status 3 is not a failure: bank debits (ACH) sit there for 3-5 business days while they clear. Count 1 as received, exclude 2, and report 3 separately as pending receipts. A retried card charge is billed for the invoice's remaining balance, so repeated attempts carry identical amounts. The amount alone cannot separate a failed retry from a genuine instalment — use status. Note there is no server-side status filter on this endpoint; filter client-side on `status`.

Path parameters

invoiceIdstringRequired

Headers

dreamclass-secret-keystringOptional

Your DreamClass API key. Required on every request. Find it in the DreamClass app under Settings > Integrations.

tenantstringOptional
Your tenant code: the DreamClass subdomain you sign in at (for https://myaccount.dreamclass.io it is "myaccount"), or your full white-labelled domain. Required on every request.
schoolCodestringOptional

Your school code. Required on every request. Find it in the DreamClass app under Settings > Integrations.

Query parameters

fromDatestringOptional

Start payment date e.g. 2026-01-01 ISO format (optional)

toDatestringOptional

End payment date e.g. 2026-06-30 ISO format (optional)

Response headers

Access-Control-Allow-OriginstringOptional
Access-Control-Allow-MethodsstringOptional
X-Content-Type-OptionsstringOptional
Cache-ControlstringOptional

Response

OK
idinteger
amountdouble
publicNotesstring
paymentmethodobject
createdAtdatetime
datedate
invoiceIdinteger
statusinteger
paymentFeesinteger
privateNotesanyOptional
stripePaymentIntentIdanyOptional