Handling webhooks
A Webhook event is considered successfully delivered when the corresponding URL endpoint responds with an HTTP status code of 200 within 5 seconds. If the criteria is not met, Method will reattempt 4 more times with each new attempt being delayed according to an exponential backoff algorithm, where the delay period between each attempt exponentially increases.Webhooks that consistently fail to respond with a 200 will automatically be
disabled.
Authentication
Webhook Request Validation
Webhook Request Validation
We use the
auth_token
and hmac_secret
you provide to enable webhook authentication.
There are 2 ways to authenticate an incoming request.1. Authorization Header Verification
1. Authorization Header Verification
2. HMAC Verification
2. HMAC Verification
If you provide an The timestamp is always included in the
hmac_secret
when registering your webhook, Method will include a method-webhook-signature
header in every request. This is an HMAC-SHA256
digest created using the hmac_secret
as the shared secret, and computed over the string timestamp:payload
, where timestamp
is the value from the method-webhook-timestamp
(UNIX timestamp in seconds) header (which is always included, even if no hmac_secret
is provided) and payload
is the raw request body.
Checking for the timestamp freshness (5 min window) is optional, but recommended.method-webhook-timestamp
header, even if no hmac_secret
is provided.Example: Minimal Express Server for Verifying Webhooks
Example: Minimal Express Server for Verifying Webhooks
Webhook Objects
Unique identifier for the Webhook.
The event type to be sent to this URL. See Webhook Event Types.
The URL receiving the webhook event.
Whether to expand the event object in the Webhook payload. (default: false)
Whether webhook is 'active' or 'disabled'.
An object representing an error that occurred while processing this Webhook. See Webhook errors.
Timestamp of when the Webhook was created.
Timestamp of when the Webhook was last updated.
Webhook event object
The identifier of the resource modified.
The event type. See Webhook Event Types.
The URL path pointing to the affected resource. Make a HTTP GET request to this path to retrieve the resource.
Webhook Event Types
Name | Description |
---|---|
account.create | A new Account was successfully created. |
account.update | An Account has been updated. |
account.opened | An Account has been opened. |
account.closed | An Account has been closed. |
sensitive.create | A new Sensitive was successfully created. |
sensitive.update | An Sensitive has been updated. |
account_verification_session.create | A new AccountVerificationSession was successfully created. |
account_verification_session.update | An AccountVerificationSession has been updated. |
balance.create | A new Balance was successfully created. |
balance.update | A Balance has been updated. |
card_brand.create | A new CardBrand was successfully created. |
card_brand.update | A CardBrand has been updated. |
card_brand.available | A CardBrand has been made available. |
connect.create | A new Connect was successfully created. |
connect.update | A Connect has been updated. |
connect.available | An Async Connect has completed. |
credit_score.create | A new CreditScore was successfully created. |
credit_score.update | A CreditScore has been updated. |
entity.create | A new Entity was successfully created. |
entity.update | An Entity has been updated. |
entity_verification_session.create | A new EntityVerificationSession was successfully created. |
entity_verification_session.update | An EntityVerificationSession has been updated. |
identity.create | A new Identity was successfully created. |
identity.update | An Identity has been updated. |
payment.create | A new Payment was successfully created. |
payment.update | A Payment has been updated. |
payment_reversal.create | A new PaymentReversal was successfully created. |
payment_reversal.update | A PaymentReversal has been updated. |
payoff.create | A new Payoff was successfully created. |
payoff.update | A Payoff has been updated. |
product.create | A new Product was successfully created. |
product.update | A Product has been updated. |
report.create | A new Report was successfully created. |
report.update | A Report has been updated. |
subscription.create | A new Subscription was successfully created. |
subscription.update | A Subscription has been updated. |
transaction.create | A new Transaction was successfully created. |
transaction.update | A Transaction has been updated. |
update.create | A new Update was successfully created. |
update.update | An Update has been updated. |
credit_score.increased | A user’s credit score has increased. |
credit_score.decreased | A user’s credit score has decreased. |
attribute.create | A new Attribute was successfully created. |
attribute.credit_health_credit_card_usage.increased | Credit card usage has increased. |
attribute.credit_health_credit_card_usage.decreased | Credit card usage has decreased. |
attribute.credit_health_derogatory_marks.increased | Number of derogatory marks increased. |
attribute.credit_health_derogatory_marks.decreased | Number of derogatory marks decreased. |
attribute.credit_health_hard_inquiries.increased | Number of hard inquiries increased. |
attribute.credit_health_hard_inquiries.decreased | Number of hard inquiries decreased. |
attribute.credit_health_total_accounts.increased | Total number of accounts increased. |
attribute.credit_health_total_accounts.decreased | Total number of accounts decreased. |
attribute.credit_health_credit_age.increased | Credit age has increased. |
attribute.credit_health_credit_age.decreased | Credit age has decreased. |
attribute.credit_health_payment_history.increased | Payment history score has improved. |
attribute.credit_health_payment_history.decreased | Payment history score has decreased. |
method_jwk.create | A new Method JWK (public key) was successfully created. |
method_jwk.update | A Method JWK has been updated (deprecated or disabled). |