openapi: 3.0.3 info: version: 6.0.0 title: FDX V6.0.0 Account Information Personal Information API description: "## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n\n## Endpoints\n\nThis specification contains the following endpoints:\n\n - `/customers/current`\n\n - `/accounts`\n\n - `/accounts/{accountId}`\n\n - `/accounts/{accountId}/payment-networks`\n\n - `/accounts/{accountId}/asset-transfer-networks`\n\n - `/accounts/{accountId}/statements`\n\n - `/accounts/{accountId}/statements/{statementId}`\n\n - `/accounts/{accountId}/contact`\n\n - `/accounts/{accountId}/transactions`\n\n## Error responses\n\nAn error entity which can be used at the API level for error responses or at the account level to indicate a problem specific to a particular account.\nError responses must contain a `code` and `message`, and may optionally include a `debugMessage`.\nSee the descriptions below:\n\n- `code`: The FDX error code: A long-term persistent identifier which can be used to trace error condition back to log information.\n (**Note:** This code may differ from the HTTP status code.)\n- `message`: End user displayable information which might help the customer diagnose an error\n- `debugMessage`: Message used to debug the root cause of the error. Contents should not be used in consumer's business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use\n\n### Example error\n\nThe following is an example response with an HTTP status code of 409.\n\n```\n{\n \"code\": 705,\n \"message\": \"Account is closed\",\n \"debugMessage\": \"Operation is not supported by the closed account\"\n}\n```\n\nSee the Errors table in each endpoint description for more specific message and debug message examples.\n" contact: name: Plaid support url: https://plaid.com/data-connectivity-core-exchange/ email: dataconnectivity@plaid.com servers: - url: https://api.your-organization.com/fdx/v6 description: Financial Data Exchange V6.0 Core API tags: - name: Personal Information description: Search and view customer or customers paths: /accounts/{accountId}/contact: get: operationId: getAccountContact tags: - Personal Information description: 'Get contact information on the account. Plaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn''t attempt to correlate holders to their respective contact information. For more information about Plaid''s identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/). ' summary: Get an account's contact information parameters: - $ref: '#/components/parameters/AccountIdPath' security: - openIdConnect: - Customer - oauth2: - Customer responses: '200': description: 'Details used to verify an account. ' content: application/json: schema: $ref: '#/components/schemas/AccountContact' /customers/current: get: operationId: getCustomerInfo tags: - Personal Information description: 'Get the ID of the customer within the authorization scope. If you use [OIDC authentication](https://plaid.com/core-exchange/docs/authentication/oauth-server-setup) (recommended) you *do not* need to implement this endpoint. Plaid will identify the customer using the OIDC [ID token](https://openid.net/specs/openid-connect-core-1_0.html#IDToken). If you use OAuth2 authentication, Plaid will use this endpoint as an alternate method of customer identification. ' summary: Get current authenticated customer ID security: - openIdConnect: [] - oauth2: [] responses: '200': description: 'Data describing current authenticated customer. ' content: application/json: schema: $ref: '#/components/schemas/Customer' example: customerId: someLongTermUniqueIDString components: schemas: Customer: title: Customer entity. description: 'Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema ' type: object properties: customerId: $ref: '#/components/schemas/Identifier' description: 'Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user ' required: - customerId AccountHolderRelationship: title: Account Holder Relationship description: 'Types of relationships between accounts and holders ' type: string enum: - AUTHORIZED_USER - BUSINESS - FOR_BENEFIT_OF - FOR_BENEFIT_OF_PRIMARY - FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED - FOR_BENEFIT_OF_SECONDARY - FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED - FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED - POWER_OF_ATTORNEY - PRIMARY - PRIMARY_BORROWER - PRIMARY_JOINT - PRIMARY_JOINT_TENANTS - SECONDARY - SECONDARY_BORROWER - SECONDARY_JOINT - SECONDARY_JOINT_TENANTS - SOLE_OWNER - TRUSTEE - UNIFORM_TRANSFER_TO_MINOR TelephoneNumberType: title: Telephone Number Type description: 'Telephone number type ' type: string enum: - HOME - BUSINESS - CELL - FAX CustomerName: title: Customer Name entity description: 'The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field ' type: object allOf: - $ref: '#/components/schemas/IndividualName' - type: object properties: prefix: description: 'Prefix, e.g. Mr., Mrs., Dr. ' type: string AccountContact: title: Account Contact entity description: 'Details used to verify an account ' type: object properties: holders: type: array items: $ref: '#/components/schemas/AccountHolder' minItems: 1 description: 'Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn''t consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn''t associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid''s data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/) ' example: - relationship: SECONDARY name: first: Ernest middle: Miller last: Hemingway suffix: IV - relationship: PRIMARY_JOINT name: first: Maya last: Angelou middle: Annie emails: type: array items: type: string minItems: 1 description: 'Email addresses associated with the account ' example: - ernest.m.hemingway@domain.tld - m.angelou@domain.tld addresses: type: array items: $ref: '#/components/schemas/DeliveryAddress' minItems: 1 description: 'Physical mail addresses associated with the account ' example: - line1: 1850 N Clark St line2: Apartment 103 city: Chicago region: IL postalCode: '60614' country: US - line1: 2014 N Main St city: San Francisco region: CA postalCode: '94105' country: US telephones: type: array items: $ref: '#/components/schemas/TelephoneNumber' minItems: 1 description: 'Telephone numbers associated with the account ' example: - type: HOME country: '1' number: '3127771926' - type: CELL country: '53' number: '45915607' - type: HOME country: '1' number: '4157771926' required: - holders - emails - addresses - telephones String64: title: String 64 description: 'String with a maximum length of 64 characters ' type: string maxLength: 64 TelephoneNumber: title: Telephone Number description: 'Standard for international phone numbers ' type: object properties: type: $ref: '#/components/schemas/TelephoneNumberType' country: type: string maxLength: 3 description: 'Country calling codes defined by ITU-T recommendations E.123 and E.164, such as ''+1'' for United States and Canada, see [List_of_country_calling_codes](https://en.wikipedia.org/wiki/List_of_country_calling_codes) ' number: type: string maxLength: 15 pattern: \d+ description: 'Telephone subscriber number defined by ITU-T recommendation E.164 ' required: - number - type AccountHolder: title: Account Holder entity type: object allOf: - $ref: '#/components/schemas/CustomerWithName' - type: object properties: relationship: $ref: '#/components/schemas/AccountHolderRelationship' description: 'Customer''s relationship to the account ' Iso3166CountryCode: title: ISO 3166 Country Code description: 'ISO 3166-1 alpha-2 codes as of April 5, 2023, from officially assigned Country Codes on [ISO Online Browsing Platform](https://www.iso.org/obp/ui/). Change log is at [ISO 3166 Maintenance Agency](https://www.iso.org/fr/committee/48750.html?t=3V3rukDb61p05Wd6ojyTRvE0S3Yg_fZgUjrLjHWcd9-mDmTKHOGjbX3nEJ3SqHar&view=documents#section-isodocuments-top) ' type: string enum: - AD - AE - AF - AG - AI - AL - AM - AO - AQ - AR - AS - AT - AU - AW - AX - AZ - BA - BB - BD - BE - BF - BG - BH - BI - BJ - BL - BM - BN - BO - BQ - BR - BS - BT - BV - BW - BY - BZ - CA - CC - CD - CF - CG - CH - CI - CK - CL - CM - CN - CO - CR - CU - CV - CW - CX - CY - CZ - DE - DJ - DK - DM - DO - DZ - EC - EE - EG - EH - ER - ES - ET - FI - FJ - FK - FM - FO - FR - GA - GB - GD - GE - GF - GG - GH - GI - GL - GM - GN - GP - GQ - GR - GS - GT - GU - GW - GY - HK - HM - HN - HR - HT - HU - ID - IE - IL - IM - IN - IO - IQ - IR - IS - IT - JE - JM - JO - JP - KE - KG - KH - KI - KM - KN - KP - KR - KW - KY - KZ - LA - LB - LC - LI - LK - LR - LS - LT - LU - LV - LY - MA - MC - MD - ME - MF - MG - MH - MK - ML - MM - MN - MO - MP - MQ - MR - MS - MT - MU - MV - MW - MX - MY - MZ - NA - NC - NE - NF - NG - NI - NL - 'NO' - NP - NR - NU - NZ - OM - PA - PE - PF - PG - PH - PK - PL - PM - PN - PR - PS - PT - PW - PY - QA - RE - RO - RS - RU - RW - SA - SB - SC - SD - SE - SG - SH - SI - SJ - SK - SL - SM - SN - SO - SR - SS - ST - SV - SX - SY - SZ - TC - TD - TF - TG - TH - TJ - TK - TL - TM - TN - TO - TR - TT - TV - TW - TZ - UA - UG - UM - US - UY - UZ - VA - VC - VE - VG - VI - VN - VU - WF - WS - YE - YT - ZA - ZM - ZW IndividualName: title: Individual name description: 'First name, middle initial, last name, suffix fields ' type: object properties: first: description: 'First name ' type: string middle: description: 'Middle name ' type: string last: description: 'Last name ' type: string suffix: description: 'Generational or academic suffix, e.g. Jr., Sr., III ' type: string required: - first - last Identifier: title: Identifier description: 'Value for a unique identifier ' type: string maxLength: 256 example: someLongTermUniqueIDString DeliveryAddress: title: Delivery Address description: 'A delivery address and its location type ' type: object allOf: - $ref: '#/components/schemas/Address' CustomerWithName: title: Customer entity description: 'Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema ' type: object properties: name: $ref: '#/components/schemas/CustomerName' required: - name Address: title: Address description: 'Postal address ' type: object properties: line1: $ref: '#/components/schemas/String64' description: 'Address line 1 ' line2: $ref: '#/components/schemas/String64' description: 'Address line 2 ' line3: $ref: '#/components/schemas/String64' description: 'Address line 3 ' city: $ref: '#/components/schemas/String64' description: 'City ' region: $ref: '#/components/schemas/String64' description: 'State or province ' postalCode: type: string maxLength: 10 description: 'Postal code ' country: $ref: '#/components/schemas/Iso3166CountryCode' description: 'Country code ' required: - line1 - city - country parameters: AccountIdPath: name: accountId in: path description: 'Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number **Note:** If the status of the `accountId` provided is `RESTRICTED`, you can send a 200 response with an empty body to indicate that no payment networks are available at this time. ' required: true schema: $ref: '#/components/schemas/Identifier' securitySchemes: openIdConnect: type: openIdConnect description: 'This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H ''Authorization: Bearer