1.0.4 • Published 4 years ago

@papara/papara v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

Table of Contents

Intro

Enums

Account

Banking

Cash Deposit

Mass Payment

Recurring Mass Payment

Payments

Validation

Response Types

Intro

Integrating Papara into your software requires following;

  1. Obtain your API Key. So Papara can authenticate integration’s API requests. To obtain your API Key, follow https://merchant.test.papara.com/ URL. After sucessfully logged in, API Key can be viewed on https://merchant.test.papara.com/APIInfo

  2. Install client library. So your integration can interact with the Papara API. Install operations are like following.

Configuration

Sample usage:

const client = new PaparaClient("YOUR_API_KEY");
const result = await client.accountService.getAccount();

Installation

# Install via npm
npm install --save @papara/papara

or

# Or install via yarn
yarn add @papara/papara

Enums

CashDepositProvisionStatus

When a cash deposit request was made, following statuses will return and display the status of provision.

KeyValueDescription
Pending0Cash deposit is pending provision.
Complete1Cash Deposit is completed
Cancel2Cash Deposit is cancelled
ReadyToComplete3Cash Deposit is ready for completion

Currency

All currencies on the API are listed below.

KeyValueDescription
TRY0Turkish Lira
USD1U.S Dollar
EUR2Euro

EntryType

Entry types are used in ledgers and cash deposits in order to track the money in the operation. Possible entry types are listed below.

KeyValueDescription
BankTransfer1Bank Transfer: Cash deposit or withdrawal
CorporateCardTransaction2Papara Corporate Card Transaction: Transaction which was operated by corporation card assigned to merchant
LoadingMoneyFromPhysicalPoint6Loading Money From Physical Point: Cash deposit operation from contracted location
MerchantPayment8Merchant Payment: Checkout via Papara
PaymentDistribution9Payment Distribution: Masspayment via papara
EduPos11Offline payment. EDU POS via Papara

PaymentMethod

Three types of payment is accepted in the system. Possible payment methods are listed below.

KeyValueDescription
PaparaAccount0Papara Account Balance
Card1Registered Credit Card
Mobile2Mobile Payment

PaymentStatus

After a payment was done, API returns the payment status which are shown below.

KeyValueDescription
Pending0Payment waiting
Completed1User completed the payment
Refunded2Order refunded

Account

This part contains the technical integration information prepared for the use of the account and balance information of the merchant. Account and balance information on Papara account can be retrieved by Account service. Developers can also retrieve the balance history, which contains a list of transactions that contributed to the balance.

Get Account Information

Returns the merchant account and balance information. Balance information contains current balance, available funds and unavailable funds, whilst account information contains brand name and full title of the merchant. To perform this operation use getAccount method on Account service.

Account Model

Account contains account information that returns from API.

Variable NameTypeDescription
LegalNamestringGets or sets merchant’s company title.
BrandNamestringGets or sets brand name.
AllowedPaymentTypesanyGets or sets allowed payment types.
BalancesanyGets or sets account balances

AllowedPaymentType

AllowedPaymentType displays allowed payment types.

Variable NameTypeDescription
PaymentMethodnumberReturns payment method.0 - Papara Account Balance 1 - Credit/Debit Card 2 - Mobile - Mobile Payment.

AccountBalance

AccountBalance shows current balance figures and lists three types of balances and general currency.

Variable NameTypeDescription
currencynumberGets or sets currency
totalBalancenumberGets or sets total balance
lockedBalancenumberGets or sets locked balance
availableBalancenumberGets or sets available balance

Service Method

Purpose

Return account information and current balance for authorized merchant.

MethodParamsReturn Type
getAccountNonePaparaSingleResult

Usage

function getAccount() {
    const result = await client.accountService.getAccount();
    return result;
}

List Ledgers

Returns the merchant account history (list of transactions) in paged format. This method is used for listing all transactions made for a merchant including resulting balance for each transaction. To perform this operation use listLedgers method on Account service. startDate and endDate should be provided.

AccountLedger

AccountLedger represents a transaction itself that returns from API.

Variable NameTypeDescription
idnumberGets or sets merchant ID
createdAtDateGets or sets created date of a ledger
entryTypeEntryTypeGets or sets entry type
entryTypeNamestringGets or sets entry type name
amountnumberGets or sets amount
feenumberGets or sets fee
currencynumberGets or sets currency
currencyInfoCurrencyInfoGets or sets currency information
resultingBalancenumberGets or sets resulting balance
descriptionstringGets or sets description
massPaymentIdstringGets or sets mass payment Id. It is the unique value sent by the merchant to prevent duplicate repetition in payment transactions. It is displayed in transaction records of masspayment type in account transactions to ensure control of the transaction. It will be null in other payment types.
checkoutPaymentIdstringGets or sets checkout payment ID. It is the ID field in the data object in the payment record transaction. It is the unique identifier of the payment transaction. It is displayed in transaction records of checkout type in account transactions. It will be null in other payment types.
checkoutReferenceIDstringGets or sets checkout reference ID. This is the referenceId field sent when creating the payment transaction record. It is the reference information of the payment transaction in the merchant system. It is displayed in transaction records of checkout type in account transactions. It will be null in other payment types

CurrencyInfo

CurrencyInfo represents the currency information available in a ledger that returns from API.

Variable NameTypeDescription
currencyEnumCurrencyGets or sets currency type.
symbolstringGets or sets currency symbol
codestringGets or sets currency code
preferredDisplayCodestringGets or sets currency's preferred display code
namestringGets or sets currency name
isCryptoCurrencybooleanGets or sets if it is a cryptocurrency or not
precisionnumberGets or sets currency precision
iconUrlstringGets or sets currency icon URL

LedgerListOptions Model

LedgerListOptions is used by account service for providing request parameters for ledger listing operation.

Variable NameTypeDescription
startDatestringGets or sets start date for transactions
endDatestringGets or sets end date for transactions
entryTypenumberGets or sets entry types
accountNumbernumberGets or sets merchant account number
pagenumberGets or sets the requested page number. If the requested date has more than 1 page of results for the requested pageSize, use this to iterate through pages
pageSizenumberGets or sets number of elements you want to receive per request page. Min=1, Max=50

Service Method

Purpose

Returns list of ledgers for authorized merchant.

MethodParamsReturn Type
listLedgersLedgerListOptionsPaparaListResult

Usage

function listLedgers() {
	const result = await client.accountService.listLedgers({
    	startDate: new Date(2020, 1, 1).toISOString(),
    	endDate: new Date().toISOString(),
   		page: 1,
   	 	pageSize: 20
  	});
    return result;
}

Get Settlement

Calculates the count and volume of transactions within the given time period. To perform this operation use GetSettlement method on Account service. startDate and endDate should be provided.

Settlement Model

Settlement is used by account service to match returning settlement values API.

Variable NameTypeDescription
countnumberGets or sets transaction count
volumenumberGets or sets transaction volume

SettlementGetOptions Model

SettlementGetOptions is used by account service for providing settlement request parameters.

Variable NameTypeDescription
startDatestringGets or sets start date for transactions
endDatestringGets or sets end date for transactions
entryTypeEntryTypeGets or sets entry types

Service Method

Purpose

Returns settlement for authorized merchant.

MethodParamsReturn Type
getSettlementSettlementGetOptionsPaparaSingleResult

Usage

function listLedgers() {
	const result = await client.accountService.getSettlement({
    	startDate: new Date(2020, 1, 1).toISOString(),
    	endDate: new Date().toISOString()
 	});
	return result;
}

Banking

This part contains technical integration information prepared for merchants those who want to quickly and securely list their bank accounts with Papara and/or create a withdrawal request to their bank accounts.

Get Bank Accounts

Retrieves registered bank accounts of the merchant. To perform this operation use getBankAccounts method on Banking service.

BankAccount Model

BankAccount contains bank account information.

Variable NameTypeDescription
bankAccountIdnumberGets or sets merchant's bank account ID
bankNamestringGets or sets merchant bank name
branchCodestringGets or sets merchant branch code
ibanstringGets or sets IBAN Number
accountCodestringGets or sets merchant account code
descriptionstringGets or sets description
currencystringGets or sets currency

Service Method

Purpose

Returns bank accounts for authorized merchant.

MethodParamsReturn Type
getBankAccountsPaparaArrayResult

Usage

function getBankAccounts() {
    var result = await client.bankingService.getBankAccounts();
    return result;
}

Withdrawal

Generates withdrawal requests for merchants. To perform this operation use withdrawal method on Banking service.

BankingWithdrawalOptions

BankingWithdrawalOptions is used by banking service for providing request parameters.

Variable NameTypeDescription
bankAccountIdnumberGets or sets target bank account id which money will be transferred to when withdrawal is completed.It will be obtained as a result of the request to list bank accounts.
amountnumberGets or sets withdrawal amount

Service Method

Purpose

Creates a withdrawal request from given bank account for authorized merchant.

MethodParamsReturn Type
withdrawalBankingWithdrawalOptionsPaparaSingleResult

Usage

function withdrawal() {
	var bankAccountResult = await client.bankingService.getBankAccounts();

	if (bankAccountResult.data.length > 0) {
    var bankAccount = bankAccountResult.data[0];

    var result = await client.bankingService.withdrawal({
      amount: 10,
      bankAccountId: bankAccount.bankAccountId
    });
  }
    return result;
}

Possible Errors and Error Codes

Error CodeError Description
105Insufficient funds.
115Requested amount is lower then minimum limit.
120Bank account not found.
247Merchant's account is not active.

Cash Deposit

With the integration of Papara physical point, you can become a money loading point and earn money from which end users can load balance to their Papara accounts. Physical point integration methods should only be used in scenarios where users load cash to Papara accounts.

Get Cash Deposit Information

Returns cash deposit information. To perform this operation use getCashDeposit method on Cash Deposit service. id should be provided.

CashDeposit Model

CashDeposit is used by cash deposit service to match returning cash deposit values from API

Variable NameTypeDescription
merchantReferencestringGets or sets merchant reference code
idnumberGets or sets cash deposit ID
createdAtDateGets or sets created date of cash deposit
amountnumberGets or sets amount of cash deposit
currencynumberGets or sets currency of cash deposit
feenumberGets or sets fee of cash deposit
resultingBalancenumberGets or sets resulting balance in merchant's account
descriptionstringGets or sets description

CashDepositGetOptions

CashDepositGetOptions is used by cash deposit service for providing request parameters

Variable NameTypeDescription
idnumberGets or sets cash deposit ID

Service Method

Purpose

Returns a cash deposit information

MethodParamsReturn Type
getCashDepositCashDepositGetOptionsPaparaSingleResult

Usage

function getCashDeposit() {
    const result = await client.cashDepositService.getCashDeposit({
    	id: 123456789 // cash deposit ID
 	 });
    return result;
}

Create Cash Deposit With Phone Number

It deposits money to the user from the physical point. using user’s phone number. To perform this operation use createWithPhoneNumber method on Cash Deposit service. phoneNumber, amount and merchantReference should be provided.

CashDepositToPhoneOptions

CashDepositToPhoneOptions is used by cash deposit service for providing request parameters.

Variable NameTypeDescription
phoneNumberstringGets or sets phone number. The mobile phone number registered in the Papara account of the user to be loaded with cash.
amountnumberGets or sets amount. The amount of the cash deposit. This amount will be transferred to the account of the user who received the payment. The amount to be deducted from the merchant account will be exactly this number.
merchantReferencestringGets or sets merchant reference. The unique value sent by the merchant to prevent false repetitions in cash loading transactions. If a previously submitted and successful merchantReference is resubmitted with a new request, the request will fail. MerchantReference sent with failed requests can be resubmitted.

Service Method

Purpose

Creates a cash deposit request using end users's phone number.

MethodParamsReturn Type
createWithPhoneNumberCashDepositToPhoneOptionsPaparaSingleResult

Usage

function createWithPhoneNumber() {
    const result = await client.cashDepositService.createWithPhoneNumber({
    	phoneNumber: config.PersonalPhoneNumber,
    	amount: 10,
        merchantReference: uuidv4() //random number generator method, place actual merchant reference here
  	});
    return result;
}

Get Cash Deposit By Reference

Returns the information of the money loading process from the physical point with the merchant reference information. To perform this operation use getCashDepositByReference method on Cash Deposit service. reference should be provided.

CashDepositByReferenceOptions

CashDepositByReferenceOptions is used by cash deposit service for providing request parameters.

Variable NameTypeDescription
referencestringGets or sets cash deposit reference no. Reference no is required.

Service Method

Purpose

Returns a cash deposit object using merchant's unique reference number.

MethodParamsReturn Type
getCashDepositByReferenceCashDepositByReferenceOptionsPaparaSingleResult

Usage

function getCashDepositByReference() {
    var result = await client.cashDepositService.getCashDepositByReference({
    	reference: "78cadfb9-71d1-42dd-9793-84e90af53b07"
 	});
    return result;
}

Create Cash Deposit With Account Number

Deposits money to the user with Papara number from the physical point. To perform this operation use createWithAccountNumber on Cash Deposit service. accountNumber, amount and merchantReference should be provided.

CashDepositToAccountNumberOptions

CashDepositToAccountNumberOptions is used by cash deposit service for providing request parameters.

Variable NameTypeDescription
accountNumbernumberGets or sets account number. Papara account number of the user who will be loaded with cash.
amountnumberGets or sets amount. The amount of the cash deposit. This amount will be transferred to the account of the user who received the payment. The amount to be deducted from the merchant account will be exactly this number.
merchantReferencestringGets or sets merchant reference. The unique value sent by the merchant to prevent false repetitions in cash loading transactions. If a previously submitted and successful merchantReference is resubmitted with a new request, the request will fail. MerchantReference sent with failed requests can be resubmitted.

Service Method

Purpose

Creates a cash deposit request using end user's account number.

MethodParamsReturn Type
createWithAccountNumberCashDepositToAccountNumberOptionsPaparaSingleResult

Usage

function createWithAccountNumber() {
	const result = await client.cashDepositService.createWithAccountNumber({
    	accountNumber: config.PersonalAccountNumber,
   	 	amount: 10,
    	merchantReference: uuidv4() //random number generator method, place actual merchant reference here
  	});
    return result;
}

Create Cash Deposit With National Identity Number

Deposits money to the user with national identity number registered in Papara from the physical point. To perform this operation use createWithTckn on Cash Deposit service. tckn, amount and merchantReference should be provided.

CashDepositToTcknOptions

CashDepositToTcknOptions is used by cash deposit service for providing request parameters.

Variable NameTypeDescription
tcknnumberGets or sets national identity number which is linked to user's Papara account
amountnumberGets or sets amount. The amount of the cash deposit. This amount will be transferred to the account of the user who received the payment. The amount to be deducted from the merchant account will be exactly this number
merchantReferencestringGets or sets merchant reference. The unique value sent by the merchant to prevent false repetitions in cash loading transactions. If a previously submitted and successful merchantReference is resubmitted with a new request, the request will fail. MerchantReference sent with failed requests can be resubmitted

Service Method

Purpose

Creates a cash deposit request using end users's national identity number.

MethodParamsReturn Type
createWithTcknCashDepositToTcknOptionsPaparaSingleResult

Usage

function createWithTckn() {
	const result = await client.cashDepositService.createWithTckn({
   		tckn: config.TCKN,
   		amount: 10,
   		merchantReference: uuidv4() //random number generator method, place actual merchant reference here
  	});
    return result;
}

Create Cash Deposit Provision With National Identity Number

Creates a request to deposit money from the physical point using national identity number registered in Papara without provision. To perform this operation use createProvisionWithTckn on Cash Deposit service. phoneNumber, tckn, amount and merchantReference should be provided.

CashDepositProvision Model

CashDepositProvision is used by cash deposit service to match returning cash deposit provision values from API.

Variable NameTypeDescription
idnumberGets or sets cash deposit ID
createdAtstringGets or setscreated date of cash deposit
amountnumberGets or sets amount of cash deposit
currencynumberGets or sets currency of cash deposit
merchantReferencestringReturns merchant reference code
userFullNamestringReturns end user's full name

CashDepositTcknControlOptions

CashDepositTcknControlOptions is used by cash deposit service for providing request parameters.

Variable NameTypeDescription
phoneNumberstringGets or sets user's phone number. The phone number of the user to be sent money, including the country code and "+".
tcknnumberGets or sets national identity number which is linked to user's Papara account
amountnumberGets or sets amount. The amount of the cash deposit. This amount will be transferred to the account of the user who received the payment. The amount to be deducted from the merchant account will be exactly this number.
merchantReferencestringGets or sets merchant reference. The unique value sent by the merchant to prevent false repetitions in cash loading transactions. If a previously submitted and successful merchantReference is resubmitted with a new request, the request will fail. MerchantReference sent with failed requests can be resubmitted.

Service Method

Purpose

Creates a cash deposit request without upfront payment using end user's national identity number.

MethodParamsReturn Type
createProvisionWithTcknCashDepositTcknControlOptionsPaparaSingleResult

Usage

function createProvisionWithTckn() {
    const result = await client.cashDepositService.createProvisionWithTckn({
        amount: 10,
        merchantReference: uuidv4(), //random number generator method, place actual merchant reference here
        phoneNumber: config.PersonalPhoneNumber,
        tckn: config.TCKN
    });
    return result;
}

Create Cash Deposit Provision With Phone Number

Creates a request to deposit money from the physical point using phone number registered in Papara without provision. To perform this operation use createProvisionWithPhoneNumber on Cash Deposit service. phoneNumber, amount and merchantReference should be provided.

Service Method

Purpose

Creates a cash deposit request without upfront payment using end users's phone number.

MethodParamsReturn Type
createProvisionWithPhoneNumberCashDepositToPhoneOptionsPaparaSingleResult

Usage

function createProvisionWithPhoneNumber() {
  	const result = await client.cashDepositService.createProvisionWithPhoneNumber({
    	amount: 10,
        merchantReference: uuidv4(), //random number generator method, place actual merchant reference here
        phoneNumber: config.PersonalPhoneNumber
    });
    return result;
}

Create Cash Deposit Provision With Account Number

Creates a request to deposit money from the physical point using Papara number without provision. To perform this operation use createProvisionWithAccountNumber on Cash Deposit service. accountNumber, amount and merchantReference should be provided.

Service Method

Purpose

Creates a cash deposit request without upfront payment using end users's phone number.

MethodParamsReturn Type
createProvisionWithAccountNumberCashDepositToAccountNumberOptionsPaparaSingleResult

Usage

function createProvisionWithAccountNumber() {
  	const result = await client.cashDepositService.createProvisionWithAccountNumber({
		amount: 10,
        merchantReference: uuidv4(), //random number generator method, place actual merchant reference here
        accountNumber: config.PersonalAccountNumber
    });
    return result;
}

Cash Deposit Approval

With the reference code created by the user, it checks the request for deposit without a prepayment from the physical point and makes it ready for approval. To perform this operation, use createProvisionByReferenceControl on Cash Deposit service. referenceCode and amount should be provided.

CashDepositControlOptions

CashDepositControlOptions is used by cash deposit service for providing request parameters.

Variable NameTypeDescription
referenceCodenumberGets or sets reference number of cash deposit request
amountstringGets or sets cash deposit amount

Service Method

Purpose

Makes a cash deposit ready to be completed.

MethodParamsReturn Type
createProvisionByReferenceControlCashDepositControlOptionsPaparaSingleResult

Usage

function createProvisionByReferenceControl() {
  	const result = await client.cashDepositService.createProvisionWithAccountNumber({
		amount: 10,
        merchantReference: uuidv4(), //random number generator method, place actual merchant reference here
        accountNumber: config.PersonalAccountNumber
    });
    return result;
}

Cash Deposit Completion

Confirms the deposit request created from the physical point to the user without prepayment. To perform this operation, use completeProvision on Cash Deposit service. id and transactionDate should be provided.

CashDepositCompleteOptions

CashDepositCompleteOptions is used by cash deposit service for providing request parameters.

Variable NameTypeDescription
idnumberGets or sets ID of cash deposit request
transactionDatestringGets or sets date of cash deposit transaction

Service Method

Purpose

Completes a cash deposit request without upfront payment.

MethodParamsReturn Type
completeProvisionCashDepositCompleteOptionsPaparaSingleResult

Usage

function completeProvision() {
    // create provision
	const result = await client.cashDepositService.createProvisionWithAccountNumber({
		amount: 10,
      	merchantReference: uuidv4(), //random number generator method, place actual merchant reference here
     	accountNumber: config.PersonalAccountNumber
    });
    
  // complete provision
    var completionResult = await client.cashDepositService.completeProvision({
        id: result.data.id,
        transactionDate: result.data.createdAt
    });
    return result;
}

Get Cash Deposit By Date

Retrieves information of money deposits from the physical point. To perform this operation, use getCashDepositByDate on Cash Deposit service. startDate, endDate, pageIndex and pageItemCount should be provided.

CashDepositByDateOptions

CashDepositByDateOptions is used by cash deposit service for providing request parameters.

Variable NameTypeDescription
startDatestringGets or sets start date of cash deposit
endDatestringGets or sets end date of cash deposit
pageIndexnumberGets or sets page index. It is the index number of the page that is wanted to display from the pages calculated on the basis of the number of records (pageItemCount) desired to be displayed on a page. Note: the first page is always 1
pageItemCountnumberGets or sets page item count. The number of records that are desired to be displayed on a page

Service Method

Purpose

Returns a cash deposit information by given date.

MethodParamsReturn Type
getCashDepositByDateCashDepositByDateOptionsPaparaArrayResult

Usage

function getCashDepositByDate() {
    var result = await client.cashDepositService.getCashDepositByDate({
        startDate: new Date(2020, 1, 1).toISOString(),
        endDate: new Date().toISOString(),
        pageIndex: 1,
		pageItemCount: 20
    });
    return result;
}

Settlements

Returns the total number and volume of transactions performed within the given dates. Both start and end dates are included in the calculation. To perform this operation, use provisionSettlements on Cash Deposit service. startDate and endDate should be provided.

CashDepositSettlementOptions

CashDepositSettlementOptions is used by cash deposit service for providing request parameters.

Variable NameTypeDescription
startDatestringGets or sets start date for settlement
endDatestringGets or sets end date for settlement
entryTypeEntryType?Gets or sets entry type for settlement

Service Method

Purpose

Returns total transaction volume and count between given dates. Start and end dates are included.

MethodParamsReturn Type
provisionSettlementsCashDepositSettlementOptionsPaparaSingleResult

Usage

function provisionSettlements() {
    var result = await client.cashDepositService.provisionSettlements({
    	startDate: new Date(2020, 1, 1).toISOString(),
   		endDate: new Date().toISOString()
    });
    return result;
}

Possible Errors and Error Codes

Error CodeError Description
100User not found.
101Merchant information could not found.
105Insufficient funds.
107The user exceeds the balance limit with this transaction.
111The user exceeds the monthly transaction limit with this transaction
112An amount has been sent below the minimum deposit limit.
203The user account is blocked.
997The authorization to make a cash deposit is not defined in your account. You should contact your customer representative.
998The parameters you submitted are not in the expected format. Example: one of the mandatory fields is not provided.
999An error occurred in the Papara system.

Mass Payment

This part is the technical integration statement prepared for merchants those want to distribute payments to their users quickly, safely and widely through Papara.

Get Mass Payment

Returns information about the payment distribution process. To perform this operation use getMassPayment method on MassPayment service. id should be provided.

Mass Payment Model

MassPayment is used by mass payment service to match returning mass payment values from API.

Variable NameTypeDescription
massPaymentIdstringGets or sets mass payment ID
idnumberGets or sets ID which is created after payment is done
createdAtDateGets or sets created date
amountnumberGets or sets amount of payment
currencynumberGets or sets currency. Values are “0”, “1”, “2”, “3”
feenumberGets or sets fee
resultingBalancenumberGets or sets resulting balance
descriptionstringGets or sets description

MassPaymentGetOptions

MassPaymentGetOptions is used by mass payment service for providing request parameters.

Variable NameTypeDescription
idnumberGets or sets mass payment ID

Service Method

Purpose

Returns mass payment information for authorized merchant.

MethodParamsReturn Type
getMassPaymentMassPaymentGetOptionsPaparaSingleResult

Usage

function getMassPayment() {
    var result = await client.massPaymentService.getMassPayment({
   		id: 123456789
  	});
    return result;
}

Create Mass Payment To Account Number

Send money to Papara number. To perform this operation use createMassPaymentWithAccountNumber method on MassPayment service. accountNumber, amount and massPaymentId should be provided.

MassPaymentToPaparaNumberOptions

MassPaymentToPaparaNumberOptions is used by mass payment service for providing request parameters.

Variable NameTypeDescription
accountNumberstringGets or sets Papara account number. The 10-digit Papara number of the user who will receive the payment. It can be in the format 1234567890 or PL1234567890. Before the Papara version transition, the Papara number was called the wallet number.Old wallet numbers have been changed to Papara number. Payment can be distributed to old wallet numbers.
parseAccountNumbernumberGets or sets parse account number. Parses the account number to number type. In old papara integrations, account / wallet number was made by starting with PL. The service was written in such a way that it accepts numbers starting with PL, in order not to cause problems to the member merchants that receive the papara number from their users.
amountnumberGets or sets amount. The amount of the payment transaction. This amount will be transferred to the account of the user who received the payment. This figure plus transaction fee will be charged to the merchant account.
massPaymentIdstringGets or sets mass payment ID. Unique value sent by merchant to prevent erroneous repetition in payment transactions. If a massPaymentId that was sent previously and succeeded is sent again with a new request, the request will fail.
turkishNationalIdnumberGets or sets national identity number.It provides the control of the identity information sent by the user who will receive the payment, in the Papara system. In case of a conflict of credentials, the transaction will not take place.
descriptionstringGets or sets description. Description of the transaction provided by the merchant. It is not a required field. If sent, the customer sees in the transaction descriptions.
currencynumberGets or sets currency. Values are “0”, “1”, “2”, “3”

Service Method

Purpose

Creates a mass payment to given account number for authorized merchant.

MethodParamsReturn Type
createMassPaymentWithAccountNumberMassPaymentToPaparaNumberOptionsPaparaSingleResult

Usage

function createMassPaymentWithAccountNumber() {
    var result = await client.massPaymentService.createMassPaymentWithAccountNumber({
      	accountNumber: config.PersonalAccountNumber.toString(),
      	amount: 1,
      	description: "Unit Test nodejs: MassPaymentToPaparaNumber",
      	massPaymentId: uuidv4(),//random number generator method, place actual mass payment id here
     	parseAccountNumber: 1,
		turkishNationalId: config.TCKN
    });
    return result;
}

Create Mass Payment To E-Mail Address

Send money to e-mail address registered in Papara. To perform this operation use createMassPaymentWithEmail method on MassPayment service. email, amount and massPaymentId should be provided.

MassPaymentToEmailOptions

MassPaymentToEmailOptions is used by mass payment service for providing request parameters.

Variable NameTypeDescription
emailstringGets or sets e-mail address. Registered email address of the user receiving the payment.
amountnumberGets or sets amount. The amount of the payment transaction. This amount will be transferred to the account of the user who received the payment. This figure plus transaction fee will be charged to the merchant account.
massPaymentIdstringGets or setsmass payment ID. Unique value sent by merchant to prevent erroneous repetition in payment transactions. If a massPaymentId that was sent previously and succeeded is sent again with a new request, the request will fail.
turkishNationalIdnumberGets or setsnational identity number.It provides the control of the identity information sent by the user who will receive the payment, in the Papara system. In case of a conflict of credentials, the transaction will not take place.
descriptionstringGets or sets description. Description of the transaction provided by the merchant. It is not a required field. If sent, the customer sees in the transaction descriptions.
currencynumberGets or sets currency. Values are “0”, “1”, “2”, “3”

Service Method

Purpose

Creates a mass payment to given e-mail address for authorized merchant.

MethodParamsReturn Type
createMassPaymentWithEmailMassPaymentToEmailOptionsPaparaSingleResult

Usage

function createMassPaymentWithEmail() {
    var result = await client.massPaymentService.createMassPaymentWithEmail({
    	amount: 1,
    	description: "Unit Test nodejs: MassPaymentToEmail",
    	massPaymentId: uuidv4(), //random number generator method, place actual mass payment id here
    	email: config.PersonalEmail,
    	turkishNationalId: config.TCKN
  	});
    return result;
}

Create Mass Payment To Phone Number

Send money to phone number registered in Papara. To perform this operation use createMassPaymentWithPhoneNumber method on MassPayment service. phoneNumber, amount and massPaymentId should be provided.

MassPaymentToPhoneNumberOptions

MassPaymentToPhoneNumberOptions is used by mass payment service for providing request parameters.

Variable NameTypeDescription
phoneNumberstringGets or sets user's phone number. The mobile number of the user who will receive the payment, registered in Papara. It should contain a country code and start with +
amountnumberGets or sets amount. The amount of the payment transaction. This amount will be transferred to the account of the user who received the payment. This figure plus transaction fee will be charged to the merchant account
massPaymentIdstringGets or sets mass payment ID. Unique value sent by merchant to prevent erroneous repetition in payment transactions. If a MassPaymentId that was sent previously and succeeded is sent again with a new request, the request will fail
turkishNationalIdnumberGets or sets national identity number.It provides the control of the identity information sent by the user who will receive the payment, in the Papara system. In case of a conflict of credentials, the transaction will not take place
descriptionstringGets or sets description. Description of the transaction provided by the merchant. It is not a required field. If sent, the customer sees in the transaction descriptions
currencynumberGets or sets currency. Values are “0”, “1”, “2”, “3”

Service Method

Purpose

Creates a mass payment to given phone number for authorized merchant.

MethodParamsReturn Type
createMassPaymentWithPhoneNumberMassPaymentToPhoneNumberOptionsPaparaSingleResult

Usage

function createMassPaymentWithPhoneNumber() {
    var result = await client.massPaymentService.createMassPaymentWithPhoneNumber({
      	amount: 1,
      	description: "Unit Test nodejs: MassPaymentToPhoneNumber",
      	massPaymentId: uuidv4(), //random number generator method, place actual mass payment id here
      	phoneNumber: config.PersonalPhoneNumber,
		turkishNationalId: config.TCKN
    });
    return result;
}

Possible Errors and Error Codes

Error CodeError Description
100User not found.
105Insufficient funds
107Receiver exceeds balance limit. The highest possible balance for simple accounts is 750 TL.
111Receiver exceeds monthly transaction limit. Simple accounts can receive payments from a total of 2000 TL of defined resources per month.
133MassPaymentID was used recently.
997You are not authorized to distribute payments. You can contact your customer representative and request a payment distribution definition to your merchant account.
998The parameters you submitted are not in the expected format. Example: Customer number less than 10 digits. In this case, the error message contains details of the format error.
999An error occurred in the Papara system.

Recurring Mass Payment

This section is the technical integration document prepared for the merchants who want to distribute payments to their users in a fast, secure and widespread through Papara.

Recurring Mass Payment Model

RecurringMassPayment class is used by recurring mass payment service to match returning recurring mass payment values from API.

Variable NameTypeDescription
MerchantIdstringGets or sets merchant id.
UserIdstringGets or sets user id.
PeriodintGets or sets period. Values are "0" (Monthly), "1" (Weekly), "2" (Daily).
ExecutionDayintGets or sets ...th day of period. (Weeks start with Monday).
AccountNumberintGets or sets account number.
MessagestringGets or sets message.
AmountdecimalGets or sets amount.
CurrencyCurrencyGets or sets currency.Values are “0” (TRY), “1” (USD), “2” (EUR), “3” (GBP).

Create Recurring Mass Payment To Account Number

To perform this operation use CreateRecurringMassPaymentWithAccountNumber method on MassPayment service. AccountNumber, Amount, ExecutionDay, Description and Period should be provided.

RecurringMassPaymentToAccountNumberOptions

RecurringMassPaymentToAccountNumberOptions is used by mass payment service for providing request parameters.

Variable NameTypeDescription
AccountNumberstringGets or sets Papara account number. The 10-digit Papara number of the user who will receive the payment. It can be in the format 1234567890 or PL1234567890. Before the Papara version transition, the Papara number was called the wallet number.Old wallet numbers have been changed to Papara number. Payment can be distributed to old wallet numbers.
AmountdecimalGets or sets amount. The amount of the payment transaction. This amount will be transferred to the account of the user who received the payment. This figure plus transaction fee will be charged to the merchant account.
TurkishNationalIdlong?Gets or sets national identity number.It provides the control of the identity information sent by the user who will receive the payment, in the Papara system. In case of a conflict of credentials, the transaction will not take place.
CurrencyCurrency?Gets or sets currency.Values are “0” (TRY), “1” (USD), “2” (EUR), “3” (GBP).
PeriodintGets or sets period. Values are "0" (Monthly), "1" (Weekly), "2" (Daily).
ExecutionDayintGets or sets ...th day of period. (Weeks start with Monday).
DescriptionstringGets or sets description. Description of the transaction provided by the merchant. It is not a required field. If sent, the customer sees in the transaction descriptions.

Service Method

Purpose

Creates a recurring mass payment to given account number for authorized merchant.

MethodParamsReturn Type
CreateRecurringMassPaymentWithAccountNumberRecurringMassPaymentToAccountNumberOptionsPaparaSingleResult

Usage

function createRecurringMassPaymentWithAccountNumber() {
    var result = await client.massPaymentService.createRecurringMassPaymentWithAccountNumber({
      	accountNumber: config.PersonalAccountNumber.toString(),
      	amount: 1,
        turkishNationalId: config.TCKN, //optional
        currency:1, //optional
        period:1,
        description: "Unit Test nodejs: RecurringMassPaymentToPaparaNumber",
        executionDay:1
    });
    return result;
}

Create Recurring Mass Payment To Email

To perform this operation use CreateRecurringMassPaymentWithEmail method on MassPayment service. Email, Amount, TurkishNationalId, Period, Currency, ExecutionDay and Description should be provided.

RecurringMassPaymentToEmailOptions

RecurringMassPaymentToEmailOptions is used by mass payment service for providing request parameters.

Variable NameTypeDescription
EmailstringGets or sets e-mail address. Registered email address of the user receiving the payment.
AmountdecimalGets or sets amount. The amount of the payment transaction. This amount will be transferred to the account of the user who received the payment. This figure plus transaction fee will be charged to the merchant account.
TurkishNationalIdlong?Gets or sets national identity number.It provides the control of the identity information sent by the user who will receive the payment, in the Papara system. In case of a conflict of credentials, the transaction will not take place.
CurrencyCurrencyGets or sets currency.Values are “0” (TRY), “1” (USD), “2” (EUR), “3” (GBP).
PeriodintGets or sets period. Values are "0" (Monthly), "1" (Weekly), "2" (Daily).
ExecutionDayintGets or sets ...th day of period. (Weeks start with Monday).
DescriptionstringGets or sets description. Description of the transaction provided by the merchant. It is not a required field. If sent, the customer sees in the transaction descriptions.

Service Method

Purpose

Creates a recurring mass payment to given email address for authorized merchant.

MethodParamsReturn Type
CreateRecurringMassPaymentWithEmailRecurringMassPaymentToEmailOptionsPaparaSingleResult

Usage

function createRecurringMassPaymentWithEmail () {
    var result = await client.massPaymentService.createRecurringMassPaymentWithEmail ({
      	email: config.PersonalEmail,
      	amount: 1,
        turkishNationalId: config.TCKN, //optional
        currency:1, //optional
        period:1,
        description: "Unit Test nodejs: RecurringMassPaymentToEmail",
        executionDay:1
    });
    return result;
}

Create Recurring Mass Payment To Phone Number

To perform this operation use CreateRecurringMassPaymentWithPhoneNumber method on MassPayment service. PhoneNumber, Amount, TurkishNationalId, Period, Currency, ExecutionDay and Description should be provided.

RecurringMassPaymentToPhoneNumberOptions

RecurringMassPaymentToPhoneNumberOptions is used by mass payment service for providing request parameters.

Variable NameTypeDescription
PhoneNumberstringGets or sets user's phone number. The mobile number of the user who will receive the payment, registered in Papara. It should contain a country code and start with +
AmountdecimalGets or sets amount. The amount of the payment transaction. This amount will be transferred to the account of the user who received the payment. This figure plus transaction fee will be charged to the merchant account.
TurkishNationalIdlong?Gets or sets national identity number.It provides the control of the identity information sent by the user who will receive the payment, in the Papara system. In case of a conflict of credentials, the transaction will not take place.
CurrencyCurrencyGets or sets currency.Values are “0” (TRY), “1” (USD), “2” (EUR), “3” (GBP).
PeriodintGets or sets period. Values are "0" (Monthly), "1" (Weekly), "2" (Daily).
ExecutionDayintGets or sets ...th day of period. (Weeks start with Monday).
DescriptionstringGets or sets description. Description of the transaction provided by the merchant. It is not a required field. If sent, the customer sees in the transaction descriptions.

Service Method

Purpose

Creates a recurring mass payment to given phone number for authorized merchant.

MethodParamsReturn Type
CreateRecurringMassPaymentWithPhoneNumberRecurringMassPaymentToPhoneNumberOptionsPaparaSingleResult

Usage

function createRecurringMassPaymentWithPhoneNumber  () {
    var result = await client.massPaymentService.createRecurringMassPaymentWithPhoneNumber  ({
      	phoneNumber: config.PersonalPhoneNumber,
      	amount: 1,
        turkishNationalId: config.TCKN, //optional
        currency:1, //optional
        period:1,
        executionDay:1,
        description: "Unit Test nodejs: RecurringMassPaymentToPhoneNumber"
        
    });
    return result;
}

Possible Errors and Error Codes

Error CodeError Description
100User not found.
105Insufficient funds
107Receiver exceeds balance limit. The highest possible balance for simple accounts is 750 TL.
111Receiver exceeds monthly transaction limit. Simple accounts can receive payments from a total of 2000 TL of defined resources per month.
133MassPaymentID was used recently.
997You are not authorized to distribute payments. You can contact your customer representative and request a payment distribution definition to your merchant account.
998The parameters you submitted are not in the expected format. Example: Customer number less than 10 digits. In this case, the error message contains details of the format error.
999An error occurred in the Papara system.

Payments

Payment service will be used for getting, creating or listing payments and refunding. Before showing the payment button to users, the merchant must create a payment transaction on Papara. Payment records are time dependent. Transaction records that are not completed and paid by the end user are deleted from Papara system after 1 hour. Completed payment records are never deleted and can always be queried with the API.

Get Payment

Returns payment information. To perform this operation use getPayment method on Payment service. id should be provided.

Payment Model

Payment is used by payment service to match returning payment values from API.

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago