Dostęp do konta i projektu
Korzystaj z aktywnego konta API przez HTTPS, z dozwolonego adresu IP. Projekt musi należeć do tego konta i nie może być usunięty. Użyj unikatowego identyfikatora projektu z procesu obsługi zlecenia przeniesienia numerów, a nie jego liczbowego identyfikatora w bazie danych ani numeru telefonu. Podczas tworzenia żądania zakoduj identyfikator projektu do użycia w adresie URL.
Żądanie
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/v3/lnp/project/$PROJECT_ID"Traktuj tę odpowiedź jako poufną
Pełna odpowiedź zawiera dane rozliczeniowe u dotychczasowego operatora, w tym zapisaną wartość billing_pin, konto rozliczeniowe, telefon, adres, dane firmy oraz upoważnionej osoby kontaktowej. API nie maskuje tych pól. Pobieraj tylko status lub listę numerów, jeśli to wystarcza w danym procesie. Nie umieszczaj pełnej odpowiedzi ze szczegółami w pamięci przeglądarki, systemach analitycznych, publicznych dziennikach ani na zrzutach ekranu dla pomocy technicznej. Udostępniaj wyłącznie pola potrzebne uprawnionemu klientowi.
Struktura odpowiedzi
Fikcyjny przykład z wybranymi polami; odpowiedź może zawierać dodatkowe pola.
{
"status": {
"code": 200,
"msg": "Project Detail"
},
"response": {
"project": {
"id": 11,
"uniqueid": "PROJECT_EXAMPLE",
"project_name": "Example transfer",
"location": "US",
"status": 0,
"status_str": "Pending"
},
"counts": {
"total": 0,
"pending": 0,
"in_progress": 0,
"completed": 0,
"rejected": 0
},
"numbers": [],
"events": [],
"uploads": []
}
}Ten celowo niepełny przykład pomija wszystkie dane uwierzytelniające do rozliczeń oraz osobowe dane kontaktowe. Ich pominięcie w przykładzie nie oznacza, że są ukrywane w rzeczywistej odpowiedzi.
| Sekcja | Zawartość |
|---|---|
| project | Liczbowy identyfikator rekordu, unikatowy identyfikator projektu, nazwa projektu, lokalizacja, zapisane dane rozliczeniowe, kontaktowe i adresowe, czas utworzenia oraz wyliczony status. Starsze pole określające dotychczasowego operatora ma pisownię loosing_carrier. |
| counts | Łączna liczba rekordów numerów oraz liczniki statusów Pending, In Progress, Completed i Rejected. |
| numbers | Ten sam zestaw pól numerów co w punkcie końcowym listy numerów projektu, obejmujący komentarze klienta i zapisane wartości harmonogramu. |
| events | Zapisane rekordy zdarzeń oraz pola z surową i sparsowaną treścią danych, z uwzględnieniem ograniczeń widoczności i formatu obowiązujących w punkcie końcowym zdarzeń. |
| uploads | Metadane dokumentu: liczbowy identyfikator, upload_type, file_name, file_extension, date_created oraz względny adres w polu download_url. Ten adres URL nadal wymaga uwierzytelnienia konta. |
Interpretacja podsumowania i metadanych
Przy wyliczaniu statusu pierwszeństwo ma In Progress, następnie Pending, potem Completed i Rejected, a wartością zastępczą jest Pending. Status podsumowania Completed może występować także wtedy, gdy niektóre numery zostały odrzucone. Sprawdzaj liczniki i statusy poszczególnych numerów, zamiast zakładać, że przeniesienie każdego numeru zostało zakończone.
Odpowiedź zawiera metadane dokumentów, a nie bajty plików. Nie udostępnia stronicowania ani kursora przyrostowego. Zapytania o szczegóły i listy stanowią oddzielne odczyty, a nie jeden obraz danych z gwarancją spójności transakcyjnej. Daty pozostają w zapisanej postaci; nie udokumentowano konwersji strefy czasowej. W ścieżkach projektu używaj uniqueid; liczbowy identyfikator projektu nie może być używany zamiennie.
Błędy i ograniczenia
Sprawdzaj zarówno odpowiedź HTTP, jak i status.code/status.msg. W przypadku projektu, który nie istnieje, został usunięty lub nie należy do konta, zwracany jest kod API 404 z komunikatem o nieznalezieniu projektu. Obowiązują również wymagania uwierzytelniania i ograniczenia źródłowego adresu IP. Przykłady nie wykonują rzeczywistego żądania, a pomyślna odpowiedź nie dowodzi, że operator zaakceptował lub zakończył przeniesienie.
Skutki i przebieg procesu
Jest to kanoniczna ścieżka szczegółów używana przez widok zlecenia przeniesienia numerów w obecnym portalu. Portal mapuje pola na potrzeby swojego interfejsu i stosuje własny zestaw danych dla klienta; nie zakładaj, że surowa odpowiedź API jest identyczna z danymi JSON portalu lub ich prezentacją. Sprawdzona procedura obsługi szczegółów nie modyfikuje projektu ani nie inicjuje bezpośrednio żądania do operatora lub obciążenia opłatą.