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— TurkPosCLIENT_CODEclientUsername—CLIENT_USERNAMEclientPassword—CLIENT_PASSWORDguid— 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.