Ontwikkelaars

POST/v3/rentnumber/{number_id}/{price_id}

Een geselecteerd telefoonnummer kopen

Dien één goedgekeurd nummer en de bijbehorende prijs in met offertecontroles en controleer vervolgens eigendom en activering voordat u het opnieuw probeert.

Op deze pagina
  1. Kies het nummer en de prijs samen
  2. Dien een aankoopverzoek met controles in via POST
  3. Registratie en activering
  4. Voorkom ongemerkte vervanging van het abonnement
  5. Geavanceerd: standaardroutering van het account
  6. Antwoord
  7. Fouten en onzekere resultaten
  8. Controleer en stem af voordat u het opnieuw probeert

Kies het nummer en de prijs samen

Koop één specifiek nummer dat u hebt geselecteerd uit een nieuwe zoekopdracht naar beschikbare nummers. Gebruik van het geselecteerde resultaat info.uuid als nummer-ID en een van de price[].uuid-waarden van datzelfde resultaat als prijs-ID. De route accepteert ook het volledige opgeslagen nummer, maar een land-, regio- of prefix-ID vervangt de selectie van een nummer niet.

Zoeken of opgeslagen prijsgegevens lezen reserveert geen nummer en zet de prijs niet vast. Controleer de geselecteerde aansluitkosten, maandprijs, het tarief per inkomende minuut, de inbegrepen minuten en kanalen, en ook de aankooprechten en registratievereisten van het account. Het initiële basisbedrag in de onderzochte hulpfunctie bestaat uit de aansluitkosten plus de maandprijs; voor het geselecteerde abonnement moeten alle providerspecifieke kosten en voorwaarden worden bevestigd.

Dien een aankoopverzoek met controles in via POST

Gebruik een ingeschakeld API-account via HTTPS vanaf een toegestaan bron-IP-adres. De volgende opdracht voert een aankoop uit, geen offerteaanvraag of proefuitvoering. Stel elke variabele in op basis van dezelfde nieuwe nummer- en prijsselectie. De velden voor bovengrenzen behouden het oude voorvoegsel restore_quote_; het huidige portaal gebruikt ze ook voor aankopen van specifieke nummers met controles.

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  --data-urlencode "restore_quote_price_id=$PRICE_ID" \
  --data-urlencode "restore_quote_setup=$SETUP_PRICE" \
  --data-urlencode "restore_quote_monthly=$MONTHLY_PRICE" \
  --data-urlencode "restore_quote_per_minute=$PER_MINUTE_PRICE" \
  --data-urlencode "restore_quote_channels=$CHANNELS" \
  "https://api.multitel.net/v3/rentnumber/$NUMBER_ID/$PRICE_ID"

Gebruik een formulierverzoek via POST zoals getoond. De hulpfunctie kan ook JSON en een wrapper voor opties verwerken, maar dit onderzoek heeft niet vastgesteld dat alle offerte- en providerpaden daarbij volledig gelijkwaardig werken. Gebruik geen GET voor aankopen, ook al heeft deze oude coördinator geen expliciete controle op de verzoekmethode.

Aankooppad en offertevelden
VeldBetekenis
NUMBER_IDUUID van het geselecteerde nummer uit de zoekresultaten, of het volledige opgeslagen nummer. Eén nummer per verzoek.
PRICE_IDPrijs-UUID die bij het geselecteerde nummer en uw account hoort. Geef deze altijd expliciet op.
restore_quote_price_idMoet overeenkomen met de vastgestelde prijs-ID. Door dit veld op te geven schakelt u de offertecontroles in; het is geen idempotentiesleutel.
restore_quote_setupMaximaal geaccepteerde aansluitkosten, als eindige numerieke waarde groter dan of gelijk aan nul.
restore_quote_monthlyMaximaal geaccepteerde maandprijs, als eindige numerieke waarde groter dan of gelijk aan nul.
restore_quote_per_minuteMaximaal geaccepteerd tarief per inkomende minuut, als eindige numerieke waarde groter dan of gelijk aan nul.
restore_quote_channelsHet exacte gehele aantal kanalen van de geselecteerde prijsoptie, geen verzoek om een abonnement met een ander aantal kanalen.

Geef alle numerieke offertevelden op wanneer u de prijs-ID van de offerte opgeeft. Een gewijzigde ID, een prijs boven een bovengrens, een ontbrekende of ongeldige bovengrens, een gewijzigd aantal kanalen of een bezette offertevergrendeling levert API-code 409 op voordat de geselecteerde verhuurprovider wordt aangeroepen. Vergelijkingen staan een kleine tolerantie voor drijvendekommagetallen toe; gebruik de daadwerkelijk weergegeven abonnementswaarden in plaats van een handmatig afgeronde prijs.

De controles maken de volledige workflow niet tot een proefuitvoering of transactie. Het opzoeken van registraties, het aanmaken van identiteiten of andere werkzaamheden van de hulpfunctie kunnen vóór deze controles plaatsvinden. De controles zetten ook de externe nummervoorraad niet vast en vervangen geen aankoopbeperkingen op accountniveau.

Registratie en activering

Voeg indien vereist het formulierveld RegistrationID toe met de UUID van het registratieprofiel dat eigendom is van de klant. Dit is niet de ID van een geüpload bewijsstuk, een leveranciersadres of een afzonderlijke identiteitsentiteit. De hulpfunctie zoekt het profiel op binnen het geauthenticeerde account en weigert ontbrekende of niet-beschikbare profielen.

Bij sommige ondersteunde nummervoorraden is aankoop mogelijk voordat de registratie is voltooid; bij andere is vóór aankoop een profiel vereist. Validatie of technische inrichting door de betreffende telecomaanbieder kan nog steeds nodig zijn. Beschouw een geslaagde aankoop of het ontbreken van een controle vooraf niet als vrijstelling van registratie of als onmiddellijke activering.

Indien aanwezig geeft het veld registration_requirements in het antwoord de gestructureerde opzoekgegevens voor de vereisten aan, met land en nummertype. Gebruik de registratiecatalogus en de workflow voor bewijsstukken om aan de toepasselijke vereisten te voldoen. De teruggegeven tekst en metadata vormen op zichzelf geen goedkeuring van een profiel.

Voorkom ongemerkte vervanging van het abonnement

De oude coördinator kan een weggelaten prijs afleiden uit nummergegevens in de cache. Als een expliciet opgegeven prijs-ID niet meer bestaat, kan hij ook terugvallen op de nieuwste accountprijs voor een prefix in de cache en de toegestane prijsselectie in de cache bijwerken. Vertrouw niet op deze terugvalmechanismen om het abonnement te selecteren dat een klant heeft goedgekeurd.

Geef de geselecteerde prijs expliciet op, samen met de bijbehorende offertecontrolevelden. De controle op de offerte-ID weigert een terugval naar een andere ID voordat de verhuuraanvraag wordt doorgestuurd. Voer na een conflict door een verouderde prijs de zoekopdracht opnieuw uit en laat een nieuwe selectie goedkeuren, in plaats van de controles te verwijderen om de aankoop af te dwingen.

Er is geen gegarandeerde reserveringsperiode of cachelevensduur die voor elk pad consequent wordt afgedwongen. De beschikbaarheid van nummers, prijsgrenzen van het account en aankoopregels worden tijdens de workflow opnieuw gecontroleerd, maar het volledige providerspecifieke gedrag wordt nog onderzocht.

Geavanceerd: standaardroutering van het account

Een aankoop kan de bestaande spraakbestemmingen, uitwijkbestemmingen, sms-bestemming en voorkeur voor de origination-trunk van het account overnemen. Controleer deze standaardinstellingen voordat u bestelt; het weglaten van routeringsopties garandeert geen ongeconfigureerd nummer. De onderzochte hulpfunctie schakelt automatische verlenging standaard in.

Herkende routeringsopties in de gedeelde hulpfunctie
OptieHoe de waarde wordt bepaald
uri, uri2, uri3Weggelaten waarden nemen de overeenkomstige standaardinstellingen van het account over. Expliciet lege waarden wissen de waarde in de hulpfunctie in plaats van de standaardwaarde over te nemen. Gebruik geldige bestemmingen die passen bij de geselecteerde routeringsmodus.
smsuriEen weggelaten waarde neemt de sms-bestemming van het account over; een expliciet lege waarde wist deze in de hulpfunctie.
origintrunkEen herkende, expliciet opgegeven trunk-ID heeft voorrang. Een waarde die niet kan worden herleid, kan terugvallen op de accountvoorkeur of de oude standaardinstelling in plaats van een fout op te leveren.
forward_destination, forwarding_destination, typeNiet-lege aliassen voor de routeringsmodus, in deze volgorde van voorrang. Gebruik ondersteunde waarden uit de routeringsconfiguratie van het account, geen gegokte numerieke modus.
RegistrationIDOpzoeken van een registratieprofiel binnen de gegevens van de klant; dit staat los van routeringsbestemmingen.
autorenewStaat standaard op 1. De hulpfunctie controleert of een waarde niet leeg is, waardoor 0 de verlenging via dit aankoopveld niet betrouwbaar uitschakelt. Gebruik het ondersteunde verlengingsbeheer van het account en controleer de opgeslagen instelling.

Dit beschrijft de werking van de gedeelde hulpfunctie en garandeert niet dat elke leverancier elke optionele instelling op dezelfde manier opslaat. Er bestaan ook andere oude velden voor spraak, voicemail, fax en sms, maar die vereisen nog een volledig providerspecifiek onderzoek. Controleer de opgeslagen configuratie van het gekochte nummer via de accountworkflow voordat u op oproepen of berichten vertrouwt.

Antwoord

Fictief voorbeeld van een eenvoudige aankoop; waarden en functies verschillen per geselecteerd abonnement.

{
  "status": {
    "code": 200,
    "msg": ""
  },
  "response": {
    "number": "12025550123",
    "price": {
      "per_minute": "0.0100",
      "free_minutes": "100",
      "setup_price": "2.00",
      "monthly_price": "4.00",
      "channels": "2",
      "overflow": "0"
    },
    "features": [
      "voice"
    ],
    "needs_registration": 0,
    "registration_requirements": null
  }
}

De coördinator gebruikt zijn eigen status.code/status.msg en response-antwoordstructuur, zonder garantie op een status.results-veld. Bij een fout is de antwoordlijst doorgaans leeg. Controleer bij succes het teruggegeven nummer en de prijs en vergelijk deze vervolgens met de nummervoorraad en registratiestatus van het account. Acceptatie door de provider is geen praktijktest van spraak, sms of fax.

Fouten en onzekere resultaten

Belangrijkste resultaatcodes van de coördinator
API-codeBetekenis
403Prijs- of aankoopbeperkingen van het account, een niet-beschikbare prijsselectie of een ontoegankelijk registratieprofiel kunnen de verwerking blokkeren.
404Ontbrekende of niet-beschikbare nummer-, prijs- of prefixselectie.
409Het nummer is al actief, een offertecontrole komt niet meer overeen of een andere bewerking met controles houdt de vergrendeling vast.
422Registratiegegevens zijn vereist, onvolledig of kunnen niet worden ingericht via de onderzochte registratiepaden.
500 en andere provider- of accountcodesFout bij de provider, de lokale verwerking of de toepassing van beleidsregels. Deze codes bewijzen niet in alle gevallen dat er geen aankoop heeft plaatsgevonden of kosten in rekening zijn gebracht.

Lees zowel de daadwerkelijke inhoud van het API-antwoord als de HTTP-status. Een externe provider kan een verhuuraanvraag accepteren voordat de lokale melding, registratie of andere verwerking mislukt. Sommige toewijzingen uit de lokale nummervoorraad gebruiken databasetransacties, maar bestellingen bij externe providers worden niet in alle gevallen teruggedraaid. Deze coördinator heeft geen idempotentiesleutel voor de client.

Controleer en stem af voordat u het opnieuw probeert

  1. Sla het goedgekeurde nummer, de prijs en de offertebovengrenzen op in het bestelrecord van uw toepassing voordat u het verzoek één keer indient.
  2. Lees na het verzoek de voorraad gekochte nummers en de nummergegevens van hetzelfde account, ook na een time-out of fout.
  3. Als het nummer aanwezig is, controleert u de prijs, verlenging, routering en registratiestatus in plaats van nog een aankoopverzoek in te dienen.
  4. Als het resultaat nog onzeker is, laat de ondersteuning dan de providerbestelling en de facturering van het account controleren en op elkaar afstemmen voordat u het opnieuw probeert. Alleen een foutmelding of een succesindicator in een oud logboek is onvoldoende bewijs.
  5. Voer na bevestiging van eigendom en activering de gebruikelijke routeringscontroles en diensttests van het account uit.