You should ignore the settlement timestamp, particularly for credits from schemes like Bacs or Faster Payments. Honestly, the fact that it is still present in our API is a bit of a throwback, and I wouldn’t be surprised if we removed it in the future.
From the point of view of your balance, the “settled” timestamp is basically irrelevant, as it represents different things depending on the scheme. It is partially useful for mastercard transactions, as an empty settlement timestamp means that we have only received an “authorisation” but not a “presentment”, and if it’s been a few days that means we’re quite likely not going to (so it’d reverse automatically after 7 or 30 days depending on the type).
For Faster Payments it’ll be fixed to the settlement time of the current faster payments settlement cycle, a point in time in the recent future. This is only useful for Monzo’s internal accounting.
Except for special circumstances, as soon as the transaction has been created (so a few milliseconds before the webhook fires).
By “special circumstances” I mean something going wrong like we took too long to respond to a faster payments message and receive a reversal instruction. This would be represented as a separate debit after the credit.