Partner endpoints and webhooks
Create and manage end customers
Reseller Partner Endpoints and Webhooks
These endpoints and webhooks are used by Plaid reseller partners to create and manage their end customers.
| Endpoints | |
|---|---|
/partner/customer/create | Create an end customer |
/partner/customer/get | Get the status of an end customer |
/partner/customer/oauth_institutions/get | Get the OAuth-institution registration status for an end customer |
/partner/customer/enable | Enable an end customer in Production |
/partner/customer/remove | Remove an end customer |
| Webhooks | |
|---|---|
PARTNER_END_CUSTOMER_OAUTH_STATUS_UPDATED | Customer OAuth status updated |
Endpoints
/partner/customer/create
Creates a new end customer for a Plaid reseller.
The /partner/customer/create endpoint is used by reseller partners to create end customers.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.company_nameis_diligence_attestedproductsnull, this field will default to the products enabled for the reseller at the time this endpoint is called.assets, auth, balance, identity, income_verification, investments, liabilities, transactions, employmentcreate_link _customizationtrue, 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 for more information.logocreate_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.legal_entity_namewebsiteapplication_nametechnical_contactbilling_contactcustomer_support_infoaddresscitystreetregionpostal_codecountry_codeis_bank_addendum _completedassets_under _managementamountiso_currency_coderedirect_uris* 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 in the Dashboard.registration_number1const request: PartnerCustomerCreateRequest = {2 address: {3 city: city,4 country_code: countryCode,5 postal_code: postalCode,6 region: region,7 street: street,8 },9 application_name: applicationName,10 billing_contact: {11 email: billingEmail,12 given_name: billingGivenName,13 family_name: billingFamilyName,14 },15 customer_support_info: {16 email: supportEmail,17 phone_number: supportPhoneNumber,18 contact_url: supportContactUrl,19 link_update_url: linkUpdateUrl,20 },21 company_name: companyName,22 is_bank_addendum_completed: true,23 is_diligence_attested: true,24 legal_entity_name: legalEntityName,25 products: products,26 technical_contact: {27 email: technicalEmail,28 given_name: technicalGivenName,29 family_name: technicalFamilyName,30 },31 website: website,32};33try {34 const response = await plaidClient.partnerCustomerCreate(request);35 const endCustomer = response.data.end_customer;36} catch (error) {37 // handle error38}Response fields and example
end_customerclient_idclient_id of the end customer.company_namestatusUNDER_REVIEW: The end customer has been created and enabled in the non-Production environments. The end customer must be manually reviewed by the Plaid team before it can be enabled in production, at which point its status will automatically transition to PENDING_ENABLEMENT or DENIED.PENDING_ENABLEMENT: The end customer is ready to be enabled in the Production environment. Call the /partner/customer/enable endpoint to enable the end customer in Production.ACTIVE: The end customer has been enabled in all environments.DENIED: The end customer has been created and enabled in the non-Production environments, but it did not pass review by the Plaid team and therefore cannot be enabled in the Production environment. Talk to your Account Manager for more information.UNDER_REVIEW, PENDING_ENABLEMENT, ACTIVE, DENIEDsecretssandboxdevelopmentrequest_id1{2 "end_customer": {3 "client_id": "7f57eb3d2a9j6480121fx361",4 "company_name": "Plaid",5 "status": "ACTIVE",6 "secrets": {7 "sandbox": "b60b5201d006ca5a7081d27c824d77",8 "development": "95e56a510204f293d3bebd4b9cf5c7"9 }10 },11 "request_id": "4zlKapIkTm8p5KM"12}Was this helpful?
/partner/customer/get
Returns a Plaid reseller's end customer.
The /partner/customer/get endpoint is used by reseller partners to retrieve data about a single end customer.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.end_customer_client_id1const request: PartnerCustomerGetRequest = {2 end_customer_client_id: clientId,3};4try {5 const response = await plaidClient.partnerCustomerGet(request);6 const endCustomer = response.data.end_customer;7} catch (error) {8 // handle error9}Response fields and example
end_customerclient_idclient_id of the end customer.company_namestatusUNDER_REVIEW: The end customer has been created and enabled in the non-Production environments. The end customer must be manually reviewed by the Plaid team before it can be enabled in production, at which point its status will automatically transition to PENDING_ENABLEMENT or DENIED.PENDING_ENABLEMENT: The end customer is ready to be enabled in the Production environment. Call the /partner/customer/enable endpoint to enable the end customer in Production.ACTIVE: The end customer has been enabled in all environments.DENIED: The end customer has been created and enabled in the non-Production environments, but it did not pass review by the Plaid team and therefore cannot be enabled in the Production environment. Talk to your Account Manager for more information.UNDER_REVIEW, PENDING_ENABLEMENT, ACTIVE, DENIEDrequest_id1{2 "end_customer": {3 "client_id": "7f57eb3d2a9j6480121fx361",4 "company_name": "Plaid",5 "status": "ACTIVE"6 },7 "request_id": "4zlKapIkTm8p5KM"8}Was this helpful?
/partner/customer/oauth_institutions/get
Returns OAuth-institution registration information for a given end customer.
The /partner/customer/oauth_institutions/get endpoint is used by reseller partners to retrieve OAuth-institution registration information about a single end customer. To learn how to set up a webhook to listen to status update events, visit the reseller documentation.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.end_customer_client_id1const request: PartnerCustomerOAuthInstitutionsGetRequest = {2 end_customer_client_id: clientId,3};4try {5 const response = await plaidClient.partnerCustomerOAuthInstitutionsGet(6 request,7 );8} catch (error) {9 // handle error10}Response fields and example
flowdown_statusNOT_STARTED, IN_REVIEW, NEGOTIATION, COMPLETEquestionnaire_statusNOT_STARTED, RECEIVED, COMPLETEinstitutionsnameinstitution_idenvironmentsdevelopmentNOT_STARTED, PROCESSING, APPROVED, ENABLED, ATTENTION_REQUIREDproductionNOT_STARTED, PROCESSING, APPROVED, ENABLED, ATTENTION_REQUIREDproduction_enablement _dateclassic_disablement _daterequest_id1{2 "flowdown_status": "COMPLETE",3 "questionnaire_status": "COMPLETE",4 "institutions": [5 {6 "name": "Chase",7 "institution_id": "ins_56",8 "environments": {9 "production": "PROCESSING",10 "development": "PROCESSING"11 },12 "production_enablement_date": null,13 "classic_disablement_date": "2022-06-30"14 },15 {16 "name": "Capital One",17 "institution_id": "ins_128026",18 "environments": {19 "production": "ENABLED",20 "development": "ENABLED"21 },22 "production_enablement_date": "2022-12-19",23 "classic_disablement_date": null24 }25 ],26 "request_id": "4zlKapIkTm8p5KM"27}Was this helpful?
/partner/customer/enable
Enables a Plaid reseller's end customer in the Production environment.
The /partner/customer/enable endpoint is used by reseller partners to enable an end customer in the Production environment.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.end_customer_client_id1const request: PartnerCustomerEnableRequest = {2 end_customer_client_id: clientId,3};4try {5 const response = await plaidClient.partnerCustomerEnable(request);6 const productionSecret = response.data.production_secret;7} catch (error) {8 // handle error9}Response fields and example
production_secretrequest_id1{2 "production_secret": "79g03eoofwl8240v776r2h667442119",3 "request_id": "4zlKapIkTm8p5KM"4}Was this helpful?
/partner/customer/remove
Removes a Plaid reseller's end customer.
The /partner/customer/remove endpoint is used by reseller partners to remove an end customer. Removing an end customer will remove it from view in the Plaid Dashboard and deactivate its API keys. This endpoint can only be used to remove an end customer that has not yet been enabled in Production.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.end_customer_client_idclient_id of the end customer to be removed.1const request: PartnerCustomerRemoveRequest = {2 end_customer_client_id: clientId,3};4try {5 const response = await plaidClient.partnerCustomerRemove(request);6} catch (error) {7 // handle error8}Response fields and example
request_id1{2 "request_id": "4zlKapIkTm8p5KM"3}Was this helpful?
Webhooks
PARTNER_END_CUSTOMER_OAUTH_STATUS_UPDATED
The webhook of type PARTNER and code END_CUSTOMER_OAUTH_STATUS_UPDATED will be fired when a partner's end customer has an update on their OAuth registration status with an institution.
webhook_typePARTNERwebhook_codeEND_CUSTOMER_OAUTH_STATUS_UPDATEDend_customer_client_idenvironmentdevelopment, sandbox, productioninstitution_idinstitution_namestatusnot-started, processing, approved, enabled, attention-required1{2 "webhook_type": "PARTNER",3 "webhook_code": "END_CUSTOMER_OAUTH_STATUS_UPDATED",4 "end_customer_client_id": "634758733ebb4f00134b85ea",5 "environment": "production",6 "institution_id": "ins_127989",7 "institution_name": "Bank of America",8 "status": "attention-required"9}