Skip to content

Document callback

For integrations that accept files, Evorest POSTs PDFs to a URL on your server. You tell Evorest the base URL and one path per document type when the integration is set up. They are not part of the open-deposit request, and Evorest only sends the document types you have a path for.

SystemPayment slipPay-in confirmationPay-out confirmationWithdrawalInsurance documents
PropbaseYesYesYesNoYes
EmonitorYesYesYesNoNo
CustomNoYesYesNoNo
FlatfoxYesYesNoYes, without a fileNo
WoonigNoNoNoNoNo

365immo receives status changes as JSON, not PDFs. GaraioREM v2 receives its documents as messages.

DocumentWhen
Payment slipThe bank has opened the deposit account and Evorest has created the QR payment slip. The PDF is the slip, with the IBAN to pay into.
Pay-in confirmationThe deposit has become open: the full amount is paid in. The PDF is the bank’s credit advice. If the tenant paid in several instalments, Evorest sends the earlier credit advices too, each in its own call. Sent once per deposit.
Pay-out confirmationThe deposit is being closed and the bank’s account-closing statement is available. Each statement is its own call.
WithdrawalThe property manager withdrew the deposit before it was paid in.

Deposits that were opened with the insurance product have no bank account, so they never produce a payment slip, pay-in, or pay-out file.

  • The request is multipart/form-data over HTTPS. Any HTTP 2xx answer counts as received. Any other status, or no answer within 30 seconds, counts as a failure. Redirects are followed.
  • After a failure Evorest tries again straight away, up to ten attempts in total, with a delay that doubles from 0.1 seconds and never exceeds one second.
  • Pay-out files are tried again on the next regular check until they are accepted, so the same file can arrive more than once. Make your endpoint idempotent: use x-external-contract-id together with the file name to spot a repeat.
  • A payment slip or pay-in file that fails all ten attempts is not queued for a later automatic resend. If your endpoint was down, ask Evorest to send it again. See Getting access and support.
  • When one event has several files, for example several credit advices, the calls are made in parallel. Do not rely on their order.

Headers:

HeaderMeaning
x-api-keyThe same organization key you use to call Evorest.
x-external-org-idThe external organization id.
x-external-contract-idexternalContractId, so you can match the file.

The body is multipart/form-data.

DocumentParts
Pay-in confirmationfile, the PDF.
Pay-out confirmationfile, the PDF.
Payment slipfile, the PDF, and metadata, a JSON part (application/json) with { "iban": "<iban>" }.

Propbase also receives the insurance documents, when the organization offers insurance and you have given a path for them:

DocumentParts
Insurance openingfile, the PDF.
Insurance activationfile, the PDF, and metadata with { "insurancePolicyId": "<id>" }. The id is empty if the insurer has not issued one.

Authentication on this callback is HTTP Basic, not x-api-key. Headers:

HeaderMeaning
AuthorizationBasic <base64 username:password>, agreed at setup.
x-external-org-idThe external organization id.
x-external-contract-idexternalContractId.
x-is-closingfalse on a pay-in confirmation, true on a pay-out confirmation.

The only multipart part is file, the PDF. There is no payment slip for Custom.

Which path Evorest uses decides the type as well: pay-in and pay-out go to two different paths. x-is-closing repeats it.

Flatfox uses different part names and sends no x-external-org-id. See Flatfox.

Tell Evorest which paths you have built and ask for sample callbacks for your test deposit. See Getting access and support.