WfirmaOauth2

Moduł służy do podłączenia integracji z wFirma za pomocą oAuth2.

Informacje o integracji

GET /rest/wfirma_oauth2

Odpowiedź
HTTP/1.1 200 OK
{
    "results": [
        {
            "WfirmaOauth2": {
                "id": "4",
                "company_id": "73884",
                "name": "Jan Łukaszewicz",
                "lump_tax_rate": "8.5"
            }
        }
    ]
}

id - identyfikator integracji company_id - identyfikator firmy z wFirma tax_rate - wartość stawki ryczałtu (dotyczy firm z tą formą opodatkowania)

Klucz autentykacji

POST /rest/wfirma_oauth2

Za pomocą przesłanego kodu autentykacji Respondo wymieni go na tokeny dostępu access_token i refresh_token, które zapisze w bazie danych.

Treść żądania
{
    "WfirmaOauth2": {
        "auth_code": "auth-code-from-wfirma"
    }
}
Odpowiedź
HTTP/1.1 200 OK
{
    "id": "1",
    "customer_id": "1",
    "company_id": "1",
    "name": "Moja Firma",
    "modified": "2023-12-05 02:13:70",
    "modified": "2023-12-05 02:13:70"
}

Konto z więcej niż jedną firmą

W sytuacji, gdy integrowane konto ma więcej niż jedną aktywną firmę, zwrócona zostanie lista firm wraz z identyfikatorami.

Odpowiedź
HTTP/1.1 300 Multiple Choices
{
    "status": "error",
    "errorMessage": "Wybierz firmę z którą chcesz połączyć 5 ways.",
    "companies": {
        "1": {
            "company_id": "1",
            "name": "Moja firma"
        },
        "2": {
            "company_id": "2",
            "name": "Firma kolegi"
        }
    }
}

Wybór konkretnej firmy

PUT /rest/wfirma_oauth2/{id}

W przypadku zwrócenia listy firm należy przesłać jeden z otrzymanych identyfikatorów, aby zakończyć integrację. Nie jest możliwe przełączenie na inną firmę po wybraniu firmy ani zmiany nazwy integracji. W tym celu należy usunąć integrację i utworzyć nową.

Treść żądania
{
    "WfirmaOauth2": {
        "company_id": "2",
        "name": "własna nazwa integracji"
    }
}
Odpowiedź
HTTP/1.1 200 OK
{
    "status": "OK"
}

Firma z ewidencją przychodów (ryczałt)

W przypadku, gdy wybrana firma prowadzi ewidencję zryczałtowaną, zwrócona zostanie informacja z listą stawek ryczałtu oraz stawka domyślna z wFirmy.

Odpowiedź
HTTP/1.1 300 Multiple Choices
{
    "status": "error",
    "errorMessage": "Wybierz stawkę ryczałtu na potrzeby fakturowania.",
    "lump_tax_rates": [
        "3",
        "5.5",
        "8.5",
        "10",
        "12",
        "12.5",
        "14",
        "15",
        "17"
    ],
    "default_lump_tax_rate": "3"
}

W firmach z taką ewidencją należy dodatkowo przesłać wartość stawki w polu tax_rate wraz z company_id i opcjonalnie nazwą name.

PUT /rest/wfirma_oauth2/{id}

Treść żądania
{
    "WfirmaOauth2": {
        "company_id": "73884",
        "lump_tax_rate": "12.5"
    }
}
Odpowiedź
HTTP/1.1 200 OK
{
    "status": "OK"
}

W przypadku, gdy integrowane konto wFirma posiada tylko jedną firmę z ewidencją inną niż ryczałt, integracja zakończy się na jednym żądaniu, po wysłaniu samego auth_code. W przypadku, gdy konto posiada również jedną firmę z ewidencją zryczałtowaną, zostanie zwrócona lista firm z jedną pozycją. Należy wybrać tę firmę i w kolejnym kroku, gdy zostanie zwrócona lista stawek, przesłać odpowiednią stawkę.

Usuwanie integracji

DELETE /rest/wfirma_oauth2/{id}

Trwale usuwa integrację z wFirma.