Transaction.failed
The rail refused a charge or payout Transaction after it was sent.
| Property | Value |
|---|---|
| Raised by | No Verb: the rail raises it |
| Noun | Transaction |
| Moves | Bill paid to approved when the rail refused the Transaction that paid this Bill |
| Wakes | None. |
Payload
Each delivery is an Event record. data holds the Transaction as it stands.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | required | Transaction.failed. |
at | datetime | required | When it happened. |
seq | integer | Its position in the namespace, one more than the Event before; any seq is a cursor into the history. | |
data | json | required | The Thing as the Action left it. |
data.transaction | Transaction | required | The Transaction as the change left it. |
data.transaction.kind | string | required | One of charge, refund, payout, or transfer. |
data.transaction.amount | money | required | The amount moved. |
data.transaction.receipt | File | The receipt matched to a card Transaction. | |
data.transaction.settledAt | datetime | When the money became available in a cash Account. | |
data.reason | text | required | Why the rail refused it, in the rail’s words. |
Example
{
"$id": "https: //api.sb/ leaseline.app/ events/ evt_QoYICDL4sO",
"$type": "Event",
"name": "Transaction.failed",
"at": "2026-10-22T12: 00: 00Z",
"data": {
"transaction": {
"$id": "https: //api.sb/ leaseline.app/ transactions/ txn_XoxtZe3CQI",
"$type": "Transaction",
"kind": "charge",
"amount": {
"amount": 29,
"currency": "USD"
},
"receipt": "file_V1AuhyCTsH",
"settledAt": "2026-10-22T12: 00: 00Z"
},
"reason": "The bank declined the transfer."
},
"seq": 2674
}