Event Types
A comprehensive list of webhook event types in Canopy.
Default Webhook Events
The following webhook events are enabled by default and are automatically sent once a webhook URL is registered.
account_create
account_create
Sent for every newly created account.
- The
data
field contains the same response sent by performing a GET on/accounts/{account_id}
under theobject
attribute
Example Payload
{
"data":{
"changed_at":"2022-01-04T09:12:30+00:00",
"object":{
"account_id":"31mNprzLd2bKl6koVna68ARM",
"created_at":"2017-06-20T09:12:14+00:00",
"updated_at":"2019-02-20T09:12:14+00:00",
"effective_at":"2018-03-20T09:12:28+00:00",
"account_overview":{
"account_status":"SUSPENDED",
"account_status_subtype":"BANKRUPTCY",
"is_active_scra":"false"
},
"account_product":{
"product_id":"prod_4p1sc",
"product_overview":{
"product_name":"Blue Cash Express",
"product_color":"#0000FF",
"product_short_description":"Consumer credit card",
"product_long_description":"Student credit card.",
"product_time_zone":"America/Chicago",
"product_type":"REVOLVING"
},
"product_lifecycle":{
"late_fee_impl_cents":2900,
"default_product_late_fee_cents":2900,
"payment_reversal_fee_impl_cents":2900,
"default_product_payment_reversal_fee_cents":2900,
"origination_fee_impl_cents":2000,
"origination_fee_percent":12.34,
"is_origination_fee_lesser_value":false,
"is_origination_fee_amortized":false,
"recurring_fees":[
{
"recurring_fee_interval":"1 month",
"recurring_fee_amount_cents":10000,
"initial_delay_offset":"12 days",
"is_fee_interval_floored":false,
"recurring_fee_label":"Quarterly Fee"
}
],
"loan_end_date":"2013-01-13T05:25:13.813+00:00"
},
"promo_overview":{
"promo_purchase_window_inclusive_start":"2013-01-13T05:25:13.813+00:00",
"promo_purchase_window_exclusive_end":"2013-01-13T05:25:13.813+00:00",
"promo_inclusive_start":"2013-01-13T05:25:13.813+00:00",
"promo_exclusive_end":"2013-01-13T05:25:13.813+00:00",
"promo_impl_interest_rate_percent":6.2,
"default_product_promo_interest_rate":6.2,
"promo_len":6,
"default_product_promo_len":6
},
"post_promo_overview":{
"post_promo_inclusive_start":"2013-01-13T05:25:13.813+00:00",
"post_promo_exclusive_end":"2013-01-13T05:25:13.813+00:00",
"post_promo_impl_interest_rate_percent":6.2,
"default_product_post_promo_interest_rate":6.2,
"post_promo_len":48,
"default_product_post_promo_len":48
},
"product_duration_information":{
"promo_len":6,
"promo_purchase_window_len":5
}
},
"external_fields":[
{
"key":"external_id",
"value":"22445702-a389-431f-927d-07b8d0750787"
}
],
"min_pay_due_cents":{
"statement_min_pay_cents":160000,
"min_pay_cents":160000,
"min_pay_due_at":"2019-10-18T23:59:59.999+00:00",
"graced_due_date":"2019-10-19T23:59:59.999+00:00"
},
"additional_min_pay_details":{
"min_pay_fees_cents":20000,
"current_min_pay_cents":400000,
"unpaid_min_pay_cents":400000
},
"additional_statement_min_pay_details":{
"statement_min_pay_charges_principal_cents":100000,
"statement_min_pay_interest_cents":30000,
"statement_min_pay_am_interest_cents":200,
"statement_min_pay_deferred_cents":10000,
"statement_min_pay_am_deferred_interest_cents":200,
"statement_min_pay_fees_cents":20000,
"statement_payments_cents":20000,
"previous_statement_min_pay_cents":400000,
"statement_current_min_pay_cents":400000,
"statement_unpaid_min_pay_cents":400000
},
"payment_processor_config":{
"ach":{
"payment_processor_name":"REPAY",
"repay_config":{
"ach_token":"string",
"last_four":"string"
},
"dwolla_config":{
"ach_token":"string",
"last_four":"string"
},
"modern_treasury_config":{
"ach_token":"string",
"last_four":"string"
},
"canopy_nacha_config":{
"bank_routing_number":"999999992",
"bank_account_number":"987654321",
"bank_account_type":"CHECKING"
},
"stripe_config":{
"customer_id":"cus_4QE4bx4C5BVSrC",
"source_id":"string",
"external_fields":{
"additionalProp":{
}
}
},
"galileo_config":{
"plaid_processor_token":"processor-production-35cd43b-adfc-d8aa-b331-c9ba0fdha881"
}
},
"debit_card":{
"payment_processor_name":"REPAY",
"repay_config":{
"card_token":"string",
"last_four":"string"
},
"authorize_net_config":{
"customer_profile_id":"527262",
"customer_payment_profile_ids":[
[
"86"
]
]
}
},
"credit_card":{
"payment_processor_name":"CHECKOUT",
"checkout_config":{
"source_id":"cus_6artgoevd77u7ojah2wled32s",
"card_token":"string",
"last_four":"string",
"expires_on":"string"
}
},
"autopay_enabled":true,
"autopay_configs":{
"autopay_method":"TOTAL_BALANCE",
"autopay_fixed_amount_cents":2500
},
"default_payment_processor_method":"ACH"
},
"disbursements_config":{
"disbursement_source_payout_entity_id":1009,
"disbursement_split_percentages":{
"principal":[
{
"payout_entity_id":1009,
"split_percent":25
}
]
}
},
"payouts_config":{
"payout_split_percentages":{
"principal":[
{
"payout_entity_id":1009,
"split_percent":25
}
],
"interest":[
{
"payout_entity_id":1009,
"split_percent":25
}
],
"fee":[
{
"payout_entity_id":1009,
"split_percent":25
}
]
}
},
"issuer_processor_details":{
"lithic":{
"account_token":"349e2031-20de-40c6-87a3-214895077522"
},
"galileo":{
"account_token":"406101000684"
}
},
"cycle_type":{
"first_cycle_interval":"11 days",
"late_fee_grace":"2 days"
},
"discounts":{
"prepayment_discount_config":{
"loan_discount_cents":800000,
"loan_discount_at":"2018-03-20T09:12:28+00:00"
}
},
"summary":{
"total_balance_cents":300000,
"principal_cents":200000,
"interest_balance_cents":60000,
"am_interest_balance_cents":0,
"deferred_interest_balance_cents":40000,
"am_deferred_interest_balance_cents":0,
"fees_balance_cents":0,
"initial_principal_cents":200000,
"total_paid_to_date_cents":40000,
"total_interest_paid_to_date_cents":10000,
"credit_limit_cents":400000,
"max_approved_credit_limit_cents":400000,
"interest_rate_percent":3,
"interest_accrual_interval":"1 day",
"interest_grace_method":"NONE",
"available_credit_cents":100000,
"open_to_buy_cents":5000,
"total_payoff_cents":900000,
"pending_am_interest_balance_cents":900000,
"late_fee_cap_percent":12.5,
"payment_reversal_fee_cap_percent":6.2
},
"associated_entities":{
"merchant_name":"Acme Corporation",
"lender_name":"Globex Lending Corp"
},
"plaid_config":{
"plaid_access_token":{
"valid_config":true
},
"plaid_account_id":{
"valid_config":true
},
"check_balance_enabled":true
},
"payout_entities":[
{
"payout_entity_id":"0x1234",
"payout_entity_type":"lender",
"payout_entity_name":"Wonka Industries",
"external_fields":[
{
"key":"Umbrella Corporation",
"value":"22445702-a389-431f-927d-07b8d0750787"
}
],
"parent_payout_entity_id":"31mNprzLd2bKl6koVna68ARM",
"bank_account_number":"1001001234",
"bank_routing_number":"012345678",
"bank_account_type":"CHECKING",
"company_identification":"X000100393",
"irs_tin":"203456789"
}
],
"cards":[
{
"spend_limit":8000000,
"lithic":{
"token":"adccd28d-532e-480b-a063-a46a77a15570",
"card_program_token":"a5e38341-cc95-4a9b-a21c-751aeca67e9c",
"last_four":"0339",
"type":"UNLOCKED",
"state":"OPEN",
"memo":"Conference Event Card"
}
}
],
"customers":[
{
"address_line_one":"12 Strawberry Road",
"address_line_two":"Suite 101",
"address_city":"Atlanta",
"address_state":"GA",
"address_zip":"99999-1000",
"address_country_code":"US",
"name_prefix":"Dr.",
"name_first":"Miriam",
"name_middle":"Louise",
"name_last":"Trevino",
"name_suffix":"Jr",
"passport":{
"number":"",
"country":"JP"
},
"customer_id":"31mNprzLd2bKl6koVna68ARM",
"created_at":"2017-06-20T09:12:14+00:00",
"updated_at":"2019-02-20T09:12:14+00:00",
"is_borrower_portal_user":true,
"customer_type":"person",
"is_active":true,
"verification_status":"verified",
"title":"CFO",
"phone_number":"+14105556789",
"ssn":"888888888",
"international_customer_id":"9999999999",
"email":"[email protected]",
"date_of_birth":"1985-06-20",
"customer_balances":{
"num_active_accounts":2,
"total_balance_cents":300000,
"principal_cents":200000,
"interest_balance_cents":60000,
"am_interest_balance_cents":0,
"deferred_interest_balance_cents":40000,
"am_deferred_interest_balance_cents":0,
"fees_balance_cents":0
},
"business_details":{
"business_legal_name":"Umbrella Corporation",
"doing_business_as":"Umbrella",
"business_ein":"888-888888",
"business_type":"llc",
"business_classification_id":"794D9D5E-B547-4B3B-8289-76484C1AFC5F",
"website":"https://example.com",
"controller":{
"address_line_one":"12 Strawberry Road",
"address_line_two":"Suite 101",
"address_city":"Atlanta",
"address_state":"GA",
"address_zip":"99999-1000",
"address_country_code":"US",
"name_prefix":"Dr.",
"name_first":"Miriam",
"name_middle":"Louise",
"name_last":"Trevino",
"name_suffix":"Jr",
"passport":{
"number":"",
"country":"JP"
},
"title":"CFO",
"phone_number":"+14105556789",
"ssn":"888888888"
}
},
"metro2_config":{
"bloom_metadata":{
"address_type":"CONFIRMED",
"residence_type":"OWNS",
"account_designations":[
{
"account_id":"string",
"designation":"INDIVIDUAL"
}
]
}
}
}
],
"partner_entity":{
"additionalProp":{
}
},
"metro2_config":{
"bloom_metadata":{
"branch_identifier":"string",
"customer_designations":[
{
"customer_id":"string",
"designation":"INDIVIDUAL"
}
]
}
}
}
},
"event":"account_create",
"hmac_signature":"N+RJkPSzE+7QRu+ZgeDr7XbBth4RNJAg/a5r18k/lWw="
}
account_update
account_update
Sent any time an account is updated
- The
data
field contains the same response sent by performing a GET on/accounts/{account_id}
under theobject
attribute and an array of changes underchanges
. Each member of this array provides the name of the field that was changed as well as both the old and new value
Example Payload
{
"data": {
"changed_at": "2023-07-18T21:51:20.511Z",
"changes": [
{
"field_name": "account_overview.account_status",
"new_value": "SUSPENDED",
"previous_value": "ACTIVE"
},
{
"field_name": "account_overview.account_status_subtype",
"new_value": "BANKRUPTCY",
"previous_value": ""
},
{
"field_name": "min_pay_due_cents.statement_min_pay_cents",
"new_value": 13000,
"previous_value": 0
},
{
"field_name": "min_pay_due_cents.min_pay_cents",
"new_value": 3000,
"previous_value": 0
},
{
"field_name": "min_pay_due_cents.graced_due_date",
"new_value": "2053-02-27T00:00:00-08:00",
"previous_value": null
},
{
"field_name": "additional_min_pay_details.unpaid_min_pay_cents",
"new_value": 3000,
"previous_value": 0
},
{
"field_name": "additional_statement_min_pay_details.statement_min_pay_fees_cents",
"new_value": 3000,
"previous_value": 0
},
{
"field_name": "additional_statement_min_pay_details.statement_current_min_pay_cents",
"new_value": 13000,
"previous_value": 0
},
{
"field_name": "issuer_processor_details.lithic.account_token",
"new_value": "406101061835",
"previous_value": null
},
{
"field_name": "summary.total_balance_cents",
"new_value": 3000,
"previous_value": 0
},
{
"field_name": "summary.principal_cents",
"new_value": 3000,
"previous_value": 0
},
{
"field_name": "summary.total_paid_to_date_cents",
"new_value": -13000,
"previous_value": 0
},
{
"field_name": "summary.available_credit_cents",
"new_value": 497000,
"previous_value": 500000
},
{
"field_name": "summary.total_payoff_cents",
"new_value": 3000,
"previous_value": 0
}
],
"object": {
"account_id": "test-acct-SMS-HTTP-p",
"account_overview": {
"account_status": "SUSPENDED",
"account_status_subtype": "BANKRUPTCY",
"is_active_scra": false
},
"account_product": {
"post_promo_overview": {
"default_product_post_promo_interest_rate": 0,
"default_product_post_promo_len": null,
"post_promo_exclusive_end": null,
"post_promo_impl_interest_rate_percent": 0,
"post_promo_inclusive_start": "9999-12-31 11:59:59+00",
"post_promo_len": null
},
"product_duration_information": {
"promo_len": 99999,
"promo_purchase_window_len": null
},
"product_id": "can_74651",
"product_lifecycle": {
"annual_fee_impl_cents": 0,
"default_product_late_fee_cents": 0,
"default_product_payment_reversal_fee_cents": 0,
"is_origination_fee_amortized": false,
"is_origination_fee_lesser_value": false,
"late_fee_cap_percent": null,
"late_fee_impl_cents": 0,
"loan_end_date": null,
"monthly_fee_impl_cents": 0,
"origination_fee_impl_cents": 0,
"origination_fee_percent": 0,
"payment_reversal_fee_cap_percent": null,
"payment_reversal_fee_impl_cents": 0,
"recurring_fees": [
{
"initial_delay_offset": "3 days",
"is_fee_interval_floored": false,
"recurring_fee_amount_cents": 3000,
"recurring_fee_interval": "1 mon",
"recurring_fee_label": "every 1 month with 3 days delay"
}
]
},
"product_overview": {
"close_of_business_time": "23:59:59",
"product_color": "#0000FF",
"product_long_description": "Ness Well production charge card.",
"product_name": "Ness Charge Card Product",
"product_short_description": "NessChargeCard",
"product_time_zone": "America/Los_Angeles",
"product_type": "REVOLVING"
},
"promo_overview": {
"default_product_promo_interest_rate": 0,
"default_product_promo_len": 99999,
"promo_exclusive_end": "9999-12-31 11:59:59+00",
"promo_impl_interest_rate_percent": 0,
"promo_inclusive_start": "2053-01-01T08:00:00-08:00",
"promo_len": 99999,
"promo_purchase_window_exclusive_end": null,
"promo_purchase_window_inclusive_start": "2053-01-01T08:00:00-08:00"
}
},
"additional_min_pay_details": {
"current_min_pay_cents": 0,
"min_pay_fees_cents": 0,
"unpaid_min_pay_cents": 3000
},
"additional_statement_min_pay_details": {
"previous_statement_min_pay_cents": 0,
"statement_current_min_pay_cents": 13000,
"statement_min_pay_am_deferred_interest_cents": 0,
"statement_min_pay_am_interest_cents": 0,
"statement_min_pay_charges_principal_cents": 0,
"statement_min_pay_deferred_cents": 0,
"statement_min_pay_fees_cents": 3000,
"statement_min_pay_interest_cents": 0,
"statement_min_pay_loans_principal_cents": 0,
"statement_payments_cents": 0,
"statement_unpaid_min_pay_cents": 0
},
"associated_entities": {},
"attributes": {},
"cards": null,
"created_at": "2023-06-27T14:02:48-07:00",
"customers": [
{
"address_city": "Atlanta",
"address_line_one": "12 Strawberry Road",
"address_line_two": "Suite 101",
"address_state": "GA",
"address_zip": "99999-1000",
"business_details": {
"business_ein": null,
"business_legal_name": null,
"doing_business_as": null
},
"customer_account_external_id": null,
"customer_account_role": "PRIMARY",
"customer_id": "can_74652",
"date_of_birth": "1990-06-20",
"email": "[email protected]",
"name_first": "Wilhelmine",
"name_last": "Rice",
"name_middle": "Austyn",
"name_prefix": "Mr.",
"name_suffix": "II",
"phone_number": "5555555555",
"ssn": "777777778"
}
],
"cycle_type": {
"first_cycle_interval": "1 mon",
"late_fee_grace": "00:00:00"
},
"discounts": {
"prepayment_discount_config": {
"loan_discount_at": null,
"loan_discount_cents": null
}
},
"effective_at": "2053-01-01T08:00:00-08:00",
"issuer_processor_details": {
"lithic": {
"account_token": "406101061835"
}
},
"min_pay_due_cents": {
"graced_due_date": "2053-02-27T00:00:00-08:00",
"min_pay_cents": 3000,
"min_pay_due_at": "2053-02-27T00:00:00-08:00",
"statement_min_pay_cents": 13000
},
"partner_entity": {},
"payment_processor_config": {
"ach": {
"canopy_nacha_config": null,
"dwolla_config": null,
"galileo_config": null,
"modern_treasury_config": null,
"payment_processor_name": "NONE",
"repay_config": null,
"stripe_config": null
},
"autopay_configs": {
"autopay_fixed_amount_cents": null,
"autopay_method": "MIN_PAY"
},
"autopay_enabled": false,
"credit_card": {
"checkout_config": null,
"payment_processor_name": "NONE"
},
"debit_card": {
"authorize_net_config": null,
"payment_processor_name": "NONE",
"repay_config": null
},
"default_payment_processor_method": "NONE"
},
"payout_entities": [],
"summary": {
"am_deferred_interest_balance_cents": 0,
"am_interest_balance_cents": 0,
"available_credit_cents": 497000,
"credit_limit_cents": 500000,
"deferred_interest_balance_cents": 0,
"fees_balance_cents": 0,
"initial_principal_cents": 0,
"interest_accrual_interval": "1 mon",
"interest_balance_cents": 0,
"interest_grace_method": "NONE",
"interest_rate_percent": 0,
"max_approved_credit_limit_cents": null,
"min_pay_applicable_credit_type": "ALL",
"open_to_buy_cents": null,
"pending_am_interest_balance_cents": 0,
"principal_cents": 3000,
"total_balance_cents": 3000,
"total_interest_paid_to_date_cents": 0,
"total_paid_to_date_cents": -13000,
"total_payoff_cents": 3000
},
"updated_at": "2023-07-18T14:51:20-07:00"
},
"object_type": "account"
},
"event": "account_update",
"hmac_signature": "R9pdytvWRMOwjiJ5S3rC+r5teh3kKfRJflCLL2Y0Nd4="
}
line_item_create
line_item_create
Sent for every newly created line item
- The
data
field contains the same response sent by performing a GET on/accounts/{account_id}/line_items/{line_item_id}
under theobject
attribute
line_item_update
line_item_update
Sent any time a line item is updated.
- The
data
field contains the same response sent by performing a GET on/accounts/{account_id}/line_items/{line_item_id}
under theobject
attribute and an array of changes underchanges
. Each member of this array provides the name of the field that was changed as well as both the old and new value
Example Payload
{
"event":"line_item_update",
"data":{
"object_type":"line_item",
"changed_at":"2022-01-04T09:12:30+00:00",
"changes":[
{
"field_name":"line_item_overview.line_item_status",
"previous_value":"PENDING",
"new_value":"INVALID"
}
],
"object":{
"results":[
{
"account_id":4,
"line_item_id":2,
"effective_at":"2018-07-20T09:12:30+00:00",
"valid_at":"2022-09-30T09:12:30+00:00",
"created_at":"2018-06-20T09:12:30+00:00",
"updated_at":"2019-07-21T10:13:31+00:00",
"product_id":"li_4Yxb5",
"line_item_overview":{
"line_item_status":"VALID",
"line_item_type":"CHARGE",
"description":"Refund for invalid purchase",
"allocation":"INTEREST"
},
"line_item_summary":{
"original_amount_cents":2484,
"balance_cents":3600,
"principal_cents":2400,
"interest_percent":2.34,
"interest_balance_cents":1100,
"am_interest_balance_cents":0,
"deferred_interest_balance_cents":200,
"am_deferred_interest_balance_cents":0,
"am_fees_balance_cents":0,
"total_interest_paid_to_date_cents":-16
},
"merchant_data":{
"name":"string",
"id":"string",
"mcc_code":"string",
"phone_number":"string"
},
"issuer_processor_details":{
"lithic":{
"last_four":3324,
"transaction_token":"33xd08bc-d100-488y-bb93-f8a1f081ff0e",
"card_token":"c6cd08bc-c524-48f5-b64d-f79ec0810df4"
}
},
"external_fields":[
{
"key":"external_id",
"value":"22445702-a389-431f-927d-07b8d0750787"
}
],
"line_item_relationships":[
{
"type":"PAYMENT_SPLIT",
"line_item_id":"can_8231",
"split_amount_cents":5000,
"paid_down_line_item_id":"can_8231",
"paid_down_line_item_type":"LOAN",
"paid_down_line_item_parent_id":"can_8231",
"additionalProp":{
}
},
{
"type":"PAYMENT_SPLIT",
"line_item_id":"can_8231",
"split_amount_cents":5000,
"allocated_to_line_item_id":"can_8231",
"allocated_to_line_item_type":"MANUAL_FEE",
"allocated_to_line_item_parent_id":"can_8231",
"additionalProp":{
}
},
{
"type":"PAYMENT_SPLIT",
"line_item_id":"can_8231",
"additionalProp":{
}
}
],
"additionalProp":{
}
}
],
"paging":{
"starting_after":"31mNprzLd2bKl6koVna68ARM",
"ending_before":"31mNprzLd2bKl6koVna68ARM",
"has_more":false
},
"additionalProp":{
}
}
},
"hmac_signature":"6atLNzJ0KHumzJHwiqzHWO/4cLsYB/KhFppqhQ6IdV4="
}
statement_generation
statement_generation
Sent when an account cycle ends and the statement data is generated.
- The
data
field contains the same response sent by performing a GET on/accounts/{account_id}/statements/{statement_id}
Example Payload
{
"data": {
"account_client_id": "can_1078",
"account_id": "can_1078",
"account_overview": {
"account_status": "ACTIVE",
"account_status_subtype": "",
"payout_entities": [],
"promo_exclusive_end": "9999-12-31 11:59:59+00",
"promo_inclusive_start": "2022-06-01T02:00:00-04:00",
"promo_purchase_window_exclusive_end": "9999-12-31 11:59:59+00",
"promo_purchase_window_inclusive_start": "2022-06-01T02:00:00-04:00"
},
"additional_min_pay_details": {
"current_min_pay_cents": 2500,
"min_pay_am_deferred_interest_cents": 0,
"min_pay_am_fees_cents": 0,
"min_pay_am_interest_cents": 0,
"min_pay_charges_principal_cents": 0,
"min_pay_deferred_cents": 0,
"min_pay_fees_cents": 0,
"min_pay_floor_excess_cents": 1500,
"min_pay_interest_cents": 0,
"min_pay_loans_principal_cents": 0,
"min_pay_past_due_deferred_cents": 0,
"min_pay_past_due_interest_cents": 0,
"min_pay_revolving_principal_cents": 1000,
"previous_min_pay_cents": 0,
"unpaid_min_pay_cents": 0
},
"balance_summary": {
"am_deferred_interest_balance_cents": 0,
"am_interest_balance_cents": 0,
"charges_principal_cents": 50000,
"deferred_interest_balance_cents": 0,
"fees_balance_cents": 0,
"interest_balance_cents": 0,
"loans_principal_cents": 0,
"previous_total_balance_cents": 0,
"principal_balance_cents": 50000,
"total_balance_cents": 50000
},
"cycle_summary": {
"cycle_am_deferred_interest_cents": 0,
"cycle_am_interest_cents": 0,
"cycle_charge_returns_cents": 0,
"cycle_charges_cents": 50000,
"cycle_credit_adjustments_cents": 0,
"cycle_debit_adjustments_cents": 0,
"cycle_deferred_interest_cents": 0,
"cycle_exclusive_end": "2022-07-02T00:00:00-04:00",
"cycle_fees_total_cents": 0,
"cycle_inclusive_start": "2022-06-01T02:00:00-04:00",
"cycle_interest_cents": 0,
"cycle_late_fees_cents": 0,
"cycle_length_days": 31,
"cycle_loans_cents": 0,
"cycle_payment_reversals_cents": 0,
"cycle_payment_reversals_fees_cents": 0,
"cycle_payments_cents": 0,
"cycle_refunds_cents": 0,
"cycle_total_credits_cents": 0,
"cycle_total_interest_cents": 0,
"cycle_waived_deferred_interest_cents": 0
},
"effective_as_of_date": "2022-07-02T00:00:00-04:00",
"inception_to_date_summary": {
"inception_to_date_credits_and_payments_total_cents": 0,
"inception_to_date_credits_total_cents": 0,
"inception_to_date_fees_total_cents": 0,
"inception_to_date_interest_prior_total": 0,
"inception_to_date_interest_total_cents": 0,
"inception_to_date_payments_total_cents": 0,
"inception_to_date_purchases_total_cents": 50000
},
"line_items": [
{
"account_id": 23672,
"created_at": "2023-08-28T12:12:46.631368-04:00",
"effective_at": "2022-06-05T05:00:00-04:00",
"external_fields": [],
"line_item_id": 509891,
"line_item_overview": {
"description": null,
"line_item_status": "VALID",
"line_item_type": "CHARGE"
},
"line_item_summary": {
"am_deferred_interest_balance_cents": 0,
"am_interest_balance_cents": 0,
"balance_cents": 0,
"deferred_interest_balance_cents": 0,
"interest_balance_cents": 0,
"original_amount_cents": 50000,
"principal_cents": 50000,
"total_interest_paid_to_date_cents": 0
},
"merchant_data": {
"name": "null"
},
"product_id": 1075,
"valid_at": "2022-06-05T05:00:00-04:00"
}
],
"min_pay_due": {
"min_pay_cents": 2500,
"min_pay_due_at": "2022-07-12T00:00:00-04:00"
},
"object_key": null,
"open_to_buy": {
"available_credit_cents": 350000,
"credit_limit_cents": 400000,
"open_to_buy_cents": 350000,
"total_charges_cents": 50000
},
"payoff": {
"expected_remaining_payment_amount_cents": 0,
"total_payoff_cents": 50000
},
"statement_client_id": "346475",
"statement_id": "346475",
"year_to_date_summary": {
"year_to_date_fees_total_cents": 0,
"year_to_date_interest_total_cents": 0
}
},
"event": "statement_generation",
"hmac_signature": "JJNnHFauWMJmyO8wqdeWitPuE5vnNz08q9dPTY3tArU="
}
account_calculations_change
account_calculations_change
Sent for any change to the account's available credit balance
- The
data
field contains theaccount_id
andavailable_credit_cents
of the account and also the date when this change occurred undereffective_as_of
account_tag_applied
account_tag_applied
Sent when a tag is applied to an account.
Example Payload
{
"data": {
"account_id": "can_299",
"applied_account_tags": [
{
"active": true,
"color": "blue",
"description": "Testing tags",
"label": "demo-tag",
"tag_id": 5
}
],
"effective_at": "2022-08-19T04:00:00Z",
"tag_application": "added",
"tag_id": 5,
"tag_label": "demo-tag"
},
"event": "account_tag_applied",
"hmac_signature": "9Fe9eP+ybNa9uMj+WZ414re1vbuN7kDEP8QFBTP+8+c="
}
account_tag_removed
account_tag_removed
Sent when a tag is removed from an account.
Example Payload
{
"data": {
"account_id": "can_299",
"applied_account_tags": [],
"effective_at": "2022-08-19T04:00:00Z",
"tag_application": "removed",
"tag_id": 5,
"tag_label": "demo-tag"
},
"event": "account_tag_removed",
"hmac_signature": "VtM6yHVNCX8tgrRf002IqhhOOK3Z9B4pDUZ+8kJRqbs="
}
Configurable Webhooks
The following webhook events are not enabled by default and must first be configured before being sent.
Each of the following event types can be subscribed to by calling making a PUT request to /accounts/{{account_id}}/notification_config
endpoint.
The body of the request should contain the following:
notification_type
: the name of the event you want to subscribe to, as listed below.time_offset
: the time interval for when you want to receive the webhook notice - i.e. the hours/days/etc before or after the applicable trigger point for each.
Example:
{
"notification_type": "payment_due_date",
"time_offset": "-2 days"
}
payment_due_date
payment_due_date
This webhook can be configured to send a notice N days before or after a borrower's payment due date is approaching or has passed. Note that this webhook event is created upon a statement generation event, thus must be configured BEFORE the statement is generated for it to be sent for that statement's due date. Please contact Canopy Support if the webhook was set after the statement generated but is required to be sent.
-
Configurable using a time offset. For example, if you want to receive a webhook notification 5 days prior to the due date, your time offset would be "-5 days".
-
The time offset is based on the due date of the statement
-
The time offset can range anywhere between the moment the statement was cut and the next statement's due date
-
Multiple time offsets can be provided and the webhook will always be sent at those scheduled times
-
Returns the following payload under
data
Example Payload
{ "data":{ "account_id":"account-8eyw", "current_min_pay_cents":"0", "customer_id":"connect_demo_5410", "days_past_due":237, "delinquent_as_of_date":"Not delinquent", "min_pay_cents":"17267", "min_pay_due_at":"2023-02-22T00:00:00-06:00", "min_pay_due_cents":"16472", "statement_id":"69908", "time_stamp":"2023-10-17T16:24:33.420464+00:00", "total_balance_cents":"16472", "unpaid_min_pay_cents":"33739" }, "event":"payment_due_date", "hmac_signature":"DKHNkNOAWXQ0y0Ak+Mq9chWKCZlhG11LrF1wYvkn81I=" }
minimum_payment_missed
minimum_payment_missed
This webhook can be configured to be sent any time the minimum due amount was not paid in full on time per the due date on the statement. If at any time the minimum due amount is met, the webhook will no longer be sent for that cycle.
-
Configurable using a time offset, such as "5 days".
-
The time offset is based on the due date plus grace period (if applicable) of the statement
- With no offset, the webhook will be fired once the payment's grace period has elapsed; with an offset the webhook will fire the payment's grace period has elapsed plus the configured offset
-
The time offset can range anywhere between the statement's due date and the following statement's due date
-
Multiple time offsets can be provided and the webhook will always be sent at those scheduled times
-
Will not be sent if the min pay has been covered
-
Returns the following payload under
data
Payload
"account_id": the id of the account"customer_id" the id of the customer
"statement_id": the id of the statement that triggered this webhook
"time_stamp": the time-stamp of when this webhook was sent
account_delinquency
account_delinquency
This webhook will be triggered based on the date in which the account status moved to delinquent.
-
Configurable using a time offset or periodic interval, such as "5 days" if you want to receive a notification 5 days after it has gone delinquent.
-
The time offset is based on the moment the account becomes delinquent
-
The time offset can not be a negative value
-
Multiple time offsets can be provided and the webhook will always be sent at those scheduled times
-
Will no longer be sent once an account is no longer delinquent
-
If configured with a periodic interval, time offset configurations will be ignored
-
Returns the following payload under
data
Example Payload
{
"data": {
"account_id": "can_100030",
"cure_amount": "3147",
"customer_id": "848",
"delinquent_as_of_date": "2023-01-30T13:23:00.487411-05:00",
"number_of_days_delinquent": 0,
"time_stamp": "2023-01-30T13:23:38.129534-05:00"
},
"event": "account_delinquency",
"hmac_signature": "dGIr5vD0KVYPLYcGsmld/wtfKym1+teUVZfVMmS+RQw="
}
Examples
Configuring payment_due_date
for two days before the due date
payment_due_date
for two days before the due datePUT /accounts/{{account_id}}/notification_config
{
"notification_type": "payment_due_date",
"time_offset": "-2 days"
}
Configuring account_delinquency
to trigger daily
account_delinquency
to trigger dailyPUT /accounts/{{account_id}}/notification_config
{
"notification_type": "account_delinquency",
"periodic_interval": "DAILY"
}
Updated 5 months ago