VaultToken
Queries
vaultTokenAuthenticatedFetches a vault token by id. Callers may only read tokens they own or that belong to their own organizations; any other token resolves to null.vaultTokensAuthenticatedLists vault tokens newest first as a Relay-style cursor-paginated connection: those of the organization named in 'input.orgId', or of the caller's own account when none is named. Deleted tokens are omitted unless 'includeDeleted' is set.
Mutations
vaultTokenizeCardAuthenticatedExchanges a card for a vault token. Only the card number is required. The card is validated on the way in — a malformed number is rejected as a validation error — and the number is held by the vault, never returned. The token is the only thing to keep; present it in place of the card when a transaction occurs. Do so within an hour: a token not used to create a payment or payment plan by 'expiresAt' is deleted. The token is attached to 'orgId' and 'contactId' only when they are given. Supply an idempotencyKey so a retried request does not create a second token.vaultTokenizeBankAccountAuthenticatedExchanges a bank account for a vault token. The routing number is validated and kept in the clear; the account number is held by the vault and never returned. Use the token within an hour: one not used to create a payment or payment plan by 'expiresAt' is deleted. The token is attached to 'orgId' and 'contactId' only when they are given. Supply an idempotencyKey so a retried request does not create a second token.vaultTokenDeleteAuthenticatedDeletes a vault token and releases the instrument held for it. The token is retained in a deleted state so past transactions made with it stay attributable, but it can no longer be used and no longer appears in listings by default. Deleting an already-deleted token succeeds and returns it unchanged.
Types
ContactContactIdvDocumentA captured identity document from a contact's Plaid documentary verification.ContactIdvDocumentImageA single captured image belonging to a ContactIdvDocument. Plaid-hosted and expiring.ContactIdvSessionDetailDetails of a contact's Plaid identity-verification session, fetched on demand from Plaid. The public graph exposes the timestamps, the captured selfie video, the captured identity documents, and the individual check outcomes; the remaining fields — including the raw Plaid pass-throughs they are derived from — are private-graph only.ContactIdvSessionStatusWhere a contact's verification stands. Mirrors the shared IdvSessionStatus but is declared separately so the contact graph's public surface does not depend on a type owned by the application module.ContactVaultTokensInputFilter and pagination for 'Contact.vaultTokens'. The contact is the one the field hangs off, so there is no contact or organization filter to pass. Pagination works as on 'VaultTokensInput': forward with first + after, backward with last + before, and a request that combines the two directions is rejected as a validation error.DateTimeISO 8601 formatted date time. Ex. 2023-11-23T14:30:00ZEmailAn email addressGlobalAddressAddress of a physical locationGlobalAddressInputAddress of a physical locationIdvFacialComparisonStatusHow the captured selfie compared against the face on the captured identity document. NoInput means one of the two was never captured.IdvLivenessStatusWhether the captured selfie passed liveness detection — that a live person was present rather than a photograph or a screen.IdvMatchSummaryHow one value that the contact supplied compared against the data sources that Plaid checked it against. NoData means Plaid held nothing to compare with; NoInput means the contact supplied nothing to compare.PageInfoPageInfo type for cursor-based pagination following the Relay specification for cursor based pagination.PaymentMethodA payment instrument stored against a contact so it can be charged again without the customer re-entering it. A payment method is created by completing a payment session whose `storePaymentMethod` was not `Disabled`, and charged afterwards with `chargePaymentMethod`. Payment options that are unsuitable for storing are not offered during such a session — consumer financing such as FlexPay, for example, applies to a single purchase and cannot act as a method on file.PaymentMethodBankAccountBank account detail for a stored payment method whose type is BankAccount.PaymentMethodBankAccountTypeThe kind of bank account a stored payment method debits.PaymentMethodCardCard detail for a stored payment method whose type is Card.PaymentMethodCardFundingHow a stored card funds a payment, when the provider reports it.PaymentMethodConnectionA page of payment methods following the [Relay Connection spec](https://relay.dev/graphql/connections.htm). edges holds the payment methods in this page (each with its cursor) and pageInfo describes whether more pages exist in each direction plus the cursors that bound this page.PaymentMethodEdgeA single element of a PaymentMethodConnection page: the payment method itself (node) plus the opaque cursor that points at it. Pass a cursor back as `after` (forward) or `before` (backward) to page relative to this row.PaymentMethodsInputFilter and pagination for a payment methods connection. Pagination is Relay cursor-based, not page/offset based — see the [Relay Connections spec](https://relay.dev/graphql/connections.htm). Page forward with first + after, or backward with last + before; never mix the two directions in a single call. Cursors are opaque strings taken from a previous response's pageInfo (or edges[].cursor) — treat them as black boxes, don't build or parse them yourself.PaymentMethodStatusWhether a stored payment method can still be charged.PaymentMethodTypeThe kind of instrument a stored payment method holds.PaymentProviderPhoneE.164 formatted phone number. Ex. +14155554345RecurringProcessingModelHow a stored payment method may be used for a later payment, following the card networks' stored-credential framework. The model is declared when a method is stored and again on every payment made from it, and it decides how that later payment is treated for Strong Customer Authentication: a Subscription or UnscheduledCardOnFile charge is one you initiate and falls outside SCA, while a CardOnFile charge does not. What separates the two models you initiate is the schedule, not the amount. A run of payments on a fixed interval is a Subscription even when the amount differs every time.VaultBankAccountHolderTypeWhether a bank account belongs to a person or a business.VaultBankAccountInputBank account details to tokenize.VaultCardInputCard details to tokenize. Only the card number is required; supply the expiration, security code and cardholder name when you have them, since a charge made later is more likely to be authorized with them.VaultTokenA card or bank account held in the ClientLoop vault, referenced by an opaque token. A third party tokenizes an instrument once with 'vaultTokenizeCard' or 'vaultTokenizeBankAccount' and presents the token later in place of the account data. A token is short-lived until it is used: one not used to create a payment or payment plan within an hour of being created is deleted, together with the instrument it holds. A token that has been used lives as long as the payment or plan needs it. A vault token is not a stored payment method. It is optionally attached to an organization and to a contact, and carries no consent or recurring arrangement of its own; keeping an instrument on file for a contact is what 'PaymentMethod' is for. The account number itself is never returned: a token exposes the BIN, last four digits, expiration and brand of a card, or the routing number and last four digits of a bank account.VaultTokenBankAccountBank account detail for a vault token whose type is BankAccount.VaultTokenCardCard detail for a vault token whose type is Card.VaultTokenConnectionA page of vault tokens following the [Relay Connection spec](https://relay.dev/graphql/connections.htm). edges holds the tokens in this page (each with its cursor) and pageInfo describes whether more pages exist in each direction plus the cursors that bound this page.VaultTokenDeleteInputVaultTokenEdgeA single element of a VaultTokenConnection page: the token itself (node) plus the opaque cursor that points at it. Pass a cursor back as 'after' (forward) or 'before' (backward) to page relative to this row.VaultTokenizeBankAccountInputVaultTokenizeCardInputVaultTokensInputFilter and pagination for the 'vaultTokens' query. Pagination is Relay cursor-based, not page/offset based — see the [Relay Connections spec](https://relay.dev/graphql/connections.htm). Page forward with first + after, or backward with last + before. Either of last or before selects the backward direction, and a request that combines the two directions is rejected as a validation error rather than paged in one of them. Cursors are opaque strings taken from a previous response's pageInfo (or edges[].cursor) — treat them as black boxes, don't build or parse them yourself.VaultTokenStatusWhether the instrument behind a vault token is still current, judged each time it is read. Deletion is separate and told apart by 'deletedAt': a deleted token still reports a status, and can still move to Expired, so a token is usable only while its status is Active and it has not been deleted.VaultTokenTypeThe kind of instrument a vault token stands for.