Udviklere

POST/v3/order/{prefix_id}

Bestil telefonnumre fra et præfiks

Køb et antal numre fra den aktuelle beholdning for et præfiks, gem ordrereferencer, og afstem priser, delvise tildelinger og aktivering.

På denne side
  1. Bestil fra et præfiks
  2. Send købsanmodningen
  3. Indstillinger for levering og fornyelse
  4. Læs hele resultatet
  5. Delvise køb og usikre udfald
  6. Registrering og aktivering
  7. Callbacks for ordrer
  8. Fejl, der skal håndteres

Bestil fra et præfiks

Brug denne operation, når præfikskataloget henviser dig til at bestille et antal numre fra et præfiks frem for at vælge enkelte ledige numre. Start med lande, områder eller delstater og præfikser. Gem præfiksidentifikatoren og prisplanen fra det samme opdaterede resultat. Hvis du har valgt et bestemt nummer fra en liste over ledige numre, skal du bruge Køb et valgt telefonnummer.

Denne anmodning kan købe numre og medføre omkostninger. Den er hverken et pristilbud, en reservation eller en prøvekørsel. Gennemgå oprettelsesgebyrer og månedlige gebyrer, minuttakster for indgående opkald, inkluderede minutter, kanaler, registreringskrav og kontoens købsgrænser, før du sender anmodningen. Et katalogresultat reserverer ikke numre og fastlåser ikke priser. Kontrol af kontoens finansiering kan ske før gennemførelsen; en fejl beviser ikke i sig selv, at der hverken er sket et køb eller en tilførsel af midler til kontoen.

Send købsanmodningen

Brug en aktiveret API-konto via HTTPS fra en tilladt kilde-IP-adresse. Angiv variablerne ud fra dit aktuelle valg i kataloget og din godkendte leveringskonfiguration. Følgende kommando køber ét nummer.

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  --data-urlencode 'quantity=1' \
  --data-urlencode "price_id=$PRICE_ID" \
  --data-urlencode "channels=$CHANNELS" \
  --data-urlencode "reference=$ORDER_REFERENCE" \
  --data-urlencode "uri=$VOICE_URI" \
  "https://api.multitel.net/v3/order/$PREFIX_ID"

Ovenfor vises POST med formulardata. Koordinatoren læser også et JSON-objekt, når Content-Type er application/json. JSON-felter tilsidesætter tilsvarende formular-/anmodningsfelter. Brug én kodning konsekvent; send ikke modstridende værdier i forespørgselsparametre og anmodningens indhold.

Parametre for ordrevalg og notifikationer
ParameterBetydning
præfiksidentifikator i stienDet præfiks-UUID, som kataloget returnerer. En identifikator for et land, et område, en pris eller et enkelt nummer kan ikke bruges i stedet.
quantitySend et heltal fra 1 til 100. Standardværdien er 1. Værdier under 1 ændres automatisk til 1; denne anmodning udfører ikke kun validering. Værdier over 100 udløser en undtagelse før denne koordinators normale svarhåndtering, så regn ikke med dens sædvanlige JSON-struktur ved dette ugyldige input.
price_idDen valgte plans offentlige prisidentifikator. priceid er et ældre alias. En identifikator, der ikke matcher, kan medføre, at en anden plan vælges som reserve uden varsel; dette felt er ikke en streng prislås. Kontrollér kontoens prislofter før købet, og undersøg den returnerede pris bagefter.
channelsAntallet af kanaler i den valgte plan. Når der ikke bruges et nøjagtigt prismatch, kan et matchende kanalantal påvirke valget af en alternativ plan. Det garanterer ikke i sig selv, at en bestemt plan købes.
referenceDin betegnelse for købet eller gruppen af køb. Brug en kort ASCII-værdi på højst 255 bytes; længere værdier afkortes. Den gemmes ved vellykkede køb og medtages i callbacks, når den er angivet. Separate ordrer kan have samme reference. Den er ikke en idempotensnøgle: Hvis du sender denne operation igen, kan der købes og opkræves betaling for yderligere numre, selv med samme reference og identiske felter.
webhook_urlValgfri callback-URL. Brug et HTTPS-endpoint, som du kontrollerer. Både HTTP- og HTTPS-URL'er godkendes af den nuværende grundlæggende validator; en ugyldig URL ignoreres i stedet for at få købet afvist. Et callback er en supplerende notifikation, ikke et bevis på, at en anmodning sikkert kan gentages.

Indstillinger for levering og fornyelse

Vælg de samme leveringsindstillinger, som du ville bruge til nummeret i portalen. Dette er avancerede konfigurationsværdier, ikke anvisninger til at oprette en Hosted PBX eller en origination-trunk. Genbrug en kontokonfiguration, som du ved fungerer, og kontrollér det gemte nummer efter købet. Et accepteret køb bekræfter ikke i sig selv, at levering af tale eller SMS fungerer.

Yderligere ordrefelter
FeltAnvendelse og kompatibilitet
uri, uri2, uri3Primær og yderligere destinationer for taleopkald. Angiv destinationer, der passer til de valgte viderestillings- og ringetilstande.
forward_destinationTilstand for viderestilling af taleopkald. forwarding_destination og type er ældre aliaser. Hvis feltet udelades, bruges standardværdien for det pågældende købsforløb; et tomt felt er ikke en pålidelig måde at fjerne en eksisterende præference på.
ring_typeRingetilstand for taleopkald; ringtype er et alias. Brug en understøttet værdi fra kontoens nummerkonfiguration.
sms_forward_destination, sms_uriLeveringstilstand og destination for SMS. Ældre aliaser er smsringtype og smsuri. Nogle købsforløb anvender kontoens standarddestination for SMS, når dette er tomt. Tilgængeligheden af SMS afhænger af det valgte nummer og dets aktivering/registrering.
overflowØnsket indstilling for overløb. Planens tilgængelighed og købsforløbet har betydning for, om den understøttes.
force_codec, force_dtmfØnskede codec- og DTMF-indstillinger. Ældre aliaser er forcecodec og forcedtmf. Kontrollér den gemte konfiguration for de valgte numre i beholdningen.
origination_trunk_idEn identifikator for en eksisterende trunkkonfiguration, hvor det er relevant. Dette opretter ikke en trunk. Hvis feltet udelades, bruges standardværdien for købsforløbet.
autorenewØnsket fornyelsesindstilling. Antag ikke, at 0 deaktiverer fornyelse: Nogle købsforløb behandler en værdi, der fortolkes som tom, herunder 0, som standardindstillingen med fornyelse aktiveret. Kontrollér og om nødvendigt ændr fornyelsen for det købte nummer i portalen.

Disse felter normaliseres og sendes videre til købsprocessen, men måden, de gemmes på, varierer mellem forløbene for de forskellige nummerbeholdninger. Den nuværende ordrerute stiller ikke de strenge felter til begrænsning af tilbudsprisen fra vejledningen om køb af et valgt nummer til rådighed som tilsvarende sikkerhedsforanstaltninger. Brug kontoens købstilladelser og prisgrænser, og undersøg den resulterende nummerkonfiguration.

Læs hele resultatet

Fortolk JSON-indholdet, og undersøg status.code og status.msg, også når HTTP-anmodningen lykkes. Denne rute skriver sit eget JSON-svar, og den fælles hjælpefunktion til svar omsætter heller ikke nødvendigvis applikationskoden til HTTP-statussen. Applikationskoder kan være JSON-tal eller numeriske strenge. Kræv ikke status.results; feltet findes ikke i det normale ordreresultat.

{
  "status": {"code": "200", "msg": ""},
  "response": {
    "id": "o_fictional_example",
    "numbers": ["12025550123"],
    "price": {
      "per_minute": "0.01",
      "free_minutes": 0,
      "setup_price": "1.25",
      "monthly_price": "2.50",
      "channels": 2
    },
    "features": ["voice"],
    "needs_registration": 0,
    "restrictions": "",
    "registration_requirements": null
  }
}

Identifikatoren, nummeret og priserne ovenfor er fiktive. Behandl ordre-id'et som en uigennemsigtig værdi uden at fortolke dets indhold. numbers angiver de numre, som dette svar rapporterer som købt; sammenlign listens længde med det antal, du anmodede om. Prisbeløb er strenge, og dette svar afrunder pengesatser til to decimaler, herunder per_minute; brug det opdaterede katalog for at få takstens oprindelige præcision. Inkluderede minutter og kanaler kan modtages som numeriske værdier eller numeriske strenge.

Prisblokken beskriver den valgte plan, der blev brugt til at opbygge svaret, og er ikke en detaljeret faktura for hvert nummer eller ordrens samlede beløb. Forskellige mulige numre i beholdningen kan have forskellige planer. Afstem de enkelte købte numre og kontotransaktioner frem for at gange beløbene i denne blok op og antage, at det dokumenterer det endelige samlede beløb.

Delvise køb og usikre udfald

En applikationskode på 200 kan forekomme sammen med en advarsel og færre numre end ønsket. En senere fejl annullerer ikke køb af numre, der allerede er gennemført. Gem det returnerede ordre-id, numrene og meddelelsen. Afstem disse numre med din nummerbeholdning og dine kontotransaktioner, før du beslutter, om du vil bestille det resterende antal.

En timeout, en afbrudt anmodning, et forkert formateret svar eller en fejl efter afsendelsen er ikke bevis på, at der ikke skete noget. Send ikke automatisk en ny købsanmodning, heller ikke med samme reference. Gem den oprindelige anmodning, referencen og et eventuelt returneret ordre-id, kontrollér nummerbeholdningen og kontotransaktionerne, og kontakt support, hvis udfaldet fortsat er usikkert.

En ubekræftet ordre kan returnere applikationskode 400 med en meddelelse om, at bekræftelsen stadig er i gang. Gem det returnerede ordre-id, og afstem dette køb; meddelelsen er ikke en anvisning om at sende det igen. Gendannelsen af registrerede ordrer sporer den oprindelige ordre internt. En ny anmodning til denne operation opretter et separat købsforsøg frem for at genoptage en ordre ud fra din reference, så den kan købe og opkræve betaling for flere numre. Brug ikke gentagne købsanmodninger til at kontrollere status eller søge i nummerbeholdningen.

Registrering og aktivering

Et købt eller tildelt nummer kan stadig kræve registrering eller aktivering. Hvis needs_registration er 1, skal du undersøge restrictions og registration_requirements. Sidstnævnte kan henvise til v3/get_requirements med værdier for country og number_type. Gennemfør det relevante forløb for identitets-/adressekontrol, og bekræft nummerets status, før du baserer dig på indgående opkald eller beskeder.

features beskriver de oplyste funktioner; feltet bekræfter ikke routing i drift, kampagnegodkendelse, SMS-levering eller faxmodtagelse. Kontrollér de gemte leveringsindstillinger, og udfør den relevante tjenestetest, når nummeret er aktivt.

Callbacks for ordrer

Callbacks sender JSON via POST med ordrens status og svar samt din reference, hvis den er angivet. De sendes for rapporterede køb, herunder delvise resultater. Et mislykket callback ruller ikke købet tilbage. Leveringen kan blive forsøgt igen, så håndtér dubletter ud fra ordre-id'et, og afstem numrene frem for at sende en ny købsanmodning.

Denne rute tilføjer ikke en kryptografisk signatur til callbacks. Betragt et callback som en notifikation, der skal afstemmes med den nummerbeholdning, du tilgår med autentificering, ikke som en selvstændig tilladelse til at opkræve betaling, klargøre tjenester eller give adgang. Anbring ikke API-legitimationsoplysninger i callback-URL'en. Hvis du sender en ny købsanmodning med en anden callback-URL, opdaterer det ikke den oprindelige ordre; det opretter et separat købsforsøg. Gem det oprindelige ordre-id, når du beder support om at undersøge ordrens callback.

Fejl, der skal håndteres

Applikationsudfald
UdfaldHvad du skal gøre
400 og en meddelelse om ugyldigt præfiksLæs præfikskataloget igen, og brug den aktuelle identifikator derfra. Skeln mellem dette og en meddelelse om, at bekræftelsen af en oprindelig ordre stadig er i gang.
403 eller en fejl vedrørende kontopolitik eller saldoGennemgå købstilladelse, kontoens prislofter, antalsgrænser og finansiering. Andre applikationskoder kan blive videresendt fra disse kontroller; gem den faktiske meddelelse.
404 eller ingen ledige numre i beholdningenHent opdaterede oplysninger om tilgængelighed. Foretag ikke gentagne købsforsøg for et præfiks uden flere ledige numre.
409 og en meddelelse om købsbekræftelse, afvisning fra udbyderen eller annulleret ordreGem det returnerede ordre-id og den faktiske meddelelse. Afstem anmodningen med nummerbeholdningen, kontotransaktionerne og support, før du sender en ny købsanmodning. Genbrug af samme reference gør ikke en ny anmodning sikker.
200 med advarsler eller færre numreNogle numre blev købt. Afstem den returnerede tildeling og transaktionerne, før du bestiller flere.
Server-/transportfejl eller ulæseligt svarBetragt resultatet som potentielt usikkert, indtil nummerbeholdningen og transaktionerne fastslår, hvad der skete.