Pulling Cape Verdean (+238) verification codes into your test stack

Calling code +238OTP Gateway from $0.20 per codeDedicated numbers: US & Canada onlyAPI id: cv
Quick answer

You can receive Cabo Verde (+238) SMS verification codes with OTP Route by ordering a one-time number from the OTP Gateway and reading the code over the REST API, a signed webhook or the dashboard. Prices start from $0.20 per code, the live figure for each service comes from GET /api/v1/prices, and the wallet is refunded in full if nothing arrives within the 20-minute window.

Which endpoints does a +238 activation touch?

A Cabo Verde OTP API integration needs only a short list of calls under https://otproute.com/api/v1. Every request carries a Bearer key beginning with or_live_, generated in the Developer console. The country id for Cabo Verde is cv; the service id is the api_service value of whichever app you are testing.

  1. GET /api/v1/services and GET /api/v1/countries fetch the catalogs; cache them for the day.
  2. GET /api/v1/prices?country=cv&service=<id> reads the current price and tells you whether a route is open right now. Inventory moves during the day, so query it before each order rather than hard-coding anything.
  3. POST /api/v1/activations with {"service": "whatsapp", "country": "cv"} returns an activation id plus the +238 number to type into your sign-up form.
  4. GET /api/v1/activations/{id} lets you poll for the code if you are not using webhooks.
  5. POST /api/v1/activations/{id}/cancel releases the number when a test aborts, so the hold returns to the wallet.

A pre-run call to GET /api/v1/balance lets a suite stop early instead of failing halfway through. The ceiling is 300 requests per minute per account, and the API reference lists every field.

How do I accept the signed webhook for a Cabo Verde code?

Polling suits a single script; once several jobs run in parallel, a webhook is tidier. Register an endpoint in the Developer console (an account can hold five) and subscribe to activation.sms_received, activation.expired and activation.cancelled.

Each POST arrives with an X-OTPRoute-Signature header in the form t=<unix>,v1=<hex>. Rebuild the string <t>.<raw body>, sign it with HMAC-SHA256 using that endpoint's secret, and compare the result against v1 with a constant-time check. Discard anything whose timestamp is more than a few minutes old so a captured request cannot be replayed. After that, key your processing on the activation id: if the same event lands twice, the second copy should change nothing. Our article on securing OTP webhooks with HMAC covers the edge cases.

Which apps can send codes to a Cape Verdean number today?

The live catalog for cv covers more than 800 services. Popular ones open at the moment include WhatsApp, Facebook, Instagram, TikTok, Google (Gmail & YouTube), Microsoft & Outlook, Amazon, Airbnb, Uber, Viber, Telegram and Netflix. Read that list as a snapshot: routes open and close with partner capacity, and that is the point of OTP routing through an API that reports availability in real time instead of a page promising it.

If nobody on the team writes code, the dashboard does the same job. Choose the service, choose Cabo Verde, confirm the price on screen and copy the number. The code shows up on the activation card when it lands.

What does a +238 number look like when you store it?

Cabo Verde uses a closed numbering plan: seven-digit national numbers and no trunk prefix, so there is no leading zero to strip. In E.164 a number is simply +238 followed by those seven digits. Normalisation is therefore trivial, yet the short length trips validators that assume every subscriber number is longer, which is a common reason a form rejects a perfectly valid Cape Verdean entry. Store the E.164 string, format it however your UI prefers, and add a +238 case to your phone-field unit tests.

Portuguese is the official language, while Cape Verdean Creole is what most people speak day to day, so check how a Portuguese OTP template renders on a handset there. Teams usually pick up a +238 number for testing because of the diaspora: Cape Verdean communities in the United States, Portugal and elsewhere in Europe keep accounts tied to home numbers, and remittance, travel and messaging products want those sign-ups to work.

What happens to the wallet if no SMS arrives in 20 minutes?

Each activation stays open for 20 minutes. If a code arrives in that window, the charge stands; if the window closes empty, or you cancel first, the full amount returns to your wallet without a support ticket. When nothing comes through:

  • Let the window run its course instead of firing off a fresh order every few seconds; a tight retry loop only locks up funds.
  • Try again later, or exercise the same flow through a different service route.
  • Confirm the app accepts virtual numbers at all; some refuse them by policy, and the refund exists for exactly that case.
  • Make sure your form submitted the complete +238 number rather than a truncated one.

The guide to reducing failed OTP deliveries goes deeper on diagnosis.

Can I keep a Cabo Verde number for repeat logins?

Not on a self-serve basis. Dedicated Numbers from OTP Route, which are long-term lines with inbound and outbound SMS, browser calling and webhook forwarding, are a United States and Canada product from $1.95/month. There is no self-serve long-term +238 line. If your team has a genuine need for one, email [email protected]; whether it can be arranged depends on local rules and is not assured. For a staging account that must sign in again and again, a US or Canadian virtual number is often the practical answer.

How is usage billed and tested before going live?

Billing runs from a single prepaid USD wallet with no monthly fee and no plan tier. Top up by card or with USDT/USDC stablecoins; every top-up comes with a PDF invoice by email, which keeps finance reconciliation simple. Before production keys touch the wallet, ask for your development account to be switched to sandbox: it returns simulated numbers and codes, so the order, webhook and cancel path of your SMS verification API client can run in CI without spending anything. See pricing and the QA testing overview. Follow each service's terms and OTP Route's Acceptable Use Policy throughout.

Frequently asked questions

Can I test my app's Cabo Verde sign-up flow without a local SIM?

Yes. Order a +238 number from the OTP Gateway, enter it in your sign-up form and read the code from the dashboard, the API or a webhook. Nobody on the team needs to be on the islands.

What is the country id for Cabo Verde in the OTP Route API?

It is cv. Pass it as country in POST /api/v1/activations and in the prices query.

Do I need to add a 0 before a Cape Verdean number?

No. Cabo Verde has no trunk prefix, so the international form is just +238 plus the seven-digit national number.

How much does a Cabo Verde verification number cost?

OTP Gateway pricing starts from $0.20 per code and varies by service; the API and the dashboard show the exact price before you order. You are charged only if a code arrives.

Will every app send codes to a Cape Verdean virtual number?

No. Some services refuse virtual numbers, and routes change during the day. If no code lands within 20 minutes, the amount is returned to the wallet.

Is there a sandbox for testing the +238 integration?

Yes, on request. A development account can be switched to sandbox mode, which returns simulated numbers and codes so the integration runs end to end without wallet spend.

Service names are trademarks of their respective owners. OTP Route is not affiliated with them. Use numbers lawfully, follow each service's terms and our Acceptable Use Policy.

Route your first OTP in minutes

Create a free account, top up your USD wallet and order a number from the dashboard or the API. No monthly fee.