payfyio
Banks

Garanti BBVA

Garanti BBVA Sanal POS (GVP) integration reference.

Garanti BBVA Sanal POS (GVP) uses XML over HTTPS with hash-based authentication. 3D Secure is delivered as an auto-submitting form to GVP's 3DEngine endpoint.

Configuration

garanti: {
  enabled: true,
  config: {
    merchantId:        process.env.GARANTI_MERCHANT_ID!,
    terminalId:        process.env.GARANTI_TERMINAL_ID!,
    provisionUser:     process.env.GARANTI_PROVISION_USER!,
    provisionPassword: process.env.GARANTI_PROVISION_PASSWORD!,
    storeKey:          process.env.GARANTI_STORE_KEY!,
    secure3DStoreKey:  process.env.GARANTI_3D_STORE_KEY,
  },
}

baseUrl defaults to https://sanalposprovtest.garantibbva.com.tr in sandbox and https://sanalposprov.garantibbva.com.tr in production.

3D Secure

const init = await payment.garanti.initThreeDSPayment({
  price: '500.00',
  currency: 'TRY',
  callbackUrl: 'https://yoursite.com/garanti/callback',
  paymentCard: { cardHolderName, cardNumber, expireMonth, expireYear, cvc },
  buyer: { /* … */ },
  basketId: 'order-1',
  /* … */
});

// init.threeDSHtmlContent → render to auto-POST to GVP's 3DEngine.

const final = await payment.garanti.completeThreeDSPayment(req.body);
// final.status === 'success' when mdStatus ∈ {1,2,3,4}

Refund / Cancel / Get

await payment.garanti.refund({ paymentId, price: '500.00', currency: 'TRY', ip: '…' });
await payment.garanti.cancel({ paymentId, ip: '…' });
await payment.garanti.getPayment(paymentId);

On this page