Recurring transfers
API reference for recurring transfer endpoints and webhooks
Recurring transfers
Recurring Transfer endpoints | |
---|---|
/transfer/recurring/create | Create a recurring transfer |
/transfer/recurring/cancel | Cancel a recurring transfer |
/transfer/recurring/get | Retrieve information about a recurring transfer |
/transfer/recurring/list | Retrieve a list of recurring transfers |
Webhooks | |
---|---|
RECURRING_CANCELLED | A recurring transfer has been cancelled by Plaid |
RECURRING_NEW_TRANSFER | A new transfer of a recurring transfer has been originated |
RECURRING_TRANSFER_SKIPPED | An instance of a scheduled recurring transfer could not be created |
Endpoints
/transfer/recurring/create
Create a recurring transfer
Use the /transfer/recurring/create
endpoint to initiate a new recurring transfer. This capability is not currently supported for Transfer UI or Platform Payments (beta) customers.
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.access_token
access_token
for the account that will be debited or credited.idempotency_key
The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a recurring fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single recurring transfer is created.
50
account_id
account_id
corresponding to the end-user account that will be debited or credited.type
debit
or credit
. A debit
indicates a transfer of money into the origination account; a credit
indicates a transfer of money out of the origination account.debit
, credit
network
ach
, same-day-ach
, rtp
ach_class
Codes supported for credits:
ccd
, ppd
Codes supported for debits: ccd
, tel
, web
"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"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
amount
/transfer/authorization/create
, specify the maximum amount to authorize. When calling /transfer/create
, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling /transfer/create
, the maximum amount authorized in the authorization_id
will be sent.user_present
true
; for automatic recurring payments where the end user is not actually initiating each individual transfer, it should be false
.description
test_clock_id
sandbox
environment. If provided, the created recurring_transfer
is associated with the test_clock
. New originations are automatically generated when the associated test_clock
advances.schedule
interval_unit
week
, month
1
interval_count
interval_units
between originations. The recurring interval (before holiday adjustment) is calculated by multiplying interval_unit
and interval_count
.
For example, to schedule a recurring transfer which originates once every two weeks, set interval_unit
= week
and interval_count
= 2.interval_execution_day
If the
interval_unit
is week
, interval_execution_day
should be an integer from 1 (Monday) to 5 (Friday).If the
interval_unit
is month
, interval_execution_day
should be an integer indicating which day of the month to make the transfer on. Integers from 1 to 28 can be used to make a transfer on that day of the month. Negative integers from -1 to -5 can be used to make a transfer relative to the end of the month. To make a transfer on the last day of the month, use -1; to make the transfer on the second-to-last day, use -2, and so on.The transfer will be originated on the next available banking day if the designated day is a non banking day.
start_date
interval_execution_day
on or after the start_date
.For
rtp
recurring transfers, start_date
must be in the future.
Otherwise, if the first interval_execution_day
on or after the start date is also the same day that /transfer/recurring/create
was called, the bank may make the first payment on that day, but it is not guaranteed to do so.date
end_date
interval_execution_day
on or before the end_date
.
If the interval_execution_day
between the start date and the end date (inclusive) is also the same day that /transfer/recurring/create
was called, the bank may make a payment on that day, but it is not guaranteed to do so.date
user
legal_name
phone_number
email_address
address
street
city
region
postal_code
country
device
ip_address
user_agent
1const request: TransferRecurringCreateRequest = {2 access_token: 'access-sandbox-71e02f71-0960-4a27-abd2-5631e04f2175',3 account_id: '3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr',4 type: 'credit',5 network: 'ach',6 amount: '12.34',7 ach_class: 'ppd',8 description: 'payment',9 idempotency_key: '12345',10 schedule: {11 start_date: '2022-10-01',12 end_date: '20223-10-01',13 interval_unit: 'week',14 interval_count: 1,15 interval_execution_day: 516 }17 user: {18 legal_name: 'Anne Charleston',19 },20};21
22try {23 const response = await client.transferRecurringCreate(request);24 const recurringTransferId = response.data.recurring_transfer.recurring_transfer_id;25} catch (error) {26 // handle error27}
Response fields and example
recurring_transfer
recurring_transfer_id
created
2006-01-02T15:04:05Z
date-time
next_origination_date
The next transfer origination date after bank holiday adjustment.
date
test_clock_id
type
debit
or credit
. A debit
indicates a transfer of money into the origination account; a credit
indicates a transfer of money out of the origination account.debit
, credit
amount
/transfer/authorization/create
, specify the maximum amount to authorize. When calling /transfer/create
, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling /transfer/create
, the maximum amount authorized in the authorization_id
will be sent.status
active
: The recurring transfer is currently active.
cancelled
: The recurring transfer was cancelled by the client or Plaid.
expired
: The recurring transfer has completed all originations according to its recurring schedule.active
, cancelled
, expired
ach_class
Codes supported for credits:
ccd
, ppd
Codes supported for debits: ccd
, tel
, web
"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"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
network
ach
, same-day-ach
, rtp
account_id
account_id
corresponding to the end-user account that will be debited or credited.funding_account_id
iso_currency_code
description
transfer_ids
user
legal_name
phone_number
email_address
address
street
city
region
postal_code
country
schedule
interval_unit
week
, month
1
interval_count
interval_units
between originations. The recurring interval (before holiday adjustment) is calculated by multiplying interval_unit
and interval_count
.
For example, to schedule a recurring transfer which originates once every two weeks, set interval_unit
= week
and interval_count
= 2.interval_execution_day
If the
interval_unit
is week
, interval_execution_day
should be an integer from 1 (Monday) to 5 (Friday).If the
interval_unit
is month
, interval_execution_day
should be an integer indicating which day of the month to make the transfer on. Integers from 1 to 28 can be used to make a transfer on that day of the month. Negative integers from -1 to -5 can be used to make a transfer relative to the end of the month. To make a transfer on the last day of the month, use -1; to make the transfer on the second-to-last day, use -2, and so on.The transfer will be originated on the next available banking day if the designated day is a non banking day.
start_date
interval_execution_day
on or after the start_date
.For
rtp
recurring transfers, start_date
must be in the future.
Otherwise, if the first interval_execution_day
on or after the start date is also the same day that /transfer/recurring/create
was called, the bank may make the first payment on that day, but it is not guaranteed to do so.date
end_date
interval_execution_day
on or before the end_date
.
If the interval_execution_day
between the start date and the end date (inclusive) is also the same day that /transfer/recurring/create
was called, the bank may make a payment on that day, but it is not guaranteed to do so.date
decision
approved
– The proposed transfer has received the end user's consent and has been approved for processing by Plaid. The decision_rationale
field is set if Plaid was unable to fetch the account information. You may proceed with the transfer, but further review is recommended. Refer to the code
field in the decision_rationale
object for details.declined
– Plaid reviewed the proposed transfer and declined processing. Refer to the code
field in the decision_rationale
object for details.user_action_required
– An action is required before Plaid can assess the transfer risk and make a decision. The most common scenario is to update authentication for an Item. To complete the required action, initialize Link by setting transfer.authorization_id
in the request of /link/token/create
. After Link flow is completed, you may re-attempt the authorization request.approved
, declined
, user_action_required
decision_rationale
declined
decisions, and may or may not be null for approved
decisions.code
If the
rationale_code
is null
, the transfer passed the authorization check.Any non-
null
value for an approved
transfer indicates that the the authorization check could not be run and that you should perform your own risk assessment on the transfer. The code will indicate why the check could not be run. Possible values for an approved
transfer are:MANUALLY_VERIFIED_ITEM
– Item created via a manual entry flow (i.e. Same Day Micro-deposit, Instant Micro-deposit, Database Insights, or Database Match), limited information available.ITEM_LOGIN_REQUIRED
– Unable to collect the account information due to Item staleness. Can be resolved by using Link and setting transfer.authorization_id
in the request to /link/token/create
.MIGRATED_ACCOUNT_ITEM
- Item created via /transfer/migrate_account
endpoint, limited information available.ERROR
– Unable to collect the account information due to an unspecified error.The following codes indicate that the authorization decision was
declined
:NSF
– Transaction likely to result in a return due to insufficient funds.RISK
- Transaction is high-risk.TRANSFER_LIMIT_REACHED
- One or several transfer limits are reached, e.g. monthly transfer limit. Check the accompanying description
field to understand which limit has been reached.NSF
, RISK
, TRANSFER_LIMIT_REACHED
, MANUALLY_VERIFIED_ITEM
, ITEM_LOGIN_REQUIRED
, PAYMENT_PROFILE_LOGIN_REQUIRED
, ERROR
, MIGRATED_ACCOUNT_ITEM
, null
description
request_id
1{2 "recurring_transfer": {3 "recurring_transfer_id": "460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9",4 "created": "2022-07-05T12:48:37Z",5 "next_origination_date": "2022-10-28",6 "test_clock_id": "b33a6eda-5e97-5d64-244a-a9274110151c",7 "status": "active",8 "amount": "12.34",9 "description": "payment",10 "type": "debit",11 "ach_class": "ppd",12 "network": "ach",13 "origination_account_id": "",14 "account_id": "3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr",15 "funding_account_id": "8945fedc-e703-463d-86b1-dc0607b55460",16 "iso_currency_code": "USD",17 "transfer_ids": [],18 "user": {19 "legal_name": "Anne Charleston",20 "phone_number": "510-555-0128",21 "email_address": "acharleston@email.com",22 "address": {23 "street": "123 Main St.",24 "city": "San Francisco",25 "region": "CA",26 "postal_code": "94053",27 "country": "US"28 }29 },30 "schedule": {31 "start_date": "2022-10-01",32 "end_date": "2023-10-01",33 "interval_unit": "week",34 "interval_count": 1,35 "interval_execution_day": 536 }37 },38 "decision": "approved",39 "decision_rationale": null,40 "request_id": "saKrIBuEB9qJZno"41}
Was this helpful?
/transfer/recurring/cancel
Cancel a recurring transfer.
Use the /transfer/recurring/cancel
endpoint to cancel a recurring transfer. Scheduled transfer that hasn't been submitted to bank will be cancelled.
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.recurring_transfer_id
1const request: TransferRecurringCancelRequest = {2 recurring_transfer_id: '460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9',3};4
5try {6 const response = await client.transferRecurringCancel(request);7} catch (error) {8 // handle error9}
Response fields and example
request_id
1{2 "request_id": "saKrIBuEB9qJZno"3}
Was this helpful?
/transfer/recurring/get
Retrieve a recurring transfer
The /transfer/recurring/get
fetches information about the recurring transfer corresponding to the given recurring_transfer_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.recurring_transfer_id
1const request: TransferRecurringGetRequest = {2 recurring_transfer_id: '460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9',3};4
5try {6 const response = await client.transferRecurringGet(request);7 const recurringTransferId =8 response.data.recurring_transfer.recurring_transfer_id;9} catch (error) {10 // handle error11}
Response fields and example
recurring_transfer
recurring_transfer_id
created
2006-01-02T15:04:05Z
date-time
next_origination_date
The next transfer origination date after bank holiday adjustment.
date
test_clock_id
type
debit
or credit
. A debit
indicates a transfer of money into the origination account; a credit
indicates a transfer of money out of the origination account.debit
, credit
amount
/transfer/authorization/create
, specify the maximum amount to authorize. When calling /transfer/create
, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling /transfer/create
, the maximum amount authorized in the authorization_id
will be sent.status
active
: The recurring transfer is currently active.
cancelled
: The recurring transfer was cancelled by the client or Plaid.
expired
: The recurring transfer has completed all originations according to its recurring schedule.active
, cancelled
, expired
ach_class
Codes supported for credits:
ccd
, ppd
Codes supported for debits: ccd
, tel
, web
"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"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
network
ach
, same-day-ach
, rtp
account_id
account_id
corresponding to the end-user account that will be debited or credited.funding_account_id
iso_currency_code
description
transfer_ids
user
legal_name
phone_number
email_address
address
street
city
region
postal_code
country
schedule
interval_unit
week
, month
1
interval_count
interval_units
between originations. The recurring interval (before holiday adjustment) is calculated by multiplying interval_unit
and interval_count
.
For example, to schedule a recurring transfer which originates once every two weeks, set interval_unit
= week
and interval_count
= 2.interval_execution_day
If the
interval_unit
is week
, interval_execution_day
should be an integer from 1 (Monday) to 5 (Friday).If the
interval_unit
is month
, interval_execution_day
should be an integer indicating which day of the month to make the transfer on. Integers from 1 to 28 can be used to make a transfer on that day of the month. Negative integers from -1 to -5 can be used to make a transfer relative to the end of the month. To make a transfer on the last day of the month, use -1; to make the transfer on the second-to-last day, use -2, and so on.The transfer will be originated on the next available banking day if the designated day is a non banking day.
start_date
interval_execution_day
on or after the start_date
.For
rtp
recurring transfers, start_date
must be in the future.
Otherwise, if the first interval_execution_day
on or after the start date is also the same day that /transfer/recurring/create
was called, the bank may make the first payment on that day, but it is not guaranteed to do so.date
end_date
interval_execution_day
on or before the end_date
.
If the interval_execution_day
between the start date and the end date (inclusive) is also the same day that /transfer/recurring/create
was called, the bank may make a payment on that day, but it is not guaranteed to do so.date
request_id
1{2 "recurring_transfer": {3 "recurring_transfer_id": "460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9",4 "created": "2022-07-05T12:48:37Z",5 "next_origination_date": "2022-10-28",6 "test_clock_id": null,7 "status": "active",8 "amount": "12.34",9 "description": "payment",10 "type": "debit",11 "ach_class": "ppd",12 "network": "ach",13 "origination_account_id": "",14 "account_id": "3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr",15 "funding_account_id": "8945fedc-e703-463d-86b1-dc0607b55460",16 "iso_currency_code": "USD",17 "transfer_ids": [18 "271ef220-dbf8-caeb-a7dc-a2b3e8a80963",19 "c8dbaf75-2abb-e2dc-4171-12448e13b848"20 ],21 "user": {22 "legal_name": "Anne Charleston",23 "phone_number": "510-555-0128",24 "email_address": "acharleston@email.com",25 "address": {26 "street": "123 Main St.",27 "city": "San Francisco",28 "region": "CA",29 "postal_code": "94053",30 "country": "US"31 }32 },33 "schedule": {34 "start_date": "2022-10-01",35 "end_date": "2023-10-01",36 "interval_unit": "week",37 "interval_count": 1,38 "interval_execution_day": 539 }40 },41 "request_id": "saKrIBuEB9qJZno"42}
Was this helpful?
/transfer/recurring/list
List recurring transfers
Use the /transfer/recurring/list
endpoint to see a list of all your recurring transfers and their statuses. Results are paginated; use the count
and offset
query parameters to retrieve the desired recurring transfers.
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.start_time
2019-12-06T22:35:49Z
)date-time
end_time
2019-12-06T22:35:49Z
)date-time
count
1
25
25
offset
0
0
funding_account_id
funding_account_id
.1const request: TransferRecurringListRequest = {2 start_time: '2022-09-29T20:35:49Z',3 end_time: '2022-10-29T20:35:49Z',4 count: 1,5};6
7try {8 const response = await client.transferRecurringList(request);9} catch (error) {10 // handle error11}
Response fields and example
recurring_transfers
recurring_transfer_id
created
2006-01-02T15:04:05Z
date-time
next_origination_date
The next transfer origination date after bank holiday adjustment.
date
test_clock_id
type
debit
or credit
. A debit
indicates a transfer of money into the origination account; a credit
indicates a transfer of money out of the origination account.debit
, credit
amount
/transfer/authorization/create
, specify the maximum amount to authorize. When calling /transfer/create
, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling /transfer/create
, the maximum amount authorized in the authorization_id
will be sent.status
active
: The recurring transfer is currently active.
cancelled
: The recurring transfer was cancelled by the client or Plaid.
expired
: The recurring transfer has completed all originations according to its recurring schedule.active
, cancelled
, expired
ach_class
Codes supported for credits:
ccd
, ppd
Codes supported for debits: ccd
, tel
, web
"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"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
network
ach
, same-day-ach
, rtp
account_id
account_id
corresponding to the end-user account that will be debited or credited.funding_account_id
iso_currency_code
description
transfer_ids
user
legal_name
phone_number
email_address
address
street
city
region
postal_code
country
schedule
interval_unit
week
, month
1
interval_count
interval_units
between originations. The recurring interval (before holiday adjustment) is calculated by multiplying interval_unit
and interval_count
.
For example, to schedule a recurring transfer which originates once every two weeks, set interval_unit
= week
and interval_count
= 2.interval_execution_day
If the
interval_unit
is week
, interval_execution_day
should be an integer from 1 (Monday) to 5 (Friday).If the
interval_unit
is month
, interval_execution_day
should be an integer indicating which day of the month to make the transfer on. Integers from 1 to 28 can be used to make a transfer on that day of the month. Negative integers from -1 to -5 can be used to make a transfer relative to the end of the month. To make a transfer on the last day of the month, use -1; to make the transfer on the second-to-last day, use -2, and so on.The transfer will be originated on the next available banking day if the designated day is a non banking day.
start_date
interval_execution_day
on or after the start_date
.For
rtp
recurring transfers, start_date
must be in the future.
Otherwise, if the first interval_execution_day
on or after the start date is also the same day that /transfer/recurring/create
was called, the bank may make the first payment on that day, but it is not guaranteed to do so.date
end_date
interval_execution_day
on or before the end_date
.
If the interval_execution_day
between the start date and the end date (inclusive) is also the same day that /transfer/recurring/create
was called, the bank may make a payment on that day, but it is not guaranteed to do so.date
request_id
1{2 "recurring_transfers": [3 {4 "recurring_transfer_id": "460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9",5 "created": "2022-07-05T12:48:37Z",6 "next_origination_date": "2022-10-28",7 "test_clock_id": null,8 "status": "active",9 "amount": "12.34",10 "description": "payment",11 "type": "debit",12 "ach_class": "ppd",13 "network": "ach",14 "origination_account_id": "",15 "account_id": "3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr",16 "funding_account_id": "8945fedc-e703-463d-86b1-dc0607b55460",17 "iso_currency_code": "USD",18 "transfer_ids": [19 "4242fc8d-3ec6-fb38-fa0c-a8e37d03cd57"20 ],21 "user": {22 "legal_name": "Anne Charleston",23 "phone_number": "510-555-0128",24 "email_address": "acharleston@email.com",25 "address": {26 "street": "123 Main St.",27 "city": "San Francisco",28 "region": "CA",29 "postal_code": "94053",30 "country": "US"31 }32 },33 "schedule": {34 "start_date": "2022-10-01",35 "end_date": "2023-10-01",36 "interval_unit": "week",37 "interval_count": 1,38 "interval_execution_day": 539 }40 }41 ],42 "request_id": "saKrIBuEB9qJZno"43}
Was this helpful?
Webhooks
RECURRING_NEW_TRANSFER
Fired when a new transfer of a recurring transfer is originated.
webhook_type
TRANSFER
webhook_code
RECURRING_NEW_TRANSFER
recurring_transfer_id
transfer_id
environment
sandbox
, production
1{2 "webhook_type": "TRANSFER",3 "webhook_code": "RECURRING_NEW_TRANSFER",4 "recurring_transfer_id": "460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9",5 "transfer_id": "271ef220-dbf8-caeb-a7dc-a2b3e8a80963",6 "environment": "production"7}
Was this helpful?
RECURRING_TRANSFER_SKIPPED
Fired when Plaid is unable to originate a new ACH transaction of the recurring transfer on the planned date.
webhook_type
TRANSFER
webhook_code
RECURRING_TRANSFER_SKIPPED
recurring_transfer_id
authorization_decision
approved
– The proposed transfer has received the end user's consent and has been approved for processing by Plaid. The decision_rationale
field is set if Plaid was unable to fetch the account information. You may proceed with the transfer, but further review is recommended. Refer to the code
field in the decision_rationale
object for details.declined
– Plaid reviewed the proposed transfer and declined processing. Refer to the code
field in the decision_rationale
object for details.user_action_required
– An action is required before Plaid can assess the transfer risk and make a decision. The most common scenario is to update authentication for an Item. To complete the required action, initialize Link by setting transfer.authorization_id
in the request of /link/token/create
. After Link flow is completed, you may re-attempt the authorization request.approved
, declined
, user_action_required
authorization _decision_rationale _code
If the
rationale_code
is null
, the transfer passed the authorization check.Any non-
null
value for an approved
transfer indicates that the the authorization check could not be run and that you should perform your own risk assessment on the transfer. The code will indicate why the check could not be run. Possible values for an approved
transfer are:MANUALLY_VERIFIED_ITEM
– Item created via a manual entry flow (i.e. Same Day Micro-deposit, Instant Micro-deposit, Database Insights, or Database Match), limited information available.ITEM_LOGIN_REQUIRED
– Unable to collect the account information due to Item staleness. Can be resolved by using Link and setting transfer.authorization_id
in the request to /link/token/create
.MIGRATED_ACCOUNT_ITEM
- Item created via /transfer/migrate_account
endpoint, limited information available.ERROR
– Unable to collect the account information due to an unspecified error.The following codes indicate that the authorization decision was
declined
:NSF
– Transaction likely to result in a return due to insufficient funds.RISK
- Transaction is high-risk.TRANSFER_LIMIT_REACHED
- One or several transfer limits are reached, e.g. monthly transfer limit. Check the accompanying description
field to understand which limit has been reached.NSF
, RISK
, TRANSFER_LIMIT_REACHED
, MANUALLY_VERIFIED_ITEM
, ITEM_LOGIN_REQUIRED
, PAYMENT_PROFILE_LOGIN_REQUIRED
, ERROR
, MIGRATED_ACCOUNT_ITEM
, null
skipped_origination _date
date
environment
sandbox
, production
1{2 "webhook_type": "TRANSFER",3 "webhook_code": "RECURRING_TRANSFER_SKIPPED",4 "recurring_transfer_id": "460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9",5 "authorization_decision": "declined",6 "authorization_decision_rationale_code": "NSF",7 "skipped_origination_date": "2022-11-30",8 "environment": "production"9}
Was this helpful?
RECURRING_CANCELLED
Fired when a recurring transfer is cancelled by Plaid.
webhook_type
TRANSFER
webhook_code
RECURRING_CANCELLED
recurring_transfer_id
environment
sandbox
, production
1{2 "webhook_type": "TRANSFER",3 "webhook_code": "RECURRING_CANCELLED",4 "recurring_transfer_id": "460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9",5 "environment": "production"6}