Invoices

Represents a list of invoices for an application.

URI
/api/v10/applications/ID/invoices

GDPR information

Due to GDPR regulations, you can delete applicants from the system using the Right to be forgotten tool, batch purges (by academic term) or individual applicant record deletions.

To preserve the accounting history, DreamApply retains invoices in the system after an applicant record is deleted. During deletion, it detaches invoices from the applicant records, removing the data association. As a result:

  • In the list of invoices, these invoices are marked with the anonymous icon.
  • In the API response, the applicant and application fields are set to null.

The collected field indicates whether an invoice is paid in full. Partial collections do not update this field. Collections in excess reset this field to null. If you edit an invoice after the payment and this edit changes the invoice amount, this field is also set to null. For invoices with a value of 0, the field value remains undefined.

GET List invoices

List all invoices issued for an application.

Syntax
GET /api/v10/applications/123/invoices
Host: apply.example.edu
Authorization: DREAM apikey="..."

Example request

Request
curl
curl \
  -X GET \
  -H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
  "https://apply.example.edu/api/v10/applications/123/invoices"

Response headers

HeaderValueDescription
Content-Typeapplication/jsonThe media type of the resource
Content-Length1234The size of the response body in bytes
X-Count2The number of invoices for this application

Response codes

Response codeDescription
200 OKThe list of invoices was successfully returned

Example response

Response
{
  "200": {
    "id": 200,
    "type": "Invoice",
    "nr": "AF-101031225",
    "serie": {
      "id": 2,
      "name": "Application fee"
    },
    "applicant": "/api/v10/applicants/123",
    "application": "/api/v10/applications/321",
    "course": "/api/v10/courses/33",
    "deadline": "2025-12-17",
    "issued": "2025-12-03T13:15:31+00:00",
    "delivered": "2025-12-03T13:15:31+00:00",
    "reminder": true,
    "reminded": null,
    "collected": "2025-12-04T07:06:40+00:00",
    "currency": "EUR",
    "items": [
      {
        "item": "Application fee (one-time)",
        "price": "20.00",
        "qty": "1.00",
        "unit": null,
        "inventory_item_ID": null
      },
      {
        "item": "Discount \"FALL2025\"",
        "price": "-3.00",
        "qty": "1.00",
        "unit": null,
        "inventory_item_ID": null
      }
    ],
    "collections": {
      "41": {
        "id": 41,
        "amount": "17.00",
        "invoice": "/api/v10/invoices/200",
        "inserted": "2025-12-04T07:06:40+00:00",
        "collected": "2025-12-04",
        "administrator": null,
        "payment": {
          "payment": "01KBM2X9KYE7WBY25DFNMXNS4R",
          "external_id": "pi_3SaWcb3BsCbItDpn02T9muKv",
          "status": "captured",
          "message": null,
          "inserted": "2025-12-04T07:06:02+00:00",
          "updated": "2025-12-04T07:06:40+00:00",
          "gateway": {
            "id": 39,
            "name": "Stripe",
            "adapter": "Stripe"
          }
        }
      }
    },
    "instructions": "Account Name: Institute of Technology BE\r\nKBC Bank:\r\nIBAN: BE75 ABCD 1234 5678 90XY\r\nBIC/SWIFT Code: KREDBEBB",
    "smallprint": "Please make sure that you include the invoice number in the payment transaction. Otherwise the payment may not get properly processed.\r\n\r\nThis invoice has been issued electronically and is valid without a signature. The invoice is issued in accordance to the region that you specified during your registration. If the region (and the currency) is not correct, please contact us for re-issuance.",
    "payer": {
      "name": "John Smith",
      "email": "john.smith@email.com"
    }
  },
  "201": {
    "id": 201,
    "type": "Receipt",
    "nr": "2025-6",
    "serie": {
      "id": 127,
      "name": "Test series"
    },
    "applicant": "/api/v10/applicants/123",
    "application": "/api/v10/applications/321",
    "course": null,
    "deadline": "2025-12-25",
    "issued": "2025-12-11T12:11:09+00:00",
    "delivered": "2025-12-11T12:11:09+00:00",
    "reminder": true,
    "reminded": null,
    "collected": null,
    "currency": "EUR",
    "items": [
      {
        "item": "Airport pickup",
        "price": "15.00",
        "qty": "1.00",
        "unit": null,
        "inventory_item_ID": null
      }
    ],
    "collections": {},
    "instructions": "Account Name: Institute of Technology BE\r\nKBC Bank:\r\nIBAN: BE75 ABCD 1234 5678 90XY\r\nBIC/SWIFT Code: KREDBEBB",
    "smallprint": "Please make sure that you include the invoice number in the payment transaction. Otherwise the payment may not get properly processed.\r\n\r\nThis invoice has been issued electronically and is valid without a signature. The invoice is issued in accordance to the region that you specified during your registration. If the region (and the currency) is not correct, please contact us for re-issuance.",
    "payer": {
      "name": "John Smith",
      "email": "john.smith@email.com"
    }
  }
}

POST Create an invoice

Create a new invoice for an application.

Syntax
POST /api/v10/applications/123/invoices
Host: apply.example.edu
Authorization: DREAM apikey="..."

Parameters

NameRequired/OptionalDescription
currencyRequiredThe currency used for the invoice.
itemsRequiredAn array of invoice items formatted as: [item, price, qty, unit].
invoice_class_IDOptionalThe ID of the invoice template used to issue the invoice.
typeOptionalThe type of financial document. If not specified, the Invoice type is used.
issuer_institution_IDOptionalThe ID of the institution issuing the invoice.
serie_IDOptionalThe ID of the invoice series. If not specified, the default invoice series is used.
course_IDOptionalThe ID of the course added to the application for which the invoice is issued.
deadlineOptionalThe invoice deadline in the ISO 8601 datetime format.
reminderOptionalEnables reminders if the invoice is unpaid. Allowed values: On or Off. The default value is On.
instructionsOptionalPayment instructions for the invoice.
smallprintOptionalSmallprint information.
issuer_administrator_IDOptionalThe ID of the administrator issuing the invoice.
payerOptionalThe name and email of the payer formatted as: [name, email]. If not specified, the applicant’s contact details are used.
copyOptionalThe email address to which a blind copy (BCC) of the invoice is sent.
notifyOptionalThe email address to which a notification is sent when the invoice is collected.

Raw request body

The request body must contain a valid JSON object with the parameters above.

Request body
{
  "invoice_class_ID": 1,
  "currency": "EUR",
  "items": [
    {
      "item": "Airport pickup fee",
      "price": "25.00",
      "qty": "1",
      "unit": null
    },
    {
      "item": "City excursion fee",
      "price": "25.00",
      "qty": "1",
      "unit": null
    }
  ],
  "deadline": "2026-09-01",
  "smallprint": "This invoice has been issued electronically and is valid without a signature",
  "issuer_institution_ID": 1,
  "course_ID": 20,
  "reminder": "Off",
  "payer": {
    "name": "John Smith",
    "email": "john.smith@email.com"
  }
}

Example request

Request
curl
curl \
  -X POST \
  -H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
  -H "Content-Type: application/json" \
  -d '{
    "invoice_class_ID": 1,
    "currency": "EUR",
    "items": [
      {
        "item": "Airport pickup fee",
        "price": "25.00",
        "qty": "1",
        "unit": null
      },
      {
        "item": "City excursion fee",
        "price": "25.00",
        "qty": "1",
        "unit": null
      }
    ],
    "deadline": "2026-09-01",
    "smallprint": "This invoice has been issued electronically and is valid without a signature",
    "issuer_institution_ID": 1,
    "course_ID": 20,
    "reminder": "Off",
    "payer": {
      "name": "John Smith",
      "email": "john.smith@email.com"
    }
  }' \
  "https://apply.example.edu/api/v10/applications/123/invoices"

Response headers

HeaderValueDescription
Content-Typeapplication/jsonThe media type of the resource
Content-Length0The size of the response body in bytes
Location/api/applications/123/invoices/321The URI of the created invoice

Response codes

Response codeDescription
201 CreatedA new invoice was successfully created