Incoming Payment Detail Webhooks

EventDescription
createdAn incoming payment detail has been created. Its status is held if the payment is under review, or failed if the payment failed before it posted (for example, it was automatically returned).
tentatively_reconciled

An incoming payment detail has been tentatively reconciled to a pending transaction. See the guide for more information.

Does not change the incoming payment detail's status.

completedAn incoming payment detail has been posted to your account, funds have arrived or been accepted.
reconciled

An incoming payment detail has been reconciled to a posted transaction.

In most cases, you will get this at the same time as the completed webhook. However, there is a case where you only receive the reconciled webhook. This would occur if you returned the IPD before the transaction posted. In this case, we don't send the completed webhook since the IPD will be in the terminal returned state.

returnedAn incoming payment detail has been returned. This would happen if you create a return using an incoming payment detail.
failedAn incoming payment detail has failed, for example because a held payment was rejected after review. The reason is in failure_reason. This also happens when the Simulate Incoming Payment Detail endpoint fails to create one.
return_failedA return created using an incoming payment detail has failed.
unreconciledA return has been unreconciled from a transaction.
{
  "event": "created",
  "data": {
    "id": "4844bda1-eb57-4129-afb4-fc663a395ca0",
    "object": "incoming_payment_detail",
    "internal_account_id": "487b9a5c-6737-43ea-b11c-593f39226b92",
    "virtual_account_id": null,
    "transaction_line_item_id": null,
    "transaction_id": null,
    "ledger_transaction_id":"094df78d-c7d4-4aeb-9644-f1d9e8380f87",
    "type": "ach",
    "data": { // This field may contain PII and is not included in webhook event bodies by default
      "batch_header_record": {
        "batch_number": "999",
        "company_name": "moderntreasury.com",
        "settlement_date": 17,
        "service_class_code": "200",
        "effective_entry_date": "2019-01-30",
        "company_identification": "9999999999",
        "originator_status_code": "1",
        "company_descriptive_date": "",
        "company_entry_description": "moderntreasury.co",
        "standard_entry_class_code": "CCD",
        "company_discretionary_data": "",
        "originating_dfi_identification": "99999999"
      },
      "detail_record": {
        "amount": 10000,
        "trace_number": "999999999999999",
        "transaction_code": "27",
        "dfi_account_number": "99999",
        "discretionary_data": "",
        "identification_number": "moderntreasury.com",
        "receiving_company_name": "EXAMPLE INC",
        "addenda_record_indicator": true
      },
      "payment_related_information": "Lorem Ipsum",
    },
    "amount": 10000,
    "currency": "USD",
    "direction": "debit",
    "status": "pending",
		"reconciliation_status": "reconciled", 
    "metadata": {},
    "as_of_date": "2020-10-17",
    "live_mode": true,
    "created_at": "2020-10-15T04:23:11Z",
    "updated_at": "2020-10-15T04:23:11Z"
  }
}