Skip to content

Guides · eSIM and SMS

Receiving vs sending SMS APIs: identify the message direction

Receiving a third-party message on a purchased number is different from sending your own application’s verification code. Name the sender, receiving number and application reading the result before choosing a product. Portproof’s SMS offer supplies receiving-number access; it is not an outbound authentication platform.

By PortproofPublished

Short answers

What does inbound SMS mean?

Inbound describes a message arriving at a receiving number or system. Always name the system: a message can be outbound from its sender and inbound to its recipient. Retrieving a saved incoming message through an API is another operation, not a new SMS sent to the phone number.

Can I use Portproof to send codes to my application’s users?

The receiving-number product described here is not an outbound SMS sender or an authentication-code platform. Its API exposes purchases, owned receiving assets, saved messages and supported actions. Do not purchase a receiving activation to satisfy an outbound sending requirement.

Does a receiving number accept every service?

No acceptance guarantee applies. Select the country and receiving service actually offered by the product, check its permitted use and access period, and follow the destination service’s rules. Number allocation and a service’s decision to send a message are separate events.

Is reading messages through an API the same as a webhook?

No. Your application requesting saved message data is different from a server sending an event to your application. Implement only the mechanisms documented in the actual API. A product labelled API access does not establish an incoming-message webhook or a delivery guarantee.

Name the sender, number and reader

Start with a sentence describing the work: “I need this service to send an authorised message to this number, then my application must read it.” If your sentence instead begins “My application must send a code to my customer”, you are describing a different capability. The word verification can appear in both tasks without making them interchangeable.

Search results for SMS APIs often mix inbound messages, outbound delivery, two-way conversations and authentication products. Do not choose from a headline alone. Identify the operation you need and inspect the actual product contract before considering implementation details or price.

Complete a direction worksheet before buying

Fictional examples: direction depends on the named system
WorkflowSender → recipientWhat the application needsPortproof product boundary
Read an authorised service-specific verification messageThe selected third-party service → an allocated receiving numberOwned number access and a way to read its saved incoming messageCheck the offered country/service combination and activation or rental terms
Send an application’s own login code to its userYour application’s sending service → your user’s existing numberAn outbound sender and the application’s authentication processNot supplied by purchasing the receiving-number product described here
Retrieve a message already held for an owned numberYour backend requests data → the owned asset’s message resource respondsAuthenticated access and correct handling of saved message stateAn API data read, not another SMS transmission

These examples contain no actual customer, service allocation or delivery test. Their purpose is to expose a mismatch early. A product supporting an incoming message does not thereby supply the sender’s identity, authentication policy, consent workflow or outbound infrastructure.

Choose number access for the actual receiving task

For a permitted receiving task, check the available country and service together. Do not assume that every service exists in every country or that a number intended for one service can be reused for another. Review whether the offer is an activation, fixed-term rental or monthly number, and what that access period means for your task.

Use the activation-versus-rental comparison for the time commitment. A temporary receiving number is not a promise of permanent control. If continued account access matters, prepare the service’s supported recovery options before the number’s access ends; the expiry and recovery guide owns that planning question.

Keep purchase, allocation and message arrival separate

An accepted payment does not by itself establish that a number has been allocated. A number allocation does not establish that the selected service has sent a message. A message stored in the asset does not prove that your application has successfully retrieved or used it. Treat these as separate observations.

  1. Confirm the exact product, current total and supported receiving service before purchase.
  2. Keep the existing order or operation identity while an outcome is processing or uncertain.
  3. Wait for the owned asset to supply an allocated number before treating allocation as complete.
  4. Use the number only for the authorised task and under the receiving service’s rules.
  5. Read the owned message resource using the documented interface, respecting empty, unknown, stale or withheld data.
  6. If the result is unclear, investigate the existing order rather than automatically creating another purchase.

The SMS and eSIM API reference supplies the actual authentication, catalogue, quote/purchase and message-resource contract. Keep that page as your implementation reference. This decision guide does not introduce new endpoints or replace its idempotency, ownership and error-handling requirements.

Distinguish reading saved data from receiving an event

When your backend requests the inbox, it is asking for data that the API currently exposes. An empty response needs context: the last successful check, asset state, pagination and any withheld-content marker. Repeating a request does not cause the third-party service to send an SMS.

A webhook would be a different delivery mechanism, where a server calls an address your application operates. Do not infer one from generic API terminology or design around an undocumented event. Likewise, a supplier, network or application delivery state must not be invented from a successful data request. Follow the mechanisms and fields the reference actually documents.

Keep number access and message contents private

Use authenticated access to the asset belonging to the authorised buyer. Keep API credentials on the backend and protect message contents in the customer interface. Do not put numbers, verification codes or incoming-message bodies into public logs, analytics parameters or demonstration screenshots.

Visibility is a separate buying consideration from direction. A public inbox and an account-protected resource have different access conditions. The public inbox safety guide explains that distinction without treating payment as a guarantee of privacy, delivery or acceptance.

Use the shopping path that matches the requirement

If the task is receiving an authorised service-specific message, browse the actual SMS country and service offers, compare the access period and review the confirmed purchase terms. If the task is sending your own application’s messages, the receiving product described here does not meet it.

A travel eSIM data plan is another separate product: it does not automatically provide a phone number or carrier SMS. Read data-only eSIM and SMS differences when planning both travel connectivity and account access. No message was sent, number allocated or purchase made for this article.

What is not allowed

Receive messages only for authorised purposes and comply with the selected service’s rules and the acceptable-use policy.