Transfer Platform Payments
API reference for Transfer Platform Payments endpoints
Platform Payments | |
---|---|
/transfer/originator/create | Create a new originator |
/transfer/originator/get | Get the status of an originator's onboarding |
/transfer/originator/list | Get the status of all originators' onboarding |
/transfer/originator/funding_account/update | Update the default funding account of an originator |
/transfer/questionnaire/create | Generate a Plaid-hosted onboarding UI URL |
/transfer/diligence/submit | Submit transfer diligence on behalf of the originator |
/transfer/diligence/document/upload | Upload transfer diligence document on behalf of the originator |
/transfer/originator/create
Create a new originator
Use the /transfer/originator/create
endpoint to create a new originator and return an originator_client_id
.
client_id
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.secret
secret
. The secret
is required and may be provided either in the PLAID-SECRET
header or as part of a request body.company_name
1
1const request: TransferOriginatorCreateRequest = {2 company_name: 'Marketplace of Shannon',3};45try {6 const response = await client.transferOriginatorCreate(request);7} catch (error) {8 // handle error9}
Response fields and example
originator_client_id
company_name
request_id
1{2 "originator_client_id": "6a65dh3d1h0d1027121ak184",3 "company_name": "Marketplace of Shannon",4 "request_id": "4zlKapIkTm8p5KM"5}
Was this helpful?
/transfer/originator/get
Get status of an originator's onboarding
The /transfer/originator/get
endpoint gets status updates for an originator's onboarding process. This information is also available via the Transfer page on the Plaid dashboard.
client_id
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.secret
secret
. The secret
is required and may be provided either in the PLAID-SECRET
header or as part of a request body.originator_client_id
1const request: TransferOriginatorGetRequest = {2 originator_client_id: '6a65dh3d1h0d1027121ak184',3};45try {6 const response = await client.transferOriginatorGet(request);7} catch (error) {8 // handle error9}
Response fields and example
originator
client_id
transfer_diligence _status
not_submitted
, submitted
, under_review
, approved
, denied
company_name
request_id
1{2 "originator": {3 "client_id": "6a65dh3d1h0d1027121ak184",4 "transfer_diligence_status": "approved",5 "company_name": "Plaid"6 },7 "request_id": "saKrIBuEB9qJZno"8}
Was this helpful?
/transfer/originator/list
Get status of all originators' onboarding
The /transfer/originator/list
endpoint gets status updates for all of your originators' onboarding. This information is also available via the Plaid dashboard.
client_id
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.secret
secret
. The secret
is required and may be provided either in the PLAID-SECRET
header or as part of a request body.count
25
1
25
offset
0
0
1const request: TransferOriginatorListRequest = {2 count: 14,3 offset: 2,4};56try {7 const response = await client.transferOriginatorList(request);8} catch (error) {9 // handle error10}
Response fields and example
originators
client_id
transfer_diligence _status
not_submitted
, submitted
, under_review
, approved
, denied
request_id
1{2 "originators": [3 {4 "client_id": "6a65dh3d1h0d1027121ak184",5 "transfer_diligence_status": "approved"6 },7 {8 "client_id": "8g89as4d2k1d9852938ba019",9 "transfer_diligence_status": "denied"10 }11 ],12 "request_id": "4zlKapIkTm8p5KM"13}
Was this helpful?
/transfer/originator/funding_account/update
Update the funding account associated with the originator
Use the /transfer/originator/funding_account/update
endpoint to update the funding account associated with the originator.
client_id
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.secret
secret
. The secret
is required and may be provided either in the PLAID-SECRET
header or as part of a request body.originator_client_id
funding_account
/transfer/migrate_account
.access_token
account_id
account_id
for the newly created Item.1const request: TransferOriginatorFundingAccountUpdateRequest = {2 originator_client_id: '6a65dh3d1h0d1027121ak184',3 funding_account: {4 access_token: 'access-sandbox-71e02f71-0960-4a27-abd2-5631e04f2175',5 account_id: '3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr',6 },7};89try {10 const response = await client.transferOriginatorFundingAccountUpdate(request);11} catch (error) {12 // handle error13}
Response fields and example
request_id
1{2 "request_id": "saKrIBuEB9qJZno"3}
Was this helpful?
/transfer/questionnaire/create
Generate a Plaid-hosted onboarding UI URL.
The /transfer/questionnaire/create
endpoint generates a Plaid-hosted onboarding UI URL. Redirect the originator to this URL to provide their due diligence information and agree to Plaid’s terms for ACH money movement.
client_id
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.secret
secret
. The secret
is required and may be provided either in the PLAID-SECRET
header or as part of a request body.originator_client_id
redirect_uri
1const request: TransferQuestionnaireCreateRequest = {2 originator_client_id: '6a65dh3d1h0d1027121ak184',3 redirect_uri: 'https://example.com',4};56try {7 const response = await client.transferQuestionnaireCreate(request);8} catch (error) {9 // handle error10}
Response fields and example
onboarding_url
request_id
1{2 "onboarding_url": "https://plaid.com/originator/hIFGXx1zM5pFerygu7lw",3 "request_id": "saKrIBuEB9qJZno"4}
Was this helpful?
/transfer/diligence/submit
Submit transfer diligence on behalf of the originator
Use the /transfer/diligence/submit
endpoint to submit transfer diligence on behalf of the originator (i.e., the end customer).
client_id
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.secret
secret
. The secret
is required and may be provided either in the PLAID-SECRET
header or as part of a request body.originator_client_id
originator_diligence
dba
tax_id
1
credit_usage _configuration
expected_frequency
once_per_month
, twice_per_month
, once_per_week
, daily
expected_highest _amount
expected_average _amount
expected_monthly _amount
sec_codes
"ccd"
- Corporate Credit or Debit - fund transfer between two corporate bank accounts"ppd"
- Prearranged Payment or Deposit - the transfer is part of a pre-existing relationship with a consumer, e.g. bill payment"web"
- A credit Entry initiated by or on behalf of a holder of a Consumer Account that is intended for a Consumer Account of a Receiverccd
, ppd
, web
debit_usage _configuration
expected_frequency
once_per_month
, twice_per_month
, once_per_week
, daily
expected_highest _amount
expected_average _amount
expected_monthly _amount
sec_codes
"ccd"
- Corporate Credit or Debit - fund transfer between two corporate bank accounts"ppd"
- Prearranged Payment or Deposit - the transfer is part of a pre-existing relationship with a consumer, eg. bill payment"tel"
- Telephone-Initiated Entry"web"
- Internet-Initiated Entry - debits from a consumer’s account where their authorization is obtained over the Internetccd
, ppd
, tel
, web
address
city
street
region
postal_code
country_code
website
naics_code
6
6
funding_account
/transfer/migrate_account
.access_token
account_id
account_id
for the newly created Item.1const request: TransferDiligenceSubmitRequest = {2 originator_client_id: '415ab64b87ec47401d000002',3 originator_diligence: {4 address: {5 city: 'San Francisco',6 country_code: 'US',7 postal_code: '95302',8 region: 'San Francisco',9 street: '1 A street',10 },11 dba: 'Marketplace of Shannon',12 credit_usage_configuration: {13 expected_average_amount: '10.00',14 expected_frequency: 'once_per_week',15 expected_highest_amount: '100.00',16 expected_monthly_amount: '1000.00',17 sec_codes: ['ccd', 'ppd'],18 },19 debit_usage_configuration: {20 expected_average_amount: '10.00',21 expected_frequency: 'once_per_week',22 expected_highest_amount: '100.00',23 expected_monthly_amount: '1000.00',24 sec_codes: ['ccd', 'ppd'],25 },26 naics_code: '111111',27 tax_id: '123456789',28 website: 'www.website.com',29 funding_account: {30 access_token: 'access-sandbox-71e02f71-0960-4a27-abd2-5631e04f2175',31 account_id: '3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr',32 },33 },34};3536try {37 const response = await client.transferDiligenceSubmit(request);38} catch (error) {39 // handle error40}
Response fields and example
request_id
1{2 "request_id": "4zlKapIkTm8p5KM"3}
Was this helpful?
/transfer/diligence/document/upload
Upload transfer diligence document on behalf of the originator
Third-party sender customers can use /transfer/diligence/document/upload
endpoint to upload a document on behalf of its end customer (i.e. originator) to Plaid. You’ll need to send a request of type multipart/form-data.
You must provide the client_id
in the PLAID-CLIENT-ID
header and secret
in the PLAID-SECRET
header.
originator_client_id
file
binary
purpose
"DUE_DILIGENCE"
- The transfer due diligence document of the originator.DUE_DILIGENCE
1const url = 'https://sandbox.plaid.com/transfer/diligence/document/upload';2const filePath = '/path/to/file.pdf';3const purpose = 'DUE_DILIGENCE';45const formData = new FormData();6formData.append('file', fs.createReadStream(filePath));7formData.append('purpose', purpose);8formData.append('originator_client_id', originatorClientId);910const headers = {11 'PLAID-CLIENT-ID': YourClientId,12 'PLAID-SECRET': YourSecret,13 ...formData.getHeaders(),14};1516try {17 const response = await axios.post(url, formData, { headers });18} catch (error) {19 // handle error20}
Response fields and example
request_id
1{2 "request_id": "4zlKapIkTm8p5KM"3}