payfyio
Banks

Akbank

Akbank payment integration reference.

Akbank uses OAuth2 token-based authentication and supports 2D and 3D Secure payments.

Configuration

akbank: {
  enabled: true,
  config: {
    clientId: process.env.AKBANK_CLIENT_ID!,
    clientSecret: process.env.AKBANK_CLIENT_SECRET!,
    merchantSafeId: process.env.AKBANK_MERCHANT_SAFE_ID!,
    terminalSafeId: process.env.AKBANK_TERMINAL_SAFE_ID!,
    baseUrl: 'https://apiprod.akbank.com', // or sandbox URL
  },
}

Direct Payment (2D)

const result = await payment.akbank.createPayment({
  price: '100.00',
  paidPrice: '100.00',
  currency: Currency.TRY,
  installment: 1,
  paymentCard: { cardHolderName, cardNumber, expireMonth, expireYear, cvc },
  buyer: { /* ... */ },
  basketItems: [{ /* ... */ }],
});

3D Secure

// Initialize
const init = await payment.akbank.initThreeDSPayment({
  ...paymentRequest,
  callbackUrl: 'https://yoursite.com/callback',
});

// Complete (in callback)
const result = await payment.akbank.completeThreeDSPayment({
  paymentId: body.paymentId,
});

Refund & Cancel

await payment.akbank.refund({
  paymentTransactionId: 'transaction-id',
  price: '50.00',
  currency: Currency.TRY,
});

await payment.akbank.cancel({ paymentId: 'payment-id' });

On this page