I am attempting to update a contribution's status but I am getting the error "Cannot change contribution status from Pending to In Progress." I am doing this through the API. I understand there may be some specification bug where In Progress is intended for pledges, not contribution's -- but I can't think of any better way to represent the data I am getting using the available contribution statuses :-S In Britain, a contribution or payment of any kind can have multiple states and frequently goes through multiple state changes. I understand this is different to, say, the US system which I have limited experience of. I am using the contribution status 'Pending' to mean "The direct debit mandate has been created (but not submitted by the payment gateway to the banks)". I am trying to use the contribution status 'In Progress' to mean "The direct debit mandate has been submitted to the banks (but not yet paid)" I believe this is in keeping with expected behaviour for these terms in this context.
For the why on restrictions - see: Reasons for restricting changing contribution statusses?
I'm co-maintaining the iATS extension and we're doing Uk direct debit - so I hear you. And I also have a status = Returned that I need to be able to get in for North American ACHEFT processing. ACHEFT here can go from Pending -> Completed -> to Returned. And Returned is not a refund. It's also not quite a Canceled either.