action plaid_partner_customer_create { label: "Creates a new end customer for a Plaid reseller." description: "The `/partner/customer/create` endpoint is used by reseller partners to create end customers." provider: plaid method: POST path: "/partner/customer/create" encoding: json input: { description: "Request schema for `/partner/customer/create`." required: ["address", "application_name", "company_name", "is_bank_addendum_completed", "is_diligence_attested", "legal_entity_name", "products", "website"] properties: { address: { type: "object" description: "The end customer's address." properties: { city: { type: "string" } country_code: { type: "string" description: "ISO-3166-1 alpha-2 country code standard." } postal_code: { type: "string" } region: { type: "string" } street: { type: "string" } } } application_name: { type: "string" description: "The name of the end customer's application. This will be shown to end users when they go through the Plaid Link flow." } assets_under_management: { type: "object" description: "Assets under management for the given end customer. Required for end customers with monthly service commitments." required: ["amount", "iso_currency_code"] properties: { amount: { type: "number" format: "double" } iso_currency_code: { type: "string" } } } billing_contact: { type: "object" description: "The billing contact for the end customer. Defaults to partner's technical contact if omitted." properties: { email: { type: "string" } family_name: { type: "string" } given_name: { type: "string" } } } client_id: { 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." } company_name: { type: "string" 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." } create_link_customization: { type: "boolean" 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." } customer_support_info: { type: "object" 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." properties: { contact_url: { type: "string" } email: { type: "string" } link_update_url: { type: "string" } phone_number: { type: "string" } } } is_bank_addendum_completed: { type: "boolean" description: "Denotes whether the partner has forwarded the Plaid bank addendum to the end customer." } is_diligence_attested: { type: "boolean" description: "Denotes whether or not the partner has completed attestation of diligence for the end customer to be created." } legal_entity_name: { type: "string" 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." } logo: { type: "string" 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, a stock logo will be used." } products: { type: "array" description: "The products to be enabled for the end customer." items: { type: "string" 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." enum: ["assets", "auth", "balance", "identity", "investments", "liabilities", "payment_initiation", "identity_verification", "transactions", "credit_details", "income", "income_verification", "deposit_switch", "standing_orders", "transfer", "employment", "recurring_transactions"] } } redirect_uris: { type: "array" 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 via a webview. URIs should not contain any query parameters. When used in Production or Development, URIs must use https. To specify any subdomain, use `*` as a wildcard character, e.g. `https://*.example.com/oauth.html`. 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." items: { type: "string" } } secret: { 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." } technical_contact: { type: "object" description: "The technical contact for the end customer. Defaults to partner's technical contact if omitted." properties: { email: { type: "string" } family_name: { type: "string" } given_name: { type: "string" } } } website: { type: "string" description: "The end customer's website." } } } output: { type: "object" description: "Response schema for `/partner/customer/create`." properties: { end_customer: { type: "object" description: "The details for the newly created end customer, including secrets for non-Production environments." } request_id: { type: "string" description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive." } } } }