Skip to content

File export

core.provider = file.export (the default provider) writes the boarding record to core.file_export_path (the exports volume, /data/exports) instead of posting it to a core. The folder can be a volume or a mounted share that the bank’s core import job reads.

On commit, Bookend writes three files with the same content in three shapes:

  • boarding_{ref}_v{n}.json: provider, loanRef, packageVersion, borrower, idempotencyKey, and fields[], each with its core code, canonical field, value and source (document name, document type, page).
  • boarding_{ref}_v{n}.xml: a <Boarding provider loanRef packageVersion> element with <Borrower> and one <Field code canonical> per value.
  • boarding_{ref}_v{n}.csv: one header row and one data row, CRLF line endings, every value quoted. The first columns are loan_ref and package_version; the rest follow the field map’s order (expanded lists inline).

Fields with no value are left out of all three files. Characters in the loan reference other than letters, digits, -, _ and . become _ in the file name.

The names are deterministic per loan and package version, so a retried commit overwrites the same files rather than creating a second boarding. The commit’s “core reference” is the file set’s base name, and the boarding status check reports whether all three files are present.

Staging only proves the folder is still writable. The connection test (POST /v1/settings/test/core, setup wizard step 6) does the same check, writing and deleting a probe file as the api’s app user.

The seeded file.export v1 core field map uses the canonical field names verbatim; adjust it to the columns your import expects.

Approved wires are exported by a signed-in admin, manager or specialist with GET /v1/loans/{ref}/wire/export:

  • format=pdf (default): the instruction sheet for the wire desk, wire_{ref}.pdf.
  • format=filedrop: a structured JSON file, wire_{ref}.json, with the amount, currency, the wire fields read from the disbursement request, per-field provenance, who staged and approved it, and when.

Either way the file is returned as a download and also written under {core.file_export_path}/wires when that path is set (file drop requires it). The export is recorded in the evidence chain with the file’s hash. Bookend never transmits a wire to a payment network.

Switching to jXchange later is a settings change; the two-phase approval and the evidence trail are identical.