Tpay
API

Konta Sprzedawców

Program Partnerski to forma współpracy z firmami oferującymi różnorodne usługi, takie jak wdrożenia rozwiązań e-commerce u swoich klientów czy tworzenie własnych rozwiązań marketplace. W ramach programu Partner poleca usługi Tpay i zarabia określony procent od każdej faktury poleconego przez siebie klienta.

Aby korzystać z Marketplace Tpay, musisz być w Programie Partnerskim Tpay. Jeśli nie masz jeszcze statusu partnera – dowiedz się, jak dołączyć do Programu.

Instrukcję uruchamiania i obsługi płatności marketplace Tpay w Panelu Partnera znajdziesz tutaj.

Autoryzacja

Jako Partner możesz wygenerować dostępy do rejestracji sprzedawców po API z poziomu swojego Panelu Partnera w zakładce API -> Partner API.

Zakładka pozwoli Ci na wygenerowanie dostępów do komunikacji po API, pozwalających na dostęp do metody accounts.

Aby wygenerować klucze dostępu do API, należy kliknąć przycisk Dodaj nowy klucz.

Zostaną wygenerowane:

  • Client ID.
  • Secret.

W celu autoryzacji w API sprawdź instrukcję Pierwsze kroki > Autoryzacja.

Rejestracja konta sprzedawcy

Oprócz generowania linków afiliacyjnych w Panelu Partnera, pozwalających na samodzielną rejestrację nowego sprzedawcy przez formularz rejestracyjny Tpay, system oferuje API rejestracji. Posiadając adres email sprzedawcy oraz wcześniej wygenerowany kod oferty możesz wysłać żądanie metodą POST na adres:

https://api.tpay.com/v1/accounts/merchant

Pozostałe pola są opcjonalne.

Sprawdź szczegóły w dokumentacji API Reference: POST /v1/accounts/merchant

W zapytaniu określ następujące parametry:

offerCode
Kod oferty, pod który zostanie przypisane konto.
email
Adres email sprzedawcy.
taxId
Numer identyfikacji podatkowej (NIP dla polskich podmiotów).
regon
Numer Regon.
krs
Numer KRS.
legalForm
Forma działalności gospodarczej zobacz lista form działalności.
categoryId
Kategoria prowadzonej sprzedaży zobacz lista kategorii sprzedaży.
address[].name
Nazwa firmy.
address[].street
Ulica.
address[].houseNumber
Numer domu.
address[].flatNumber
Numer mieszkania.
address[].postalCode
Kod pocztowy.
address[].city
Miasto.
address[].country
Kraj.
address[].phone
Telefon.
address[].isMain
Podany adres jest adresem głównym. Jeśli przesłano tylko adres główny, staje się on domyślnie używanym również do faktur i korespondencji. Zestaw danych może zawierać maksymalnie po jednym adresie z każdego rodzaju.
address[].isCorrespondence
Podany adres służy do korespondencji.
address[].isInvoice
Podany adres służy do faktur.
website[].url
Adres URL punktu sprzedaży.
website[].name
Nazwa punktu sprzedaży.
contactPerson[].name
Imię osoby kontaktowej.
contactPerson[].surname
Nazwisko osoby kontaktowej.
contactPerson[].phone
Telefon osoby kontaktowej.
contactPerson[].email
Adres email osoby kontaktowej.
merchantApiConsent
Zgoda na pozyskanie danych dostępowych do API w odpowiedzi na żądanie. Jeśli sprzedawca ją wyraził, wyślij true, aby uzyskać klucze API sprzedawcy potrzebne do automatycznej integracji.

Podstawowe body żądania powinno wyglądać następująco:

{
  "offerCode": "9u7UP",
  "email": "[email protected]"
}

Po wysłaniu żądania otrzymasz w odpowiedzi schemat MerchantCreated

{
  "result": "success",
  "id": "01JQ404XV7KJPRD5PHFFZ6R9YR",
  "offerCode": "9u7UP",
  "email": "[email protected]",
  "taxId": null,
  "regon": null,
  "krs": null,
  "legalForm": null,
  "categoryId": null,
  "verified": false,
  "activationLink": "https://panel.tpay.com/Auth/Account/Activate/xyz123",
  "website": [
    {
      "posId": "01JQ404XVJBPR066ZK1XX5A0A0",
      "accountId": "01JQ404XV7KJPRD5PHFFZ6R9YR",
      "name": "",
      "friendlyName": "",
      "description": "",
      "url": "",
      "date": {
        "create": "2025-03-24 12:56:00",
        "modification": null
      },
      "settings": {
        "confirmationCode": "i3DCcHbIA_81rI@FeP4$+LMScK2X#T_|",
        "isTestMode": true
      },
      "verificationScope": 0,
      "verificationDate": null,
      "verificationStatus": 0
    }
  ],
  "address": [
    {
      "addressId": "ar_8OqmRLlQoV9eXgdx",
      "friendlyName": "-",
      "name": "-",
      "street": "-",
      "houseNumber": "",
      "flatNumber": "",
      "postalCode": "-",
      "city": "-",
      "country": "PL",
      "phone": "",
      "isMain": true,
      "isCorrespondence": true,
      "isInvoice": true
    }
  ],
  "person": []
}
Uwaga

Na środowisku testowym (Sandbox) część danych sprzedawcy zostanie automatycznie uzupełniona losowymi danymi w celu automatycznej aktywacji konta.

Przykładowe rozbudowane żądanie rejestracji wygląda następująco:

{
  "offerCode": "9u7UP",
  "email": "[email protected]",
  "taxId": "7773061579",
  "regon": "30087843700000",
  "krs": "0000412357",
  "legalForm": 36,
  "categoryId": 60,
  "address": [
    {
      "name": "Example Sp. z o.o.",
      "street": "ul. Przykładowa",
      "houseNumber": "44b",
      "flatNumber": "1",
      "postalCode": "11-111",
      "city": "Warszawa",
      "country": "PL",
      "phone": "123123123",
      "isMain": true,
      "isCorrespondence": true,
      "isInvoice": true
    }
  ],
  "website": [
    {
      "url": "http://przykladowezakupy.pl",
      "name": "Przykładowe zakupy online"
    }
  ],
  "contactPerson": [
    {
      "name": "Jan",
      "surname": "Kowalski",
      "phone": "123123123",
      "email": "[email protected]"
    }
  ],
  "merchantApiConsent": true
}

Po wysłaniu żądania otrzymasz w odpowiedzi schemat MerchantCreated

{
  "result": "success",
  "id": "01JVVCFMWT0QCGDFM7HB9SJXWT",
  "offerCode": "9u7UP",
  "email": "[email protected]",
  "taxId": "7773061579",
  "regon": "30087843700000",
  "krs": "0000412357",
  "legalForm": 36,
  "categoryId": 60,
  "verified": false,
  "activationLink": "http://docker.pop.com:81/Auth/Account/Activate/7a86870f6ab05385ddcae991a8e5e831",
  "website": [
    {
      "posId": "01JVVCFMX8ZGGV4E33ZYSXZMT8",
      "accountId": "01JVVCFMWT0QCGDFM7HB9SJXWT",
      "name": "Przykładowe zakupy online",
      "friendlyName": "",
      "description": "",
      "url": "http://przykladowezakupy.pl",
      "date": {
        "create": "2025-05-22 08:56:53",
        "modification": null
      },
      "settings": {
        "confirmationCode": "M6(d5QU+3P!57N2(C294#J^XN$2=WgZl",
        "isTestMode": true
      },
      "verificationScope": 0,
      "verificationDate": null,
      "verificationStatus": 0
    }
  ],
  "address": [
    {
      "addressId": "ar_vM9jQLGqBVK01aAp",
      "friendlyName": "Example Sp. z o.o.",
      "name": "Example Sp. z o.o.",
      "street": "ul. Przykładowa",
      "houseNumber": "44b",
      "flatNumber": "1",
      "postalCode": "11-111",
      "city": "Warszawa",
      "country": "PL",
      "phone": "123123123",
      "isMain": true,
      "isCorrespondence": true,
      "isInvoice": true
    }
  ],
  "person": [
    {
      "personId": "pr_P0jrvklnKGxgDZye",
      "name": "Jan",
      "surname": "Kowalski",
      "contacts": [
        {
          "contact": "123123123",
          "type": 2
        },
        {
          "contact": "[email protected]",
          "type": 1
        }
      ],
      "isBeneficiary": false,
      "isRepresentative": false,
      "isContactPerson": true,
      "isAuthorizedPerson": false
    }
  ],
  "transactionApiCredentials": {
    "apiKey": "string",
    "apiPassword": "string",
    "merchantId": 12345
  },
  "apiCredentials": [
    {
      "clientId": "string",
      "clientSecret": "string"
    }
  ]
}

Klucze dostępowe do API sprzedawców

Jeśli w zapytaniu wykonującym rejestrację nowego konta sprzedawcy przesłany zostanie parametr merchantApiConsent z wartością true, to system Tpay automatycznie wygeneruje dane dostępowe sprzedawcy i zwróci je w odpowiedzi. Dane te są wymagane do integracji w większości systemów ecommerce, a ich zwrócenie w tej formie pozwala na automatyzację integracji konta sprzedawcy z Twoim systemem sprzedażowym. Zwracane są klucze odpowiednio dla nowego API (Open API) oraz klucze do starego API (Origin API). Hasła zwracane w odpowiedzi są widoczne tylko raz w formie jawnej. Jeśli zostaną utracone, konieczne będzie zresetowanie hasła bądź wygenerowanie nowego klucza przez sprzedawcę w Panelu Akceptanta.

{
  "apiCredentials": [
    {
      "clientId": "string",
      "clientSecret": "string"
    }
  ],
  "transactionApiCredentials": {
    "merchantId": "12345",
    "apiKey": "string",
    "apiPassword": "string"
  }
}

Lista form działalności

Możesz rozszerzyć zakres danych wysyłanych podczas rejestracji sprzedawcy o formę jego działalności gospodarczej. W tym celu wyświetl mu listę wyboru lub zmapuj posiadane dane na typy działalności w systemie Tpay.

Aby uzyskać listę, możesz wysłać żądanie metodą GET na adres:

https://api.tpay.com/accounts/legalForm

Sprawdź szczegóły w dokumentacji API Reference: GET /accounts/legalForm

Po wysłaniu żądania otrzymasz w odpowiedzi schemat LegalFormListResultResponse

{
  "result": "success",
  "requestId": "c8bebb07b6fc0a3613ae",
  "list": [
    {
      "id": 2,
      "name": "jednoosobowa działalność gospodarcza"
    },
    {
      "id": 3,
      "name": "fundacja"
    }
  ]
}

Lista kategorii sprzedaży

Możesz rozszerzyć zakres danych wysyłanych podczas rejestracji sprzedawcy o kategorię jego sprzedaży, czyli branżę. W tym celu wyświetl mu listę wyboru lub zmapuj posiadane dane na typy sprzedaży w systemie Tpay.

Aby uzyskać listę, możesz wysłać żądanie metodą GET na adres:

https://api.tpay.com/accounts/category

Sprawdź szczegóły w dokumentacji API Reference: GET /accounts/category

Po wysłaniu żądania otrzymasz w odpowiedzi schemat CategoryListResultResponse

{
  "result": "success",
  "requestId": "c1e31156cf99ad6a4425",
  "list": [
    {
      "id": 60,
      "name": "Sklepy  usługi sportowe"
    },
    {
      "id": 61,
      "name": "Zdrowie i uroda"
    }
  ]
}

Pobieranie danych kont sprzedawców

Aby uzyskać listę kont sprzedawców zarejestrowanych dotychczas, możesz wysłać żądanie metodą GET na adres:

https://api.tpay.com/accounts

Sprawdź szczegóły w dokumentacji API Reference: GET /accounts

Po wysłaniu żądania otrzymasz w odpowiedzi schemat AccountListResultResponse

{
  "list": [
    {
      "result": "success",
      "requestId": "376f310aba18a2ed6389",
      "id": "01GM5QNY2SANHEXFK6FEV2DWYD",
      "offerCode": "PFA7M",
      "email": "[email protected]",
      "taxId": "7773061579",
      "regon": "",
      "krs": "",
      "legalForm": 20,
      "categoryId": 66,
      "verificationStatus": 0,
      "activationLink": "https://panel.tpay.com/Auth/Account/Activate/123xyz",
      "website": [
        {
          "posId": "01GM5QNY2N7Z4BKTAH8JJAXX25",
          "accountId": "01GM5QNY2SANHEXFK6FEV2DWYD",
          "name": "Przykladowe Zakupy Online",
          "friendlyName": "",
          "description": "Zakupy online - rtv i agd",
          "url": "https://przykladowezakupy.pl",
          "date": {
            "create": "2022-12-13 13:34:46",
            "modification": "2023-02-13 14:23:34"
          },
          "settings": {
            "confirmationCode": "txf&#YE37gxq8f5q+*gC7q>%hq*6o",
            "isTestMode": false
          },
          "verificationScope": 0,
          "verificationDate": "0000-00-00 00:00:00",
          "verificationStatus": 0
        }
      ],
      "person": [
        {
          "personId": "pr_X9x61ZG9KJrqPOAN",
          "name": "John",
          "surname": "Doe",
          "nationality": "",
          "sharesPct": 0,
          "pesel": "",
          "isBeneficiary": false,
          "isRepresentative": false,
          "isContactPerson": true,
          "isAuthorizedPerson": false,
          "pepStatement": 0,
          "dateOfBirth": null,
          "countryOfBirth": "",
          "typeOfDocument": 0,
          "serialNumber": "",
          "expiryDate": null,
          "issuingAuthority": "",
          "contact": [
            {
              "contact": "987654321",
              "type": 2
            },
            {
              "contact": "[email protected]",
              "type": 1
            }
          ]
        }
      ],
      "address": [
        {
          "addressId": "ar_e1Z3xlEEDBElXngY",
          "friendlyName": "Adres Korespondencyjny",
          "name": "Example Sp. z o.o.",
          "street": "Ul. Jelenia",
          "houseNumber": "123",
          "roomNumber": "",
          "postalCode": "54-134",
          "postOffice": "",
          "city": "Warszawa",
          "country": "PL",
          "phone": "",
          "isMain": true,
          "isCorrespondence": true,
          "isInvoice": true
        }
      ],
      "transactionApiCredentials": {
        "merchantId": 12345,
        "apiKey": "string"
      },
      "apiCredentials": []
    }
  ],
  "result": "success",
  "requestId": "376f310aba18a2ed6389",
  "page": 1,
  "limit": 35,
  "total": 1
}

Znając identyfikator konta sprzedawcy zwrócony przy rejestracji przez API lub pobrany powyższą metodą, możesz również odpytać API Tpay o szczegóły konkretnego konta.

W tym celu możesz wysłać żądanie metodą GET na adres:

https://api.tpay.com/accounts/{accountId}

Sprawdź szczegóły w dokumentacji API Reference: GET /accounts/{accountId}

Po wysłaniu żądania otrzymasz w odpowiedzi schemat Account

{
  "result": "success",
  "requestId": "376f310aba18a2ed6389",
  "id": "01GM5QNY2SANHEXFK6FEV2DWYD",
  "offerCode": "PFA7M",
  "email": "[email protected]",
  "taxId": "7773061579",
  "regon": "",
  "krs": "",
  "legalForm": 20,
  "categoryId": 66,
  "verificationStatus": 0,
  "activationLink": "https://panel.tpay.com/Auth/Account/Activate/123xyz",
  "website": [
    {
      "posId": "01GM5QNY2N7Z4BKTAH8JJAXX25",
      "accountId": "01GM5QNY2SANHEXFK6FEV2DWYD",
      "name": "Przykladowe Zakupy Online",
      "friendlyName": "",
      "description": "Zakupy online - rtv i agd",
      "url": "https://przykladowezakupy.pl",
      "date": {
        "create": "2022-12-13 13:34:46",
        "modification": "2023-02-13 14:23:34"
      },
      "settings": {
        "confirmationCode": "txf&#YE37gxq8f5q+*gC7q>%hq*6o",
        "isTestMode": false
      },
      "verificationScope": 0,
      "verificationDate": "0000-00-00 00:00:00",
      "verificationStatus": 0
    }
  ],
  "person": [
    {
      "personId": "pr_X9x61ZG9KJrqPOAN",
      "name": "Jan",
      "surname": "Kowalski",
      "nationality": "",
      "sharesPct": 0,
      "pesel": "",
      "isBeneficiary": false,
      "isRepresentative": false,
      "isContactPerson": true,
      "isAuthorizedPerson": false,
      "pepStatement": 0,
      "dateOfBirth": null,
      "countryOfBirth": "",
      "typeOfDocument": 0,
      "serialNumber": "",
      "expiryDate": null,
      "issuingAuthority": "",
      "contact": [
        {
          "contact": "987654321",
          "type": 2
        },
        {
          "contact": "[email protected]",
          "type": 1
        }
      ]
    }
  ],
  "address": [
    {
      "addressId": "ar_e1Z3xlEEDBElXngY",
      "friendlyName": "Adres Korespondencyjny",
      "name": "Example Sp. z o.o.",
      "street": "Ul. Jelenia",
      "houseNumber": "123",
      "roomNumber": "",
      "postalCode": "54-134",
      "postOffice": "",
      "city": "Warszawa",
      "country": "PL",
      "phone": "",
      "isMain": true,
      "isCorrespondence": true,
      "isInvoice": true
    }
  ],
  "transactionApiCredentials": {
    "merchantId": 12345,
    "apiKey": "string"
  },
  "apiCredentials": []
}