allegro / allegro-api

Issue tracker and wiki for Allegro REST API
https://developer.allegro.pl/
217 stars 39 forks source link

[NEWS] Dodaj fakturę do zamówienia / Add an invoice to the order #4130

Open MaciejFrackowiak opened 3 years ago

MaciejFrackowiak commented 3 years ago

Już w lutym 2021, wraz ze startem Allegro Biznes, udostępnimy nowe zasoby, dzięki którym dodasz i pobierzesz fakturę do zamówienia:

Przykładowy request:

curl -X POST \ 
‘https://api.allegro.pl/order/checkout-forms/a8320af2-5f01-11eb-bbeb-112e13b418c5/invoices' \
-H ‘Accept: application/vnd.allegro.public.v1+json’ \
-H ‘Content-Type: application/vnd.allegro.public.v1+json’ \  
-H ‘Authorization: Bearer {token}’ \
-d ‘{
  "file": {
    “name”: "faktura.pdf"          - wymagane, nazwa pliku
  },
  "invoiceNumber": "FV 01/2020"    - niewymagane, nr faktury
}’

Przykładowy response:

{ 
  "id": "56ae349d-8045-4bb3-adcc-7cf6fb420f61"     - identyfikator faktury
} 

Przykładowy request:

curl -X PUT \
‘https://api.allegro.pl/order/checkout-forms/a8320af2-5f01-11eb-bbeb-112e13b418c5/invoices/56ae349d-8045-4bb3-adcc-7cf6fb420f61/file' \
-H ‘Accept: application/vnd.allegro.public.v1+json’ \
-H ‘Content-Type: application/pdf’ \
-H ‘Authorization: Bearer {token}’ \
-d 'data=@faktura.pdf’

Przykładowy request:

curl -X GET \
‘https://api.allegro.pl/order/checkout-forms/a8320af2-5f01-11eb-bbeb-112e13b418c5/invoices' \
-H ‘Accept: application/vnd.allegro.public.v1+json’ \
-H ‘Authorization: Bearer {token}’

Przykładowy response:

{
 “invoices”: [
    {
     "id": "56ae349d-8045-4bb3-adcc-7cf6fb420f61",        - identyfikator faktury
     "invoiceNumber": "FV 01/2020",                       - nr faktury
     "createdAt": "2021-01-07T15:50:00.000Z",             - data dodania faktury
     "file": {
         "name": "faktura.pdf",                           - nazwa pliku
         "uploadedAt": "2021-01-07T15:50:00.000Z",        - data dodania pliku
         "securityVerification": {                
             "status": "ACCEPTED",                        - status weryfikacji antywirusowej pliku, 
                                                          dostępne wartości: WAITING, ACCEPTED, REJECTED.
             "verifiedAt": "2021-01-07T15:51:00.000Z"     - data weryfikacji
         }
     },
     "eptVerification": {                                 - obiekt przyjmuje wartość null dla metod 
                                                          płatności innych niż płatność odroczona
         "status": "ACCEPTED",                            - status weryfikacji faktury dla 
                                                          płatności odroczonej, dostępne 
                                                          wartości: WAITING, ACCEPTED, REJECTED.
         "verifiedAt": "2021-01-07T15:58:00.000Z",        - data weryfikacji
         "reason": null                                   - powód odrzucenia faktury, jeśli
                                                          status weryfikacji to REJECTED.
     }
    }
 ]
}  

Already in February 2021, with the launch of Allegro Biznes, we will introduce new resources, thanks to which you will add and download an invoice to the order:

Sample request:

curl -X POST \ 
‘https://api.allegro.pl/order/checkout-forms/a8320af2-5f01-11eb-bbeb-112e13b418c5/invoices' \
-H ‘Accept: application/vnd.allegro.public.v1+json’ \
-H ‘Content-Type: application/vnd.allegro.public.v1+json’ \  
-H ‘Authorization: Bearer {token}’ \
-d ‘{
  "file": {
    “name”: "example-invoice.pdf"          - required, file name
  },
  "invoiceNumber": "FV 01/2020"            - not required, invoice number
}’

Sample response:

{ 
  "id": "56ae349d-8045-4bb3-adcc-7cf6fb420f61"     - invoice id
} 

Sample request:

curl -X PUT \
‘https://api.allegro.pl/order/checkout-forms/a8320af2-5f01-11eb-bbeb-112e13b418c5/invoices/56ae349d-8045-4bb3-adcc-7cf6fb420f61/file' \
-H ‘Accept: application/vnd.allegro.public.v1+json’ \
-H ‘Content-Type: application/pdf’ \
-H ‘Authorization: Bearer {token}’ \
-d 'data=@example-invoice.pdf’

Sample request:

curl -X GET \
‘https://api.allegro.pl/order/checkout-forms/a8320af2-5f01-11eb-bbeb-112e13b418c5/invoices' \
-H ‘Accept: application/vnd.allegro.public.v1+json’ \
-H ‘Authorization: Bearer {token}’

Sample response:

{
 “invoices”: [
    {
     "id": "56ae349d-8045-4bb3-adcc-7cf6fb420f61",        - invoice id
     "invoiceNumber": "FV 01/2020",                       - invoice number
     "createdAt": "2021-01-07T15:50:00.000Z",             - invoice creation date
     "file": {
         "name": "example-invoice.pdf",                   - file name
         "uploadedAt": "2021-01-07T15:50:00.000Z",        - upload date
         "securityVerification": {                
             "status": "ACCEPTED",                        - file antivirus verification status,
                                                          available values: WAITING, ACCEPTED, REJECTED.
             "verifiedAt": "2021-01-07T15:51:00.000Z"     - verification date
         }
     },
     "eptVerification": {                                 - object is null for payment methods 
                                                          other Extended Payment Terms
         "status": "ACCEPTED",                            - invoice verification for Extended Payment
                                                          Terms, available values: WAITING, ACCEPTED,
                                                          REJECTED.
         "verifiedAt": "2021-01-07T15:58:00.000Z",        - verification date
         "reason": null                                   - the reason for the rejection of the invoice, 
                                                          if verification status is REJECTED.
     }
    }
 ]
}   
rtnet-pl commented 3 years ago

Niestety nie mogę użyć tego zasobu, dostaję błędy 403 i 405:

GET https://api.allegro.pl.allegrosandbox.pl/order/checkout-forms/ec3fa512-03b5-11eb-9f72-01d2d14a21e7/invoices HTTP/1.1
Accept: application/vnd.allegro.public.v1+json
Content-Type: application/vnd.allegro.public.v1+json
Authorization: Bearer ********
Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7
Host: api.allegro.pl.allegrosandbox.pl
Connection: Close

--------------------

HTTP/1.1 403 Forbidden
trace-id: 8e9dc500c32d1053
content-type: application/json; charset=utf-8
content-length: 140
date: Mon, 01 Feb 2021 15:02:50 GMT
connection: close

{"errors":[{"code":"AccessDenied","message":"Access is denied","details":null,"path":null,"userMessage":"Brak dostępu do danego zasobu."}]}
PUT https://api.allegro.pl.allegrosandbox.pl/order/checkout-forms/ec3fa512-03b5-11eb-9f72-01d2d14a21e7/invoices HTTP/1.1
Accept: application/vnd.allegro.public.v1+json
Content-Type: application/vnd.allegro.public.v1+json
Authorization: Bearer  ***** ***
Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7
Host: api.allegro.pl.allegrosandbox.pl
Content-Length: 73
Expect: 100-continue
Connection: Close

{"file":{"name":"DokumentSprzedazy.pdf"},"invoiceNumber":"PA 13/02/2021"}

------------------------------

HTTP/1.1 405 Method Not Allowed
trace-id: 76b3147a4ebf3072
content-type: application/json; charset=utf-8
content-length: 147
date: Mon, 01 Feb 2021 15:01:36 GMT
connection: close

{"errors":[{"code":"NotAllowedException","message":"The HTTP method is not allowed","details":null,"path":null,"userMessage":"An error occurred"}]}
MaciejFrackowiak commented 3 years ago

@rtnet-pl Jest to prawidłowe zachowanie - zgodnie z komuniatem te zasoby zostaną dopiero udostępnione wraz ze startem Allegro Biznes. Wczoraj zamieściliśmy wyłącznie informacje, abyście mogli się przygotować na ich obsługę.

rtnet-pl commented 3 years ago

Na produkcji mam od wczoraj allegro biznes, na sandbox nie. Nadal mam te same błędy.

AureliuszBrussy commented 3 years ago

@rtnet-pl sprawdziłem przed chwilą działanie tych zasobów na sandboxie i produkcji - wszystko działa prawidłowo. Czy możesz przesłać przykładowy request i response?

rtnet-pl commented 3 years ago

Poniżej:

PUT https://api.allegro.pl.allegrosandbox.pl/order/checkout-forms/ec3fa512-03b5-11eb-9f72-01d2d14a21e7/invoices HTTP/1.1
Accept: application/vnd.allegro.public.v1+json
Content-Type: application/vnd.allegro.public.v1+json
Authorization: Bearer xxxx
Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7
Host: api.allegro.pl.allegrosandbox.pl
Content-Length: 73
Expect: 100-continue
Connection: Close

{"file":{"name":"DokumentSprzedazy.pdf"},"invoiceNumber":"PA 13/02/2021"}

------------------

HTTP/1.1 405 Method Not Allowed
trace-id: 92074246fb28ec3a
content-type: application/json; charset=utf-8
content-length: 147
date: Fri, 12 Feb 2021 10:33:49 GMT
connection: close

{"errors":[{"code":"NotAllowedException","message":"The HTTP method is not allowed","details":null,"path":null,"userMessage":"An error occurred"}]}
GET https://api.allegro.pl.allegrosandbox.pl/order/checkout-forms/263ef2b1-6c5d-11eb-a7d7-3b881e349990/invoices HTTP/1.1
Accept: application/vnd.allegro.public.v1+json
Content-Type: application/vnd.allegro.public.v1+json
Authorization: Bearer xxxx
Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7
Host: api.allegro.pl.allegrosandbox.pl
Connection: Close

---------------------

HTTP/1.1 404 Not Found
trace-id: e5e598724c553b7d
content-type: application/json
date: Fri, 12 Feb 2021 10:33:50 GMT
connection: close
Content-Length: 225

{"errors":[{"code":"ORDER-NOT-FOUND","message":"Order with id [263ef2b1-6c5d-11eb-a7d7-3b881e349990] not found","details":null,"path":"/order/checkout-forms/263ef2b1-6c5d-11eb-a7d7-3b881e349990/invoices","userMessage":null}]}
AureliuszBrussy commented 3 years ago

@rtnet-pl w pierwszym requeście powinieneś użyć metodę POST.

GET /order/checkout-forms/{id}/invoices możesz użyć, gdy już utworzysz obiekt faktury do zamówienia.

rtnet-pl commented 3 years ago

Dziękuję, przeszło. Gdzie w panelu (sprzedawcy lub klienta) mogę podejrzeć przesłane dokumenty?

AureliuszBrussy commented 3 years ago

@rtnet-pl w tym momencie Sprzedający i Kupujący nie może podejrzeć załączonego pliku z fakturą z poziomu panelu Allegro. Kupujący otrzyma powiadomienie e-mailowe z plikiem.

AureliuszBrussy commented 3 years ago

@rtnet-pl przepraszam, pomyłka - sprzedający może pobrać dodaną do zamówienia fakturę w zakładce "Zamówienia". Kupujący aktualnie nie ma takiej możliwości.

barthoos commented 3 years ago

Kupujący aktualnie nie ma takiej możliwości.

Tzn wrzucamy faktury dla kupujacego, ktory ich nie widzi? To jaki tego sens?

AureliuszBrussy commented 3 years ago

@barthoos aktualnie kupujący mogą już pobrać dodaną fakturę VAT w zakładce Moje zakupy. Wcześniej otrzymywali ją tylko w wiadomości e-mail.

barthoos commented 3 years ago

OK, dzieki. W takim razie nie ma tematu.

maniootek commented 8 months ago

jak dodam obiekt faktury ale nie prześlę pliku to klient coś zobaczy? jak załączyć plik w zapytaniu http? trzeba go jakoś przekonwertować na tekst?

MaciejFrackowiak commented 8 months ago

@maniootek Klient zobaczy dokument dopiero, gdy przekażesz plik z fakturą. Zapoznaj się proszę z naszym poradnikiem, gdzie opisaliśmy kolejne kroki.

maniootek commented 8 months ago

czy da się w ramach wielu kont Allegro zarejestrowanych na ten sam NIP oraz połączonych ze sobą wysyłać faktury za pomocą jednego tokena dla jednego z wielu kont? tak jak jest zrobione w zasobie z dyskusjami

MaciejFrackowiak commented 8 months ago

@maniootek Nie, nie ma takiej możliwości.