Looking for the previous documentation?Go to v1.docs.pluggy.ai

Item resources

What the institution declared for an Open Finance consent, resource by resource — and how to tell 'the bank did not share it' apart from 'we have not collected it'.

View as Markdown

When a product comes back empty, there are two very different reasons behind it, and they lead to opposite next steps:

  • the institution never shared it — the consent does not cover it, the user still has to authorise it, or the bank reports it as unavailable. The end user can fix this at their bank;
  • we do not hold the record — the consent covers it, but the sync has not brought it in. That is ours to look at.

GET /items/{id}/resources answers the first one. It lists the resources the financial institution declared for this item's consent, exactly as the institution reported them — nothing inferred, nothing merged with our own data.

Open Finance only

Only Open Finance institutions report a resource list. An item on a direct connector returns an empty page rather than an error, so it is safe to call for any item.

The response#

The endpoint is paged (page, pageSize, default 500 per page):

json
{
  "page": 1,
  "total": 3,
  "totalPages": 1,
  "results": [
    { "resourceId": "92792126-fa1e-4e1c-a2b2-5b7b0d4a0b11", "type": "ACCOUNT", "status": "AVAILABLE" },
    { "resourceId": "0d1e2f34-55aa-4b0c-9f3d-77c1a0e2b345", "type": "CREDIT_CARD_ACCOUNT", "status": "PENDING_AUTHORISATION" },
    { "resourceId": "5f6a7b89-1122-4c33-8d44-99e0f1a2b3c4", "type": "FUND", "status": "UNAVAILABLE" }
  ]
}

Each entry has three fields:

FieldWhat it is
resourceIdThe institution's identifier for the resource. It matches the providerId of the corresponding account, credit card, loan or investment — not a Pluggy id.
typeThe Open Finance resource type, as declared.
statusWhat the institution reports about this resource.

Status#

StatusWhat it meansWho acts
AVAILABLEThe institution shares this resource under the consent.Nobody — if data is still missing, it is a collection question, not a consent one.
PENDING_AUTHORISATIONThe consent reaches this resource, but the user has not authorised it yet at their institution.The end user, in their bank's app.
UNAVAILABLEThe institution reports it as not available.The end user, or nobody — the institution decides.
TEMPORARILY_UNAVAILABLEThe institution reports it as unavailable for now.Retry later.

PENDING_AUTHORISATION keeps Open Finance's British spelling. It is the regulation's, not a typo.

Types#

TypeProduct it belongs to
ACCOUNTAccounts
CREDIT_CARD_ACCOUNTCredit cards
LOAN, FINANCING, INVOICE_FINANCING, UNARRANGED_ACCOUNT_OVERDRAFTLoans — the same four families the Loan's kind uses
BANK_FIXED_INCOME, CREDIT_FIXED_INCOME, VARIABLE_INCOME, TREASURE_TITLE, FUNDInvestments

How fresh the list is#

The list is a snapshot from the last execution that actually reached the institution, so it can be older than the item itself. The Item's resourcesCollectedAt says when it was taken.

That field is also what makes an empty list readable:

  • resourcesCollectedAt set, empty list → the institution shared nothing under this consent;
  • resourcesCollectedAt null → the list has never been obtained. An empty response says nothing about the consent.

What it does not answer#

Whether Pluggy holds the matching record is a separate question. A resource can be AVAILABLE and still have no data on our side, and the reverse also happens — we keep records across executions, so data can be there from an earlier sync of a resource the institution no longer declares.

For that side, use the product endpoints (/accounts, /investments, /loans) and the Item's statusDetail, which reports per-product collection outcomes. See Item and Warnings & Status Codes.

A worked triage#

A customer reports that an item connected to an Open Finance bank returns no investments.

  1. GET /items/{id} — is status UPDATED? What does statusDetail.investments say? If it reports an error, the problem is collection and stops here.
  2. GET /items/{id}/resources — are there investment types in the list at all?
    • none, and resourcesCollectedAt is set → the institution does not share investments under this consent. Nothing to fix on our side;
    • present as PENDING_AUTHORISATION → the user has to authorise that resource at their bank;
    • present as AVAILABLE → the consent covers it and we should have it. That is a collection issue worth reporting, with the item id and the resourceId in hand.

Per-connector coverage tables answer a different question — what a connector supports in general — and live in Connectors coverage. This endpoint answers it for one consent, as the institution declared it today.

Was this page helpful?