Bank feeds

Create a link token

Starts a new bank link by asking the feed provider for a short-lived token. Hand it to the provider's link widget in the browser. Requires the reconciliations:write permission.

POST
https://services.magicdoor.com/accounting/company-portal/bank-feeds/link-token

Authorization

Authorizationstringrequired
Bearer token — Send your API token in the Authorization header as Bearer <token>. Requests without a valid token are rejected with 401 Unauthorized.

Response

200 · A link token for the provider's widget.

linkTokenstring

The token to pass to the provider's link widget. An opaque provider-issued value — do not parse or store it beyond the flow.

expirationstring · date-time

When the token stops working, in the company's timezone. Absent when the provider does not supply an expiry.

401 · The access token is missing, expired, or not for this company.

403 · The caller does not hold the `reconciliations:write` permission.

  1. Ask MagicDoor for a link token

    Call Create a link token. You get a short-lived linkToken.

  2. Run the provider's flow in the browser

    Hand the linkToken to the provider's own link widget. The property manager picks their bank and signs in there. MagicDoor never sees the credentials.

  3. Exchange what the widget gives you

    The widget hands your front end a public token. Post it to Exchange a public token and MagicDoor creates the connection and links the accounts it can match.

Bank feeds borrow the reconciliation permissions

There is no separate bank-feed permission. Every endpoint in this section is gated on reconciliations:read or reconciliations:write, because reconciliation is the only workflow that consumes a linked feed today.