Status is available for every SMS and visible in the Dashboard SMS overview. It is a generic value indicating the current SMS status, it focuses mostly on providing information on the SMS handling by the MessageBird platform. In case of delivery, failure Statuses do not provide any details nor can be used to determine what recipient numbers are valid and what aren't.
Status Reason is available for every SMS and visible in the Dashboard SMS overview. It provides more details about the current SMS status. The combination of status and Status Reason should provide enough information to manage and keep you updated on your receiver database (for example highlighting what numbers are incorrect and need to be purged)
Error Code: the most detailed level of information. Error Codes do NOT appear in the Dashboard but are visible via API's Status Reports. They are optional and are only populated if they are received from the downstream providers. Error codes provide the most information about a given failure as well specifying if it is Intermediate (the cause of the error is expected to / could resolve, retries are advisable) or Permanent (the cause of the error is definitive; the number should be removed from the client contact database)
Both the detailed Status Reason List as well SMS Error code update list is available on our developer page.