{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/plaid/main/json-schema/plaid-partner-customer-create-request-schema.json", "title": "PartnerCustomerCreateRequest", "description": "Request schema for `/partner/customer/create`.", "x-generated": "2026-09-23", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/plaid-plaid-api-openapi.yml#/components/schemas/PartnerCustomerCreateRequest", "properties": { "client_id": { "$ref": "#/$defs/APIClientID" }, "secret": { "$ref": "#/$defs/APISecret" }, "company_name": { "description": "The company name of the end customer being created. This will be used to display the end customer in the Plaid Dashboard. It will not be shown to end users.", "type": "string" }, "is_diligence_attested": { "description": "Denotes whether or not the partner has completed attestation of diligence for the end customer to be created.", "type": "boolean" }, "products": { "description": "The products to be enabled for the end customer. If empty or `null`, this field will default to the products enabled for the reseller at the time this endpoint is called.", "type": "array", "items": { "$ref": "#/$defs/Products" }, "x-override-enum-values-shown": [ "assets", "auth", "balance", "identity", "income_verification", "investments", "investments_auth", "liabilities", "transactions", "employment", "cra_base_report", "cra_income_insights", "cra_partner_insights" ] }, "create_link_customization": { "description": "If `true`, the end customer's default Link customization will be set to match the partner's. You can always change the end customer's Link customization in the Plaid Dashboard. See the [Link Customization docs](https://plaid.com/docs/link/customization/) for more information. If you require the ability to programmatically create end customers using multiple different Link customization profiles, contact your Plaid account manager for assistance.\n\nImportant: Data Transparency Messaging (DTM) use cases will not be copied to the end customer's Link customization unless the **Publish changes** button is clicked after the use cases are applied. Link will not work in Production unless the end customer's DTM use cases are configured. For more details, see [Data Transparency Messaging](https://plaid.com/docs/link/data-transparency-messaging-migration-guide/).", "type": "boolean" }, "logo": { "description": "Base64-encoded representation of the end customer's logo. Must be a PNG of size 1024x1024 under 4MB. The logo will be shared with financial institutions and shown to the end user during Link flows. A logo is required if `create_link_customization` is `true`. If `create_link_customization` is `false` and the logo is omitted, the partner's logo will be used if one exists, otherwise a stock logo will be used.", "type": "string" }, "legal_entity_name": { "description": "The end customer's legal name. This will be shared with financial institutions as part of the OAuth registration process. It will not be shown to end users.", "type": "string" }, "website": { "description": "The end customer's website.", "type": "string" }, "application_name": { "description": "The name of the end customer's application. This will be shown to end users when they go through the Plaid Link flow. The application name must be unique and cannot match the name of another application already registered with Plaid.", "type": "string" }, "technical_contact": { "$ref": "#/$defs/PartnerEndCustomerTechnicalContact" }, "billing_contact": { "$ref": "#/$defs/PartnerEndCustomerBillingContact" }, "customer_support_info": { "$ref": "#/$defs/PartnerEndCustomerCustomerSupportInfo" }, "address": { "$ref": "#/$defs/PartnerEndCustomerAddress" }, "is_bank_addendum_completed": { "description": "Denotes whether the partner has forwarded the Plaid bank addendum to the end customer.", "type": "boolean" }, "assets_under_management": { "$ref": "#/$defs/PartnerEndCustomerAssetsUnderManagement" }, "redirect_uris": { "description": "A list of URIs indicating the destination(s) where a user can be forwarded after completing the Link flow; used to support OAuth authentication flows when launching Link in the browser or another app. URIs should not contain any query parameters. When used in Production, URIs must use https. To modify redirect URIs for an end customer after creating them, go to the end customer's [API page](https://dashboard.plaid.com/team/api) in the Dashboard.", "type": "array", "items": { "type": "string" } }, "registration_number": { "description": "The unique identifier assigned to a financial institution by regulatory authorities, if applicable. For banks, this is the FDIC Certificate Number. For credit unions, this is the Credit Union Charter Number.", "type": "string" } }, "required": [ "company_name", "is_diligence_attested", "legal_entity_name", "website", "application_name", "address", "is_bank_addendum_completed" ], "$defs": { "APIClientID": { "title": "ClientID", "type": "string", "description": "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body." }, "APISecret": { "title": "APISecret", "type": "string", "description": "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body." }, "PartnerEndCustomerAddress": { "description": "The end customer's address.", "type": "object", "additionalProperties": true, "properties": { "city": { "type": "string" }, "street": { "type": "string" }, "region": { "type": "string" }, "postal_code": { "type": "string" }, "country_code": { "description": "ISO-3166-1 alpha-2 country code standard.", "type": "string" } } }, "PartnerEndCustomerAssetsUnderManagement": { "description": "Assets under management for the given end customer. Required for end customers with monthly service commitments.", "type": "object", "additionalProperties": true, "properties": { "amount": { "type": "number", "format": "double" }, "iso_currency_code": { "type": "string" } }, "required": [ "amount", "iso_currency_code" ] }, "PartnerEndCustomerBillingContact": { "description": "The billing contact for the end customer. Defaults to partner's billing contact if omitted.", "type": "object", "additionalProperties": true, "properties": { "given_name": { "type": "string" }, "family_name": { "type": "string" }, "email": { "type": "string" } } }, "PartnerEndCustomerCustomerSupportInfo": { "description": "This information is public. Users of your app will see this information when managing connections between your app and their bank accounts in Plaid Portal. Defaults to partner's customer support info if omitted. This field is mandatory for partners whose Plaid accounts were created after November 26, 2024 and will be mandatory for all partners by the 1033 compliance deadline.", "type": "object", "additionalProperties": true, "properties": { "email": { "type": "string", "description": "This field is mandatory for partners whose Plaid accounts were created after November 26, 2024 and will be mandatory for all partners by the 1033 compliance deadline." }, "phone_number": { "type": "string" }, "contact_url": { "type": "string" }, "link_update_url": { "type": "string" } } }, "PartnerEndCustomerTechnicalContact": { "description": "The technical contact for the end customer. Defaults to partner's technical contact if omitted.", "type": "object", "additionalProperties": true, "properties": { "given_name": { "type": "string" }, "family_name": { "type": "string" }, "email": { "type": "string" } } }, "Products": { "title": "Products", "enum": [ "assets", "auth", "balance", "balance_plus", "beacon", "identity", "identity_match", "investments", "investments_auth", "liabilities", "payment_initiation", "identity_verification", "transactions", "credit_details", "income", "income_verification", "standing_orders", "transfer", "employment", "recurring_transactions", "transactions_refresh", "signal", "statements", "processor_payments", "processor_identity", "profile", "cra_base_report", "cra_income_insights", "cra_partner_insights", "cra_network_insights", "cra_cashflow_insights", "cra_monitoring", "cra_lend_score", "cra_plaid_credit_score", "cra_qualify", "cra_home_lending", "layer", "pay_by_bank", "protect_linked_bank", "protect_transactions" ], "description": "A list of products that an institution can support. All Items must be initialized with at least one product. The Balance product is always available and does not need to be specified during initialization.", "type": "string" } } }