/Create E-Commerce payment

/Create E-Commerce payment



Request Endpoint

https://api.tbcbank.ge/v1/tpay/payments

Authorization

Authorization TypeDescription
Bearer Tokenaccess-token should be added to Authorization header

Request Parameters

Header

ParameterTypeDescription
apikeystringdeveloper app API key

Body Parameters

ParameterTypeDescription
amount (required)objecttransaction amount
- currency (required)stringtransaction currency (3 digit ISO code).
The following values are allowed:
GEL, USD, EUR

Note
● payments in given currency should be enabled for the merchant by bank.
● only "GEL" is available for payment methods:
▹ 8 - Installment
- totalnumbertotal amount of payment
- subtotalnumberamount of purchase
- taxnumberamount of tax
- shippingnumberamount of shipping price
returnurl (required)stringcallback url to redirect user after finishing payment
extrastringadditional parameter for merchant specific info (optional). only non-unicode (ANS) symbols allowed. max length 25. This parameter will appear in the account statement
expirationMinutesnumberpayment initiation expiration time in minutes.
methodsarrayThere are several payment methods available to be passed when initiating TBC E-Commerce payment.
Detailed list and description of available methods is described in the Classifications chapter/ Payment Methods
installmentProductsarraylist of installment products. mandatory if installment is selected as payment method. Please note, sum of prices of installment products should be same as total amount.
- namestringproduct description
- price (required)number (decimal)product price in lari 0.00
- quantity (required)integer (int32)number of purchased units
callbackUrlstringwhen payment status changes to final status, POST request containing PaymentId in the body will be sent to given URL. In case of successful receipt of the request, the merchant must return the status code 200 and check the payment status through GET /payments/{payment-id} endpoint. Body example {"PaymentId":"6azzo13uw5u2116332"}
callbackUrl must be added on the merchant dashboard at ecom.tbcpayments.ge.
If callbackUrl parameter is not provided, system automatically takes the basic callbackUrl value from the merchant dashboard.
Please, verify that POST request is allowed at your callbackUrl from the following IP addresses:
193.104.20.44
193.104.20.45
185.52.80.44
185.52.80.45
preAuthbooleanspecify if preauthorization is needed for the transaction. if "true" is passed, amount will be blocked on the card and additional request should be executed by merchant to complete payment. To finalize authorization process, /v1/tpay/payments/:paymentId/completion endpoint should be used. Note, that Completion request can be initiated not later than 30 days from Preauthorization date. By default block is saved for 30 days, although some banks may have a different setting, so this setting depends on the card issuing bank (Isuer Bank).

The following values are allowed:
true, false
languagestringdefault language for payment page

The following values are allowed:
KA, EN, RU
merchantPaymentIdstringMerchant-side payment identifier
skipInfoMessagebooleanIf true is passed, TBC E-Commerce info message will be skipped and customer will be redirected to merchant. If false is passed or this parameter isn’t passed at all, TBC E-Commerce info message will be shown and customer will be redirected to merchant.
saveCardbooleanSpecify if saving card funcion is needed. This function should be enabled for the merchant by bank. If true is passed, recId parameter should be returned in response, through this parameter merchant can execute payment by saved card - POST /payments/execution. Zero amount is allowed for this function. If card saving funtion is requested with preauthorization parameter=true, saved card execution method will be activated after preauthorization completion. WebQR, ApplePay and installments pay methods are not allowed for saving card request
saveCardToDatestringThe date until the card will be saved can be passed in following format "MMYY". If the saveCardToDate is not provided or data provided by the merchant exceeds card expiry , the system will automatically assign the SaveCardToDate value that will be equal to card expiry. The actual card save date must be verified by getting payment status after transaction completed with GET /payments/{payment-id}

Request Sample

{
    "amount": {
        "currency":"GEL",
        "total": 200,
        "subTotal": 0,
        "tax": 0,
        "shipping": 0
    },
    "returnurl":"test.ge/callback",
    "extra":"GE60TB4572261006330008",
    "userIpAddress" : "127.0.0.1",
    "expirationMinutes" : "12",
    "methods" : [5, 7, 8],
    "installmentProducts":
    [
       {"Name":"t1","Price":100,"Quantity":1},
       {"Name":"t1","Price":50,"Quantity":1},
       {"Name":"t1","Price":50,"Quantity":1}
    ],
    "callbackUrl":"https://test.ge", 
    "preAuth":true,
    "language":"EN",
    "merchantPaymentId": "P123123",
    "saveCard": true,
    "saveCardToDate": "1021"
}
curl --location --request POST "https://api.tbcbank.ge/v1/tpay/payments" \
    --header "Content-Type: application/json" \
    --header "apikey: lXcDL8JJiAN8Vjlu6NW3kNeceOQolwnF" \
    --header "Authorization: Bearer eyJhbGciOiJKSeriiIsImtpZCI6IjVFMjBGMzQ2RUY1RjU2ODkxQTIyRkUzQUVCRjAzMzlGMzVDNjk1QjYiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJYaUR6UnU5ZlZva2FJdjQ2Nl9Bem56WEdsYlkifQ.eyJuYmYiOjE2MzE2NDQyNjEsImV4cCI6MTYzMTczMDY2MSwiaXNzIjoiaHR0cHM6Ly9hY2NvdW50c2FwaS50YmNiYW5rLmdlLyIsImF1ZCI6WyJodHRwczovL2FjY291bnRzYXBpLnRiY2JhbmsuZ2UvcmVzb3VyY2VzIiwicGF5bWVudGFwaSJdLCJjbGllbnRfaWQiOiI3MDAwMDAyIiwic2NvcGUiOlsicGF5bWVudGFwaSJdfQ.GNIaxgik-ElXrvXOky5_1D1YjEEX5CB3eQHKPwvdCNhB-HvblqZ78QSNJcl6qLfL8gRTd0x9ASCgXu2z2RQYJ-wls0V2IwrQ7p4WEU-ON9QnasOjZWgPeVAtZQC_zjH9DdmL1GiDTIHLErhKDGl3YtSGcvPKSvTpABWda6HvF7lNGlEK0SZxzzt1i1SkpAnQfzIO1ATEmKdM1EmWzp5ZaDk0cF-Wzfk_2CrQAGofc80GT64U8WOXvVOx1gVYmjzqYs71XCOqfQdySYBIc-tbUC6YIoeSPZfu1hpi33Gz40ig57t4jxeE7Jh--38ydO4AGEw8BdlLv534O0V3ZoOddg" \
    --data "{
    \"amount\": {
        \"currency\":\"GEL\",
        \"total\": 200,
        \"subTotal\": 0,
        \"tax\": 0,
        \"shipping\": 0
    },
    \"returnurl\":\"test.ge/callback\",
    \"extra\":\"GE60TB4572261006330008\",
    \"userIpAddress\" : \"127.0.0.1\",
    \"expirationMinutes\" : \"5\",
    \"methods\" : [5, 7, 8],
    \"installmentProducts\":
    [
       {\"Name\":\"t1\",\"Price\":100,\"Quantity\":1},
       {\"Name\":\"t1\",\"Price\":50,\"Quantity\":1},
       {\"Name\":\"t1\",\"Price\":50,\"Quantity\":1}
    ],
    \"callbackUrl\":\"https://test.ge\", 
    \"preAuth\":true,
    \"language\":\"EN\",
    \"merchantPaymentId\": \"P123123\",
    \"saveCard\": true,
    \"saveCardToDate\": \"1021\"
}
"

Response Parameters

ParameterTypeDescription
payIdstringpayment id
statusstringpayment status

The following values are allowed:
Created
currencystringtransaction currency (3 digit ISO code)
amountnumbertransaction amount
linksobjectlinks
- uristringurl
- methodstringmethod to use on URL
- relstringaction to use on URL
transactionIdstringtransaction_id from UFC
recIdstringin case of recurring payment registration, recId of saved card. recId should be used for executing recurring payment.
preAuthstringpreauthorization status for given payment (true, false)
httpStatusCodestringhttp status code
developerMessagestringdeveloper message for logging in local system
userMessagestringerror message for user

Response Sample

"payId": "tpay-tbvqma2372015",
  "status": "Created",
  "currency": "GEL",
  "amount": 200,
  "links": [
    {
      "uri": "https://api.tbcbank.ge/v1/tpay/payments/tpay-tbvqma2372015",
      "method": "GET",
      "rel": "self"
    },
    {
      "uri": "https://tpay.tbcbank.ge/checkout/choose-payment-method/tpay-tbvqma2372015",
      "method": "REDIRECT",
      "rel": "approval_url"
    }
  ],
  "transactionId": null,
  "preAuth": true,
  "recId": "8715aBbB4314e7dC4f91482283988365a3c30822",
  "httpStatusCode": 200,
  "developerMessage": null,
  "userMessage": null
}

Error Response

In case of error, standard response in problem json will be returned.

Details can be found at Error Code Description