The sentStatus of an SMS gives you the health of the SMS creation process from the salesforce org to the portal. If it is "Submitted" in the initial stage, it means that the SMS request has been created successfully. If it fails, it indicated that either the SMS credits have expired, or an incorrect contact number has been used or there seem to be a concern with the insufficient privileges.
The deliveryStatus of an SMS is the real-time delivery report that we receive from the SMS providers. The moment we receive them, we push them back to your SF org.
Let me try to explain how the SMS delivery reports are pushed to your org and the actions followed.
The sentStatus defines the progress of the SMS from Salesforce to the SMS Magic portal and the deliverStatus defines the progress of the delivery of the SMS on the handset(provided by the SMS providers).
As per the application's login, when we sent SMS from the SF org, a record is created in SMS History tab with the sentStatus as "Submitted" and the requested is forwarded to our portal for further processing.
When we receive the delivery report from the provider, we push it back to your org and
sentStatus is updated to "Success" and the deliveryStatus is updated with the one shared by the SMS provider.
In your case, the SMS requests are raised through API call and there is no default value configured for the "sentStatus" field. When an SMS is rejected at the SMS Magic portal's end, no report is pushed back to your SG org and no updated are carried further. When you send an SMS through an API and don't use any default sentStatus, both the sentStatus and deliveryStatus remain blank in Invalid contact number cases.
However, when an SMS is sent to a junk number and it passes through SMS Magic portal and is rejected at the SMS provider's end, they push the delivery report as Failed and the sentStatus is updated as "Success".