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. |
| 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. |