Skip to content

Wstępnie autoryzowane przechwytywanie

Użyj wstępnie autoryzowanego przechwytywania, gdy klient jest obciążany (całkowicie lub częściowo) dopiero po dostarczeniu towarów lub usług.

Przepływ ten przypomina przepływ „jednorazowego zakupu”, ale wymagany jest dodatkowy krok, aby faktycznie obciążyć klienta za towary lub usługi – Capture.

Przechwycenie może dotyczyć całkowitej kwoty zakupu lub jej części, w którym to przypadku akceptowanych jest wiele przechwyceń do pełnej kwoty autoryzacji.

Przed rozpoczęciem

Stwórz zamówienie z wymaganymi danymi i zagwarantować następujące informacje:

  • Uwzględnij typ płatności, kwotę, walutę i dozwolone metody płatności;
  • Jeśli jesteś już pewien, że wymagana jest tylko płatność kartą, wpisz tylko „CARD” w liście transaction.paymentMethod ;

Upewnij się, że transaction.paymentType posiada wartość „AUTH”.

Generowanie transakcji

Należy pamiętać, że poniższe żądanie wymaga Nagłówka Autoryzacji z transactionSignature zwróconego z operacji kasowania.

W zapytaniu, Bearer Token jest zastępowany odpowiedzią checkout’u transactionSignature.

Parametry nagłówka
Content-type

string

Mandatory

application/json

Show more
Authorization

string

Mandatory

Bearer Token. Based on OAuth2 authentication performed in a pre-step.

Show more
x-ibm-client-id

string

Mandatory

Token that identifies a client organization. It is provided during onboarding process and must be used in every call.

Show more
Parametry żądania
cardInfo

object

Mandatory

Object that defines the payment operation request fields.

Show more
PAN

string <= 40 characters

Optional

The Primary Account Number (credit card number).

Show more
secureCode

string <= 40 characters

Optional

The security code (CVV/CVC) associated with the credit card.

Show more
validationDate

ISODateTime

Mandatory

The expiration date of the credit card.

Show more
cardholderName

string

Mandatory

The name of the cardholder as it appears on the credit card.

Show more
createToken

boolean

Mandatory

A flag indicating whether to create a token for future use or not (true/false).

Show more
Oto przykład:
{
    "cardInfo": {
        "PAN": "5236410030000927",
        "secureCode": "776",
        "validationDate": "2026-05-26T00:00:00.000Z",
        "cardholderName": "Jane Smith",
        "createToken": false
    }
}

Oczekiwana odpowiedź

Pomyślna odpowiedź techniczna składa się ze statusu HTTP-200 i wartości returnStatus.statusCode=”000″.

PaymentStatus w odpowiedzi informuje o tym, czy sama transakcja została zaakceptowana, odrzucona, nadal oczekuje na ostateczny wynik lub wymaga podjęcia dodatkowych działań.

  • Success: Autoryzacja została pomyślnie przetworzona, a środki klienta zostały zweryfikowane.
  • Pending: Ostateczny wynik autoryzacji nie jest jeszcze znany. Będziesz musiał sprawdzać status tej transakcji, dopóki nie osiągnie ona ostatecznego stanu lub nie zdecydujesz się jej anulować.
  • Declined: Zezwolenie zostało odrzucone.
  • Partial: Autoryzacja została częściowo zaakceptowana, ale wymaga wykonania dodatkowych czynności (np. uwierzytelnienia 3D-Secure). ActionResponse zawiera instrukcje dotyczące dalszego postępowania.

Make the future capture(s)

Przejęcie służy do zażądania rozliczenia wcześniej autoryzowanych środków.

Żądanie Capture jest wykonywane przy użyciu poprzedniej płatności pre-autoryzacji (AUTH) poprzez odniesienie do jej transactionID i wysyłanie POST zapyania po HTTPS do /payments/{transactionID}/ endpoint’u przechwytywania.

Przechwytywanie może odbywać się na różne sposoby:

  • Full: capture the full amount authorized and finish the purchase.
  • Partial: split the capture over one or several capture requests, up to the total amount authorized.
Opis przechwytywania:
OperacjaTyp operacjiMetoda działania i punkt końcowyOpis operacji
KartaPołączenie synchronicznePOST version-id/{original-tx-id}/captureŻąda przejęcia finansowego (kwota częściowa lub całkowita) związanego z poprzednim zezwoleniem.
Żądanie przechwycenia:
LokalizacjaElement danychTypStanOpis
Ścieżkaoriginal-tx-idCiągObowiązkowyOriginal Transaction Id (identyfikator transakcji oryginalnej autoryzacji).
Nagłówek żądaniaTyp zawartościCiągObowiązkowyapplication/json.
Nagłówek żądaniaautoryzacjaCiągObowiązkowyToken okaziciela. Na podstawie uwierzytelniania OAuth2 przeprowadzonego na etapie wstępnym.
Nagłówek żądaniax-ibm-client-idCiągObowiązkowyToken identyfikujący organizację klienta. Jest on podawany podczas procesu onboardingu i należy go stosować podczas każdego połączenia.
Treść żądaniasprzedawcaSprzedawcaObowiązkowyObiekt definiujący Sprzedawcę.
Zapytanie o Body.merchantterminalIdMax10NumericTextIdentyfikacja terminala handlowego
Zapytanie o Body.merchantkanałCiągKanał użyty w transakcji.
Zapytanie o Body.merchantmerchantTransactionIdCiągObowiązkowyUnikalny identyfikator transakcji z perspektywy sprzedawcy.
Treść żądaniatransakcjaTransakcjaObowiązkowyObiekt definiujący transakcję.
Żądanie Body.transactiontransactionTimeStampISODateTimeObowiązkowyZnacznik czasu transakcji.
Żądanie Body.transactionopisCiągObowiązkowyKrótki opis transakcji.
Żądanie Body.transactionilośćIlośćObowiązkowyParametr określający wartość i walutę transakcji.
Żądanie Body.transaction.amountwartośćNumer (podwójny)ObowiązkowyKwota w transakcji.
Żądanie Body.transaction.amountwalutaCurrency codeObowiązkowyWaluta użyta w transakcji. Alpha3
Treść żądaniaoriginalTransactionOriginalTransactionObowiązkowyObiekt identyfikujący pierwotną transakcję.
Request Body.originalTransactionidentyfikatorCiągObowiązkowyOryginalna identyfikacja transakcji.
Tutaj można zobaczyć przykład żądania przechwytywania:
{
    "merchant": {
        "terminalId": {{TerminalID}},
        "channel": "web",
        "merchantTransactionId": "BO_Order Id: "
    },
    "transaction": {
        "transactionTimestamp": "{{trxDatetime}}",
        "description": "Transaction short description",
        "amount": {
            "value": 1,
            "currency": "PLN"
        },
        "originalTransaction": {
            "id": "{{originalTransactionId}}"
        }
    }
}

Odpowiedź poniżej będzie zawierać identyfikator transakcji, którego możesz użyć do sprawdzenia statusu.

{
    "merchant": {
        "terminalId": "101776",
        "merchantTransactionId": "BO_Order Id: ",
        "merchantTransactionTimestamp": "2023-06-20T11:15:57.040Z"
    },
    "transactionTimestamp": "2023-06-20T11:16:14.988Z",
    "amount": {
        "value": "1",
        "currency": "PLN"
    },
    "transactionID": "RW5vBMHj4RhQWFRc0GvS",
    "execution": {
        "startTime": "2023-06-20T11:15:57.206Z",
        "endTime": "2023-06-20T11:16:15.100Z"
    },
    "paymentStatus": "Success",
    "returnStatus": {
        "statusCode": "000",
        "statusMsg": "Success",
        "statusDescription": "Success."
    }
}

Następnie, po przetworzeniu płatności, możesz sprawdzić status swojej transakcji, wysyłając żądanie GET.

Nagłówek HTTP autoryzacji jest ustawiony na token okaziciela, tak jak był używany podczas początkowej realizacji transakcji.

Zapytanie URL:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/status
Nagłówki żądań:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6I (...)
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json

Pomyślna odpowiedź techniczna składa się ze statusu HTTP-200 i wartości returnStatus.statusCode=”000″.

Oto kilka przykładów możliwych kodów wyników: