payfyio
Providers

Parampos

Parampos (Param) payment integration reference.

Parampos (Param / TurkPos) uses a SOAP/XML web service. Requests are authenticated with your client credentials plus a per-merchant GUID.

Getting your credentials

Param issues integration credentials to registered member merchants — they are not self-service. Request them from Param (or your integrator):

  • clientCode — TurkPos CLIENT_CODE
  • clientUsernameCLIENT_USERNAME
  • clientPasswordCLIENT_PASSWORD
  • guid — your merchant GUID (required for request and 3-D hash signing)

Ask Param for test credentials for integration and a separate production set for go-live.

Configuration

parampos: {
  enabled: true,
  config: {
    apiKey: process.env.PARAMPOS_API_KEY ?? '',     // carried for shape; not used for auth
    secretKey: process.env.PARAMPOS_SECRET_KEY ?? '', // carried for shape; not used for auth
    clientCode: process.env.PARAMPOS_CLIENT_CODE!,
    clientUsername: process.env.PARAMPOS_CLIENT_USERNAME!,
    clientPassword: process.env.PARAMPOS_CLIENT_PASSWORD!,
    guid: process.env.PARAMPOS_GUID!,        // required
    testMode: true,                          // optional; defaults true
  },
}

guid is required — omitting it throws a configuration error. baseUrl defaults to https://testposws.param.com.tr/turkpos.ws/service_turkpos_prod.asmx (sandbox mode) or https://posws.param.com.tr/turkpos.ws/service_turkpos_prod.asmx (production mode).

Direct Payment (2D)

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

3D Secure

// Initialize — returns HTML form to submit
const init = await payment.parampos.initThreeDSPayment({
  ...paymentRequest,
  callbackUrl: 'https://yoursite.com/callback',
});

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

Refund & Cancel

await payment.parampos.refund({
  paymentId: 'transaction-id',
  price: '50.00',
  currency: 'TRY',
  ip: '85.34.78.112',
});

await payment.parampos.cancel({ paymentId: 'payment-id', ip: '85.34.78.112' });

BIN check

await payment.parampos.binCheck('454671');

Testing

Set mode: 'sandbox' and use the test credentials Param provides (including the test guid). The sandbox baseUrl is applied automatically. Run a 3D Secure init, complete the bank page with a Param test card, and confirm completeThreeDSPayment returns success.

Parampos does not support installment queries through this library. Contact Param directly for installment configuration.

On this page