API gníomhachtaithe SMS

Dhá bhealach isteach: críochphointe atá comhoiriúnach le prótacal sms-activate, ionas go n-aistríonn bogearraí atá ann cheana tríd an URL agus an eochair a athrú, agus JSON REST API do chomhtháthuithe nua. Úsáideann an dá cheann an eochair API chéanna ó do phainéal.

Faigh d'eochair API

Cruthaigh cuntas, oscail an painéal agus gin eochair faoi Rochtain API. Coinnigh faoi rún í: is féidir le duine ar bith a bhfuil an eochair aige d'iarmhéid a chaitheamh.

Cláraigh

Sreabhadh tipiciúil

  1. Glaoigh getNumber le seirbhís agus tír.
  2. Úsáid an uimhir san aip sprice.
  3. Ceistigh getStatus gach cúpla soicind go dtí go bhfaigheann tú STATUS_OK.
  4. Glaoigh setStatus le 6 chun críochnú, nó 8 chun cealú mura dtáinig cód.

Críochphointe comhoiriúnach le sms-activate

Seol iarratais GET nó POST leis na paraiméadair api_key agus action. Is gnáth-théacs na freagraí, díreach mar a bhíonn ag sms-activate.

https://smsrota.com/stubs/handler_api.php?api_key=KEY&action=getNumber&service=wa&country=187

Gníomhartha

GníomhParaiméadairFreagra
getBalance—ACCESS_BALANCE:12.5000
getPricesservice?, country?{"187":{"wa":{"cost":0.4,"count":1563}}}
getNumberservice, country, maxPrice?ACCESS_NUMBER:48151623:15550123456
getStatusidSTATUS_WAIT_CODE · STATUS_WAIT_RETRY:code · STATUS_OK:code · STATUS_CANCEL
setStatusid, statusACCESS_RETRY_GET · ACCESS_ACTIVATION · ACCESS_CANCEL
getRentNumberservice, country, rent_time (4/24/72/168/720){"status":"success","phone":{"id":31,"endDate":"…","number":"447700900001"}}
getRentStatusid{"status":"success","quantity":"1","values":{"0":{"phoneFrom":"WhatsApp","text":"…"}}}
setRentStatusid, status (1 = finish, 2 = cancel){"status":"success"}
continueRentNumberid, rent_time{"status":"success","phone":{…}}

Luachanna setStatus

3
Iarr cód eile ar an uimhir chéanna
6
Críochnaigh an gníomhachtú
8
Cealaigh agus aisíoc (féideartha dhá nóiméad tar éis ceannaigh)

JSON REST API

Seol an eochair sa cheanntásc Authorization mar "Bearer KEY". Is teaghráin i ndollair SAM le ceithre ionad deachúlach iad na suimeanna.

GET   https://smsrota.com/v1/balance
GET   https://smsrota.com/v1/prices?service=wa
POST  https://smsrota.com/v1/activations  {"service":"wa","country":"187"}
GET   https://smsrota.com/v1/activations/:id
POST  https://smsrota.com/v1/activations/:id/retry
POST  https://smsrota.com/v1/activations/:id/complete
POST  https://smsrota.com/v1/activations/:id/cancel
GET   https://smsrota.com/v1/rent/prices?service=wa&hours=24
POST  https://smsrota.com/v1/rentals  {"service":"full","country":"16","hours":24}
GET   https://smsrota.com/v1/rentals/:id
POST  https://smsrota.com/v1/rentals/:id/extend  {"hours":24}
POST  https://smsrota.com/v1/rentals/:id/finish
POST  https://smsrota.com/v1/rentals/:id/cancel
POST  https://smsrota.com/v1/rentals/:id/dispute  {"reason":"no_sms"}
PUT   https://smsrota.com/v1/webhook  {"url":"https://example.com/sms-webhook"}
POST  https://smsrota.com/v1/webhook/test
GET   https://smsrota.com/v1/webhook/events

Crúcaí gréasáin

Socraigh URL faoi Rochtain API i do phainéal. Seolaimid POST le corp JSON do gach imeacht. Freagair le stádas 2xx ar bith laistigh de 10 soicind; murach sin bainimid triail eile as tar éis 1, 5, 30, 120, 360 agus 720 nóiméad.

activation.sms_received
Tháinig cód d'uimhir a cheannaigh tú.
activation.cancelled
Cuireadh uimhir ar ceal nó chuaigh sí in éag agus chuaigh an t-airgead ar ais chuig d'iarmhéid.
rental.sms_received
Tháinig SMS ar uimhir ar cíos.
rental.ended
Tháinig deireadh le cíos nó cuireadh ar ceal é.

Corp samplach

{
  "id": "evt_1042",
  "type": "activation.sms_received",
  "createdAt": "2026-11-01T10:00:00.000Z",
  "data": {
    "activationId": 48151623,
    "service": "wa",
    "country": "187",
    "phone": "15550123456",
    "code": "123456"
  }
}

An síniú a sheiceáil

Tá ceanntásc X-Webhook-Signature ar gach iarratas mar t=1730000000,v1=…, áit arb é v1 an HMAC-SHA256 heicsidheachúlach de "t.body" a rinneadh le do rún sínithe. Diúltaigh don iarratas mura n-oireann an síniú nó má tá t níos sine ná 5 nóiméad.

import { createHmac, timingSafeEqual } from "node:crypto";

// rawBody: the request body exactly as received, before JSON parsing.
function verify(rawBody, header, secret) {
  const { t, v1 } = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  const expected = createHmac("sha256", secret).update(`${t}.${rawBody}`).digest("hex");
  const fresh = Math.abs(Date.now() / 1000 - Number(t)) < 300;
  return fresh && v1.length === expected.length && timingSafeEqual(Buffer.from(v1), Buffer.from(expected));
}

Earráidí

BAD_KEY
Tá an eochair API mícheart nó cuireadh ceann eile ina háit.
NO_NUMBERS
Níl stoc ar fáil don tseirbhís agus don tír seo faoi láthair.
NO_BALANCE
Tá d'iarmhéid ró-íseal don uimhir seo.
EARLY_CANCEL_DENIED
Is féidir cealú dhá nóiméad tar éis ceannaigh.
NO_ACTIVATION
Níl an t-aitheantas gníomhachtaithe ann nó ní leatsa é.