Hoppa direkt till innehåll
api

Atlas API

Beställningar via API

API för Stadsnät:
API för Tjänsteleverantörer:

Flödeschema för TL

När en slutkund lägger en order via Tjänsteguiden så skapas en order per tjänst. Det går ett mail till Tjänsteleverantören med en länk för manuell hantering, samt en maskinellt läsbar info-del med ett Order-ID som kan användas för att hämta data om ordern via API. Vår rekommendation är att för att automatisera detta så ignorera mailet och använd metoden orders för att hämta orders sen senast ni kontrollerade.
sequenceDiagram %%{init: {"theme":"base","themeVariables":{"actorBkg":"#ff8700","actorTextColor":"#000000","labelTextColor":"#303030","signalTextColor":"#303030","loopTextColor":"#303030"}}}%% participant A as Kund participant B as Tjänsteguiden participant C as Tjänsteleverantör participant D as ON-API hos Stadsnät A->>B: Jag vill beställa Tjänst 100/100 B->>A: Vad är din adress? A->>B: Demogatan 123, Demostad note over A, B: Vilket är accessId AB123 enligt Marknadsdatabasen B->>B: Spara kund och order i databas B->>A: Tack för din beställning B-->>C: Ny beställning note over C: Detta skickas som ett mail med
information för att hämta via API alt Tjänsteleverantör agerar på mailet C->>B: Hämta beställningen C->>D: Aktivera Tjänst AB100100
på accessId AB123 end alt Tjänsteleverantör hämtar periodiskt nya beställningar C-->>B: Nya beställningar? B-->>C: Dessa är de nya beställningarna C->>D: Aktivera Tjänst AB100100
på accessId AB123 end
För TL så använder ni alltså orders för att se senast inkomna ordrar. Där ser ni ett ID per order, då använder ni order_info för att hämta information om ordern, samt customer_info för att hämta info om kunden.
När TL har hämtat ordern så använder TL metoden set_status för att sätta status till "received", på så sätt kan TL hålla reda på vilka ordrar som redan är inlästa, plus att både TL och KO kan se att ordern är mottagen. TL använder sedan set_status för att reflektera orderns status tills dess att status är "delivered".
Om ordern har status "delivered" när den läses in av TL så betyder det att tjänsten är direktaktiverad och TL behöver bara läsa in data i sitt ordersystem och hantera kunden därifrån.
Vid problem med en order så används metoden add_message för att spara ett logmeddelande på ordern med rätt typ. När ni använder status via set_status så sparas det även ett log-meddelande om att ni ändrat status. Använd add_message för att meddela KO om några problem vid den automatiska hanteringen - lita dock inte på detta som en meddelandefunktion som KO's tekniska avdelning har koll på. Var noga med att flagga ordern internt att den kan behöva manuell uppföljning.

Flödesschema för KO

I de flesta fall så är KO inte inblandad i orderhanteringen utan den är upp till TL att hantera. I vissa fall så har KO slutkundsrelation och kan därmed via sitt API hämta samma information som TL om order och kund.
Även KO har tillgång till set_status och add_message för att hantera information kring en order, samt kan se loggen och den information som TL har lagt till. KO kan till exempel sätta status till "active" när dom fått förfrågan från TL om aktivering, eller "cancelled" om något fel uppstår vid hantering av ordern.

Methods
API Endpoint: Beställningar
API för beställningar i Tjänsteguiden
Endpoint URL https://www.example.com/admin/edit/services/plain/orders
Note that this API requires an authenticated user id and IP address Note that this API requires an authenticated user id and IP address
  • Method: customer_info

  • Request Parameters
    1 api_user int green 1234 API User ID with privileges
    2 id int green 12 Customer ID, from orders() or customers()
    Endpoint example:
    GET: https://www.example.com/admin/edit/services/plain/orders?method=customer_info&api_user=1234&id=12
  • Method: orders

  • Use to fetch new orders from the system. This only returns the order data, and more info about each order is found via order_info(). Note that the valuefor delivery_date can be "asap" for "as soon as possible"
  • Request Parameters
    1 api_user int green 1234 API User with privileges
    2 date string green 2015-10-01 Show orders only from this date and later
    Endpoint example:
    GET: https://www.example.com/admin/edit/services/plain/orders?method=orders&api_user=1234&date=2015-10-01
  • Method: customers

  • Request Parameters
    1 api_user int green 1234 API User ID with privileges
    2 date string green 2015-01-01 Date from when to list new or edited customers
    Endpoint example:
    GET: https://www.example.com/admin/edit/services/plain/orders?method=customers&api_user=1234&date=2015-01-01
  • Method: set_status

  • Valid values for "status" are:
    neworder is new and unhandeled
    receivedorder is received by target (xsp)
    activeorder is being handeled
    waitingorder is pending action from other party
    cancelledorder has been cancelled
    deliveredorder has been fulfilled to end customer
  • Request Parameters
    1 api_user int green 1234 API User ID with privileges
    2 id int green 1234 ID of order
    3 status string green delivered New status for order
    Endpoint example:
    GET: https://www.example.com/admin/edit/services/plain/orders?method=set_status&api_user=1234&id=1234&status=delivered
  • Method: order_info

  • Request Parameters
    1 api_user int green 1234 API User ID with privileges
    2 id int green 12 Order ID, obtained by orders()
    Endpoint example:
    GET: https://www.example.com/admin/edit/services/plain/orders?method=order_info&api_user=1234&id=12
  • Method: add_message

  • Valid values for "type" is:
    errorThis is an error message
    alertImportant information regarding this order
    systemSystem message from activation for instance
    loggeneral message
  • Request Parameters
    1 api_user int green 1234 API User ID with privileges
    2 id int green 1234 ID of order
    3 message string green Port finns ej Member shared between XSP and KO
    4 type string green Type of message
    Endpoint example:
    GET: https://www.example.com/admin/edit/services/plain/orders?method=add_message&api_user=1234&id=1234&message=Port+finns+ej&type=Type+of+message