allegro / allegro-api

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

[NEWS] Podzielona płatność (split payment) - nowy typ płatności / Split payment - a new type of payment #2398

Open MaciejFrackowiak opened 5 years ago

MaciejFrackowiak commented 5 years ago

Od 1.11.2019 dla zasobów:

udostępnimy nową wartość pola “payment.type”: "SPLIT_PAYMENT".

Zmianę wykonujemy, ponieważ 1 listopada w Allegro udostępnimy Podzieloną płatność (z ang. split payment). Split payment polega na tym, że płatność za fakturę jest podzielona na kwotę netto i kwotę podatku VAT, który trafia na osobny rachunek VAT. Ustawa z dnia 9 sierpnia 2019 r. o zmianie ustawy o podatku od towarów i usług oraz niektórych innych ustaw wprowadza od 1.11.2019 roku obowiązek stosowania podzielonej płatności dla określonych transakcji.

Więcej informacji o podzielonej płatności znajdziesz 1 listopada na stronie aktualności Allegro oraz w Pomocy Allegro.


On November 1, 2019 in response to resources:

we will release a new value in a field “payment.type”: “SPLIT_PAYMENT”.

We are introducing these changes due to release of split payment on November 1, 2019. The payment for the invoice is divided into the net amount and the amount of VAT, transferred to a separate VAT account. Act of August 9, 2019 about change in Act of Value Added Tax and other acts introduces from November 1, 2019 an obligation to use split payment for specific transactions.

You will find more information about split payment introduced on November 1, 2019 on Allegro news page and Allegro Help.

ghost commented 5 years ago

@MaciejFrackowiak a co ze starym webAPI do pobierania zamówień? Też się to pojawi?

MaciejFrackowiak commented 5 years ago

@SebastianOzdoba Nie, zmiana nie zostanie wdrożona w WebAPI.

kormichu commented 5 years ago

@MaciejFrackowiak jak będzie wyglądać taka podzielona płatność w przykładowym response ? W metodzie /order/checkout-forms/{id} jest miejsce tylko dla pojedynczej transakcji w polu payment: https://developer.allegro.pl/documentation/#operation/getOrdersDetailsUsingGET . Czy płatność klienta będzie jakoś rozdzielona na 2 osobne transakcje z czego druga wylądowałaby na liście w polu surcharges ? Bo nie widzę innego miejsca żebyście mogli takie transakcje umieścić. Druga sprawa to zastanawiam się do czego takie informacje naszemu klientowi są potrzebne i czy prezentować je w jakieś innej formie niż dotychczasowe płatności. Przecież cały mechanizm split paymentu jest po Waszej stronie

rtnet-pl commented 5 years ago

Nie znalazłem informacji jak to ma działać - przyjmujecie dla wszystkich produktów VAT 23%? Czy też pojawi się możliwość zmiany stawki VAT w ofercie?

MaciejFrackowiak commented 5 years ago

@kormichu Przykładowy response::

{
   "id": "26e25e40-ef37-11e9-9999-6f8ede0eca82",
   "messageToSeller": null,
   "buyer": {
       "id": "54901258",
       "email": "c65oveug13+8faf07a3@allegro.pl",
       "login": "allegro",
       "firstName": "Jan",
       "lastName": "Kwiatkoski",
       "companyName": null,
       "guest": false,
       "personalIdentity": null,
       "phoneNumber": "+381 11 1111111",
       "address": {
           "street": "Grunwaldzka 182",
           "city": "Workspace",
           "postCode": "11-111",
           "countryCode": "PL"
       }
   },
   "payment": {
       "id": "286a84e2-ef37-11e9-832b-418e82ac02bf",
       "type": "SPLIT_PAYMENT",
       "provider": "OFFLINE",
       "finishedAt": "2019-10-15T10:38:45.941Z",
       "paidAmount": null
   },
   "status": "READY_FOR_PROCESSING",
   "delivery": {
       "address": {
           "firstName": "Jan",
           "lastName": "Kwiatkoski",
           "street": "Grunwaldzka 182",
           "city": "Workspace",
           "zipCode": "11-111",
           "countryCode": "PL",
           "companyName": null,
           "phoneNumber": "+381 11 1111111"
       },
       "method": {
           "id": "c8be0338-63f9-42d8-bc78-ee2bd45980b6",
           "name": "Kurier DHL"
       },
       "pickupPoint": null,
       "cost": {
           "amount": "750.00",
           "currency": "PLN"
       },
       "smart": false,
       "time": {
           "guaranteed": null
       },
       "calculatedNumberOfPackages": 15
   },
   "invoice": {
       "required": true,
       "address": {
           "street": "Grunwaldzka 182",
           "city": "Workspace",
           "zipCode": "11-111",
           "countryCode": "PL",
           "company": {
               "name": "firma allegro",
               "taxId": "8888888888"
           },
           "naturalPerson": null
       }
   },
   "lineItems": [
       {
           "id": "26e23730-ef37-11e9-9999-6f8ede0eca82",
           "offer": {
               "id": "8246744931",
               "name": "drogi przedmiot",
               "external": null
           },
           "quantity": 15,
           "originalPrice": {
               "amount": "1000.00",
               "currency": "PLN"
           },
           "price": {
               "amount": "1000.00",
               "currency": "PLN"
           },
           "selectedAdditionalServices": [],
           "boughtAt": "2019-10-15T10:38:43.607Z"
       }
   ],
   "surcharges": [],
   "discounts": [],
   "summary": {
       "totalToPay": {
           "amount": "15750.00",
           "currency": "PLN"
       }
   }
}

Ten typ płatności nie będzie rozliczany online poprzez Allegro Finanse. Kwotę należności kupujący przelewa na konto zgodnie z instrukcją, jaką otrzyma od sprzedającego. Oznacza to, że nie zaktualizujemy automatycznie statusu płatności w Allegro Finanse.

MaciejFrackowiak commented 5 years ago

@rtnet-pl Ceny w Allegro podawane są jako brutto. Jeśli kupujący zdecyduje się zapłacić za transakcję przy użyciu Podzielonej płatności, należy wystawić fakturę za zrobiony zakup lub wysłać kupującemu dane niezbędne do wykonania przelewu (w tym kwotę brutto i kwotę VAT).

kormichu commented 5 years ago

@MaciejFrackowiak no to zgłaszam że w payment.provider w dokumentacji nie ma wartości: OFFLINE https://developer.allegro.pl/documentation/#operation/getOrdersDetailsUsingGET

ghost commented 5 years ago

@MaciejFrackowiak jak rozumiem zostanie też wprowadzona logika na poziomie samego serwisu Allegro, w kontekście przepisów split payment? Czyli jeśli transakcja > 15k lub kupujemy "towary specjalne objęte split payment" to nie da się zapłacić np. PayU ?

MaciejFrackowiak commented 5 years ago

@kormichu Zmiana wchodzi w życie 1 listopada 2019, dlatego dokumentacja obecnie nie jest zmieniona.

MaciejFrackowiak commented 5 years ago

@SebastianOzdoba Aby podzielona płatność była możliwa do zrealizowania muszą zostać spełnione warunki:

ghost commented 5 years ago

@MaciejFrackowiak ja znam przepisy, prośba o odpowiedź na pytanie, czy będzie logika na poziomie samego serwisu. p.s Kwota faktury nie musi wynosić 15k jeśli w koszyku znajdzie się produkt "specjalny"

MaciejFrackowiak commented 5 years ago

@SebastianOzdoba Podzielona płatność jako metoda płatności pojawi się tylko, gdy spełnione zostaną warunki ustawowe.

imper86 commented 5 years ago

@MaciejFrackowiak ale @SebastianOzdoba pytał też czy w takim przypadku będzie też zablokowana możliwość skorzystania z PayU/Przelewy24

MaciejFrackowiak commented 5 years ago

@imper86 Wybór metody płatności to świadoma decyzja kupującego (to on decyduje czy chce fakturę, czy kupuje na firmę) - dlatego kafelki z szybki przelew, karta płatnicza czy Blik też będą dostępne. Z naszej strony informujemy o możliwej konieczności skorzystania z podzielonej płatności.

imper86 commented 5 years ago

@MaciejFrackowiak no i o taką informację chodziło, dzieki.

ghost commented 5 years ago

@MaciejFrackowiak Ok, rozumiem to proszę o info jak zadziała scenariusz

  1. chcę fakturę (jestem firmą), kupuje za 15k, wpadam w splitpayment, zakłądam że spełniam wszystkie warunki ustawowe
  2. wybieram BLIK lub jakikolwiek kanał ONLINE na GUI Allegro
  3. jak to sie zachowa dla Klienta? Co zobaczy Klient na GUI Allegro
  4. co otrzymamy z restAPI na zamówieniu, payment_type: SPLIT_PAYMENT czy payment_type: BLIK? Czy ja dobrze rozumiem że to sam kupujący zdecyduje czy chce SPLIT czy nie a jak wybierze BLIK to nie bedzie SPLIT :) ?
MaciejFrackowiak commented 5 years ago

@SebastianOzdoba Podczas zakupu przy wyborze metody płatności kupujący zobaczy komunikat: “Jeśli kupujesz na firmę lub chcesz otrzymać fakturę, może okazać się, że za to zamówienie powinieneś zapłacić przez podzieloną płatność (split payment).” I tak jak wspomniałem - wybór metody płatności to świadoma decyzja kupującego. Jeśli wybierze płatność przez Allegro Finanse to tak zostanie przeprocesowana płatność. Zatem w REST API ujrzysz typ płatności adekwatny do wybranej metody płatności.

TomekDuszynski commented 5 years ago

@MaciejFrackowiak w sandboxie dla zamówienia z wybraną metodą płatności split payment API zwraca status zamówienia jako "READY_FOR_PROCESSING". Czy to celowe działanie czy błąd?

MaciejFrackowiak commented 5 years ago

@TomekDuszynski Tak, to prawidłowy, finalny status zamówienia ze split payment.

alekskuc commented 4 years ago

@MaciejFrackowiak Dzień dobry proszę o dodanie zmian do dokumentacji w pliku swagger.yaml celem wygenerowania kodu z nową płatnością.

MaciejFrackowiak commented 4 years ago

@alekskuc Postaramy się dokonać zmian w najbliższym czasie.

alekskuc commented 4 years ago

Dzień dobry, @MaciejFrackowiak w dalszym ciągu nie ma SPLIT_PAYMENT w dokumentacji rest api swagger.yaml.

    CheckoutFormPaymentType:
      description: Payment type
      type: string
      enum:
        - CASH_ON_DELIVERY
        - WIRE_TRANSFER
        - ONLINE
    CheckoutFormPaymentProvider:
      description: Payment provider
      type: string
      enum:
        - P24
        - PAYU
    CheckoutFormDeliveryReference:
MaciejFrackowiak commented 4 years ago

@alekskuc Potwierdzam - postaramy się w tym tygodniu to uzupełnić.

alekskuc commented 4 years ago
"payment": {
       "id": "286a84e2-ef37-11e9-832b-418e82ac02bf",
       "type": "SPLIT_PAYMENT",
       "provider": "OFFLINE",
       "finishedAt": "2019-10-15T10:38:45.941Z",
       "paidAmount": null
   },

Biorąc pod uwagę podany wcześniej powyższy fragment kodu czy dokumentacja dla checkoutfrom będzie wyglądała następująco?

    CheckoutFormPaymentType:
      description: Payment type
      type: string
      enum:
        - CASH_ON_DELIVERY
        - WIRE_TRANSFER
        - ONLINE
        - SPLIT_PAYMENT
    CheckoutFormPaymentProvider:
      description: Payment provider
      type: string
      enum:
        - P24
        - PAYU
        - OFFLINE
    CheckoutFormDeliveryReference:
MaciejFrackowiak commented 4 years ago

Dokładnie tak.

alekskuc commented 4 years ago

Mam taką sugestię żeby było działanie rest api spójne z CASH_ON_DELIVERY, to provider OFFLINE nie powinien istnieć w ogóle dla SPLIT_PAYMENT też w provider zwracać NULL.

Przykład z sandboxa:

"payment": {
                "id": "6f2e5e72-174a-11ea-9b06-61414de06f2b",
                "type": "CASH_ON_DELIVERY",
                "provider": null,
                "finishedAt": "2019-12-05T10:31:49.039Z",
                "paidAmount": null
            },
MaciejFrackowiak commented 4 years ago

@alekskuc Twoje spostrzeżenie przekazałem jako sugestię do osób bezpośrednio odpowiedzialnych za rozwój REST API.

MaciejFrackowiak commented 4 years ago

@alekskuc Dokumentacja uzupełniona.

alekskuc commented 4 years ago

Ok, dziękuję @MaciejFrackowiak widzę, że jest dodane SPLIT_PAYMENT jest i provider OFFLINE.