Wstęp

API Endpoint
    https://api.sellly.io
                    

Niniejsza dokumentacja pokazuje, jak w prosty sposób zintegrować Sellly we własnej aplikacji. Nasze API w kombinacji wielu operatorów (m.in. CashBill, Stripe) pozwoli obsługiwać i księgować wszystkie metody płatności w jednym miejscu.

Żeby korzystać z naszego API, potrzebujesz Shop ID i Secret Key. Skontaktuj się z nami jeśli go nie otrzymałeś(-aś) lub potrzebujesz jakiejkolwiek pomocy.

Nowa płatność

                        
# Example curl test payment
curl \
-X POST https://api.sellly.io/pay \
-d 'shop_id=SHOP_ID' \
-d 'secret_key=SECRET_KEY' \
-d 'operator=cashbill' \
-d 'currency_code=PLN' \
-d 'price=1.23' \
-d 'language_code=pl' \
-d 'buyer_email=test@test.pl' \
-d 'ip=IP'
                        
                    

Rozpoczęcie nowej transakcji następuje po wysłaniu zapytania metodą POST na adres:
https://api.sellly.io/pay


                        
Przykładowa odpowiedź:
{
    status: 200,
    id: "XXXXXXXXXXXXXXXXXXX",
    redirect_url: "https://pay.cashbill.pl/pl/payment/XXXXXXXXXX...",
    message: "Płatność została wygenerowana, trwa przekierowywanie..."
}
                        
                    

DANE

Nazwa Rodzaj Opis
shop_id String Identyfikator przydzielony na etapie uruchomienia sklepu.
secret_key String Tajny klucz szyfrujący (256-bitowy) służący do autoryzacji.
operator String Identyfikator pośrednika płatności. Dostępne wartości to: cashbill (BLIK, szybkie przelewy, Paysafecard, PayPal) i stripe (karty płatnicze, międzynarodowe metody płatności).
currency_code String Kod waluty zgodny z ISO 4217. Dostępne wartości to: PLN, USD i EUR. Waluta musi być aktywna.
price Integer Kwota transakcji w postaci wartości dziesiętnej z kropką jako separatorem.
language_code String Kod języka w którym zostanie wygenerowana płatność. Dostępne wartości to: pl i en.
buyer_email String Adres e-mail kupującego.
ip String Adres IP kupującego.
currency_converter_code String (opcjonalnie) Kod waluty na którą zostanie wykonana konwersja z currency_code wg aktualnego kursu. Dostępne wartości to: PLN. Waluta musi być aktywna.
payment_method String (opcjonalnie) Predefiniowany identyfikator kanału płatności, np. blik, paysafecard lub paypal (CashBill)/card (Stripe PLN)/card, ideal, giropay, eps lub bancontact (Stripe EUR). Jeżeli nie podano, to kupujący zostanie przekierowany na stronę wyboru kanału płatności pośrednika płatności.

Notyfikacje

                        
// Example notification endpoint
app.get('/test-notification-address', (req, res) => {
    var data = req['query'];

    if (data['secret_key'] &&
            data['id'] &&
            data['operator'] &&
            data['operator_id'] &&
            data['payment_channel'] &&
            data['email'] &&
            data['status']
        ) {
        if (data['secret_key'] === SECRET_KEY) {
            console.log(data['secret_key'],
                    data['id'],
                    data['operator'],
                    data['operator_id'],
                    data['payment_channel'],
                    data['email'],
                    data['status']
                );
            // Positive authorized transaction
            // Remember to check status!

            res.send('OK');
        } else {
            res.status(500);
            res.send('Value "secret_key" is invalid (negative authorization).');
        }
    } else {
        res.status(500);
        res.send('No required data for payment authorization.');
    }
});
                        
                    

Na wspólnie ustalony adres przesyłana jest informacja o transakcji metodą GET.
Po odebraniu danych trzeba wysłać odpowiedź o treści: OK (status HTTP/200 OK). Jakakolwiek inna odpowiedź będzie traktowana jako błąd. W przypadku błędu komunikat będzie wysyłany ponownie, aż do uzyskania poprawnej odp.


PARAMETRY

Parametr Rodzaj Opis
secret_key String Tajny klucz szyfrujący (256-bitowy) służący do autoryzacji.
id String ID transakcji wygenerowane przez Sellly.
operator String Identyfikator pośrednika płatności (cashbill/stripe).
operator_id String ID transakcji przydzielone przez pośrednika.
payment_channel String Identyfikator kanału płatności, np. blik, mtransfer, paysafecard lub paypal.
email String Adres e-mail kupującego.
status String Finalny status płatności (OK/ERR). Nie ulegnie zmianie.

Kody błędów

W przypadku błędu ustawiany jest status HTTP 500 i zwracany następujący komunikat błędu:

Kod Znaczenie
600 Brak wymaganych danych do inicjacji płatności.
601 Podany sklep nie istnieje.
602 Wartość secret_key jest nieprawidłowa.
603 Wartość operator jest nieprawidłowa.
604 Wartość currency_code jest nieprawidłowa.
605 Wartość price jest nieprawidłowa.
606 Wartość language_code jest nieprawidłowa.
607 Wartość buyer_email jest nieprawidłowa.
608 Wartość ip jest nieprawidłowa.
609 Wartość currency_converter_code jest nieprawidłowa.
610 Wartość operator jest nieprawidłowa.
699 Błąd w komunikacji z pośrednikiem płatności.