Iframe/Redirect – Programmer Manual

Index

General

Pelecard’s new payment page: Iframe/Redirect is a dynamic payment page created out of observing and understanding our client’s needs and providing them with the best payment page for them.

Iframe/Redirect features:   

  • HTML5/CSS3 Dynamic design, enabling our customers to easily create their own payment page design using a URL to their own designed CSS.   
  • Dynamic fields, enabling complete flexibility in choosing the payment terms.   
  • Responsive payment page, corresponding to various mobile devices.   
  • Detailed SandBox allows the programmer immediate checking of the payment page information and results.   

You will learn of all these features and more in this interface document in order to get the best results out of
Pelecard’s payment page.

Tip: You can use sandbox to build your payment page on test mode before going to production.

Useful Links

Test SandBox:

https://gateway21.pelecard.biz/sandbox

SandboxServices:

https://gateway21.pelecard.biz/SandboxServices

  • Use for cases if the process starts on iframe and completed on RestApi.  
  • Example: ActionType = J5 (Authorization only) and complete the authorization with Complete DebitByUid EndPoint.

Error Code List:

https://gateway21.pelecard.biz/Hosting/English%20Error%20Messages%20-%20Root%20.pdf

Figure 1: Clearing Process

Clearing Process Overview

  1. Requesting data from Pelecard
    1.0 Sending parameters in a Json format to https://gateway21.pelecard.biz/PaymentGW/init
    1.1 Receiving a URL answer (containing  TransactionID + URL).   

  2. Presenting the client with the payment page: 2.0 Entering the URL to the Iframe/Redirect source.
    2.1 Requesting the payment page from Pelecard into the Iframe/Redirect payment page according to the URL.
    2.2 Receiving the payment page HTML to the Iframe/Redirect page.   

  3. Entering Credit Card details and executing payment:
    3.0 Entering Credit Card details and pressing “Pay Now”.
    3.1 Sending request to Pelecard with payment details.
    3.1.0 If specified, receive ConfirmationKey and transaction details to a url of your choice server side.
    3.1.1 If specified, receive ConfirmationKey and transaction details to an Email address of your choice server side.
    3.2 Receiving Pelecard’s answer (Landing page parameters to the Feedback URL).  

  4. Landing Page
    There are 2 options to present the landing page:
    a. The store’s landing page (recommended).
    b. Using Pelecard’s landing page.

  • Store’s Landing Page (a):
    • If you are working with SSL, you can present the landing page within the Iframe or put True in the feedbackOnTop parameter.  
    • If you are not working with SSL, putting True in the feedbackOnTop parameter is obligated! (See the parameters table).  
  • Pelecard’s Landing Page (b):
    • Move to Pelecard’s Landing page and from there to the client’s landing page (not in figure 1).   
    • Requesting Pelecard’s EndOfProcess page according to UseBuildInFeedBackPage (see the parameters table). 
    • The client can choose to present Pelecard’s landing page within the Iframe or in a new page (feedbackOnTop parameter).  
    • If the client works with SSL he can present his landing page within the Iframe, otherwise, the landing page will always be presented in a new page.

Receiving the transaction details in Json format. Example:

				
					{
  "terminal": "1234567",
  "user": "John Doe",
  "password": "132456789",
  "Transactionld": "1a5b1c-1d1f6g-9h8j"
}
				
			

send a POST request to https://gateway21.pelecard.biz/PaymentGW/GetTransaction

Identify Transaction:
5.0 The ConfirmationKey security mechanism is an advance forgery solution.
Every successful transaction creates a unique key (ConfirmationKey) attached to the UserKey and to the transaction’s total.
Before closing the order, the store can validate the transaction by using ValidateByUnique Key action

5.1 Sending ConfirmationKey, Total, UserKey to https://gateway21.pelecard.biz/PaymentGW/ValidateByUniqueKey

JSON structure and parameter names:

				
					 {
"ConfirmationKey": "1a5b1c-1d1f6g-9h8j ",
 "UniqueKey": "123456789", 
"TotalX100": "100", 
 }
				
			

5.2 Receiving an answer for the transaction’s identification (1 – Identified, 0 – Error).

  • The parameter name in the confirmation JSON is UniqueKey because in case there is no UserKey (was not sent in the initial JSON) you can perform confirmation using TransactionId instead.

Landing Page Parameters Explanation

The landing page receives the following parameters:

  1. PelecardStatusCode Transaction status code. If “000” Success, Else see the Error Code Table
  2. PelecardTransactionId Pelecard’s unique Transaction identifier. Can be used to fetch the transaction details along with some personal information (Terminal number + UserName + Password).
  3. ApprovalNo Credit card’s company approval number (Does not always contain a value).
  4. Token Creates a Token If CreateToken=true (see the parameters table) or as a result from Registration Page (Does not always contain a value).
  5. ConfirmationKey Advanced security mechanism to protect against forgeries. Used to identify a transaction. (Paragraph 5 in the clearing process).
  6. ParamX Contains data from the client (see the parameters table).
  7. UserKey Contains the transaction’s unique identification from the client. Used to identify a transaction. (Paragraph 5 in the clearing process).

Note: You can get the parameters by POST or by GET according to FeedbackDataTransferMethod (see the parameters table).

 

JSON - Explanation

JSON is an object in a Key: Value pairs format.
It is possible to contain a JSON within a JSON (see
SupportedCards example). You must build a JSON in the same structure as in the Sandbox.

 

Example: JSON sent to Pelecard:
(The parameters in red are necessary for the payment page)

				
					{
  "terminal": "0882577012",
  "user": "xxxxx",
  "password": "xxXXX",
  "GoodURL": "[https://gateway21.pelecard.biz/sandbox/landingpage](https://gateway21.pelecard.biz/sandbox/landingpage)",
  "ErrorURL": "[https://gateway21.pelecard.biz/sandbox/landingpage](https://gateway21.pelecard.biz/sandbox/landingpage)",
  "ActionType": "J4",
  "Currency": "1",
  "Total": "100",
  "CreateToken": "True",
  "Language": "HE",
  "CustomerldField": "must",
  "Cvv2Field": "must",
  "MaxPayments": "12",
  "MinPayments": "1",
  "MinPayments ForCredit": "7",
  "FirstPayment": "auto",
  "ShopNo": "001",
  "ParamX": "test payment",
  "CssURL": "[https://gateway21.pelecard.biz/Content/Css/variant-he-3.css](https://gateway21.pelecard.biz/Content/Css/variant-he-3.css)",
  "LogoURL": "[https://gateway21.pelecard.biz/Content/images/Pelecard.png](https://gateway21.pelecard.biz/Content/images/Pelecard.png)"
}

				
			

Example: Answer sent by Pelecard with JSON:

				
					{
  "StatusCode": "000",
  "ErrorMessage": "operation success",
  "ResultData": {
    "TransactionId": "111e4629-a057-41f4-858b-550650ba9404",
    "ShvaResult": "000",
    "Additional DetailsParamX": "test payment",
    "Token": "",
    "DebitApproveNumber": "0000000",
    "ConfirmationKey": "cfa825d17b15efbd25ce71279eedf111",
    "VoucherId": "11-111-111",
    "Transaction PelecardId": 11111,
    "CardHolderID": "123456789",
    "CardHolderName": "",
    "CardHolder Email": "",
    "CardHolderPhone": "",
    "ShvaFileNumber": 11,
    "StationNumber": 1,
    "Reciept": 11,
    "JParam": 4,
    "CreditCardNumber": "11******1111",
    "CreditCardExpDate": "0118",
    "CreditCardCompanyClearer": 2,
    "CreditCardCompanylssuer": 2,
    "CreditCardStarsDiscountTotal": 0,
    "CreditType": 1,
    "CreditCardAbroadCard": 1,
    "DebitType": 1,
    "DebitCode": 50,
    "DebitTotal": 100,
    "DebitCurrency": "1",
    "TotalPayments": 0,
    "FirstPayment Total": 0,
    "Fixed Payment Total": 0,
    "shvaOutput": "0000000000045******458022000212140000000100 0000000000000000000000000084001016  \u0086%%...1 \\r\\n,",
    "CardHebName": "ישראכרט",
    "CreditCardBrand": "2",
    "ApprovedBy": "0",
    "CallReason": "3",
    "TransactionInitTime": "01/01/2015 11:11:11",
    "Transaction Update Time": "01/01/2015 11:11:11"
  }
}

				
			

Note: JSON is a dynamic answer! – There might be other parameters sent in addition to the ResultData (for example: Tamal, PayPal etc.)

Required Fields

{/* This table remains with 3 columns as per user request and original structure */}{/* Keep empty cell as in original structure */}

Parameter Description Value
User username Issued by Pelecard
password password Issued by Pelecard
terminal terminal number Issued by Pelecard
Test terminal for example – 0882577012
GoodURL The URL for approved transaction. (i)Can also be for denied transcation.
Need to consider StatusCode != 0.
Total (In agorot) Payment Sum in Agorot. 100 = 1 NIS
Currency Currency code Currency types.
Important!
Credit and Payments transactions allowed in
ILS only!
1 – NIS (Default)
2 – $ (US)
978 – €
826 – £ (Pound sterling)
(i)Pelecard supports all types of iso codes currency’s.
It only depends if business credit card
company allow the currency required.
Can send to request the iso code required In addition to currencies above.

Optional fields

Parameter Description & Value / Remarks
ErrorUrl Refused result URL – when transaction fails.
CancelURL Cancel URL address If the buyer clicks on Cancel he will be forwarded to this address.
ActionType Action Type:

J2-Registering the Credit Card and Creating a Token.
With the Token you can charge the same card at a later time.
J4 – Debit action. (Default)
J5 – Authorization without transaction.
J5h –  Authorization without transaction -Display an iframe without an amount (on the payment page).
Limit the total to up to 50 shekels (5000 agorot). If a total greater than 50 shekels is sent, an error message will be displayed.
Captures the line of credit with the total amount until the debit is sent [J4]
transaction).
If the captured amount is not consummated (with J4), the captured amount is released according to the shop’s agreement with the credit card company.
You can make the debit (J4) transaction with the same amount or less then what was captured, but not a higher amount.
QAResultStatus Allows us to simulate good/error response for transaction.

Example:
To get a success response we will send 000
To get false response we will send the status code we want to simulate
(i)works only on test terminals
Free Total Open Total amount field.

Remark:
It True, the field will be displayed next to the original Total amount.
The buyer will be able to add the wanted amount.
False – Not displayed
True – Displayed
(i) If required an open total amount field to appear for editing without adding it to the total, you should send the value 0 in the “total” parameter.
(i) If required to change the text “Add to Total,” refer to the “caption_set” later in the guide.
resultDataKeyName Name of the key that contains the POST data in the server side feedback.
(Optional. Use only when necessary)
ServerSideGoodFeedback URL URL address for sending transaction details when transaction is successful server side.
Remark: Clients who needs to open specific IP address in their FW, will need to enable 31.168.172.190.
ServerSideErrorFeedbackURL URL address for sending transaction details when transaction fails from shva – server side.

Remark: Clients who needs to open specific IP address in their FW, will need to enable 31.168.172.190.
Addional Info about ServerSide Good/ErrorURL:
The POST request to the client server is performed over HTTP/HTTPS on ports 80 or 443 only.
Pelecard expects to receive from client’s server http response 200.
If not, pelecard will try one more time to send post request.
There are 2 formats for data transfer:
Format 1: As a form, where the transaction details are passed as a field. The field name can be defined using the parameter resultDataKeyName. The field value will be a JSON with all the transaction details.
Format 2: If resultDataKeyName is not defined, the transaction details are passed as JSON, and the entire input must be read.
(i)It is important to note that in both formats, the ContentType is application/x-www-form-urlencoded.
Can control the ContentType with parameter ServerSide FeedbackContentType.
ServerSideFeedbackContentType By default, Pelecard returns the following header in the server-to-server response: application/x-www-form-urlencoded where the body is JSON.
To change the header, you need to send the value: application/json.
NotificationGoodMail
NotificationError Mail
Mail address for sending transaction details when transaction is successful.
The Store mail.

(i)The mail will be sent to the store. Do not confuse with the mail address entered by the buyer.
Mail address for sending transaction details when transaction fails from shva.
The Store mail.
(i)The mail will be sent to the store. Do not confuse with the mail address entered by the buyer.
NotificationFailMail Mail address for sending transaction details when something went wrong during the transaction process.
(i)The mail will be sent to the store. Do not confuse with the mail address entered by the buyer.
SapakNo Send Credit card company supplier Number.
Intended for RavMutav terminals only.
CreateToken Create a Token.
False-Default.
True
Language Choose a language.

To use the English/Russian or any other language written from left to right, first choose the Language (for fixing the writing direction from left to right and vice versa) and change the CSSURL to the right CSS (en).
HE-Hebrew (Default)
EN – English
RU – Russian
(i)Note that with Caption set the iframe / redirect fields can be changed to any language required.
NumericInputMode False – Default
True – Opens the numeric keyboard on mobile devices for numeric fields
CaptionExpInput Displays the current month + one year back in the card expiration field by default.
False – Default
True – Displays the words “month” and “year” by default.
CreditCard Credit Card Icon on the Payment Page.

The Credit Card icon will appear only when added to iframe another payment option like ApplePay, GooglePay, bit.
If needed to generate a payment page only with wallet and without Credit Card This parameter can be sent with value False.
False – Credit Card Icon will not appear
True – Default
Json Example:
“CreditCard”: {
“Enable”: “false”
}
CardHolderName Card Holder Name.

Hide – Not displayed (Default).
Must – Displayed empty. Mandatory.
Optional – Displayed empty. Optional.
CustomerIdField Card Holder ID.

Optional – Displayed empty. Optional (Default).
Value – Displayed with the value. Mandatory.
Must – Displayed empty. Mandatory.
Input Value – The value is transferred from the site. When choosing this option, the field is mandatory.
CustomerAddressField Street and house number

Optional – Displayed empty. Optional (Default).
Must – Displayed empty. Mandatory.
Input Value -The value is transferred from the site. When choosing this option, the field is mandatory.
CustomerCityField City

Optional – Displayed empty. Optional (Default).
Must – Displayed empty. Mandatory.
Input Value -The value is transferred from the site. When choosing this option, the field is mandatory.
CustomerIndexField Postal code

Optional – Displayed empty. Optional (Default).
Must – Displayed empty. Mandatory.
Input Value -The value is transferred from the site. When choosing this option, the field is mandatory.
CustomerCountryField Country

Optional – Displayed empty. Optional (Default).
Must – Displayed empty. Mandatory.
Input Value -The value is transferred from the site. When choosing this option, the field is mandatory.
Cvv2Field CVV field (3 digits at the back of the credit card. If Amex 4 digits in the front of the credit card).

Optional – Displayed empty. Optional (Default).
Must – Mandatory.
Hide – Not displayed.
EmailField Card Holder Email

Hide – Not displayed. (Default).
Value – Displayed in the field. Mandatory.
Must – Displayed empty. Mandatory.
Optional – Displayed empty. Optional.
(i)Pelecard returns the mail address to the site. It is the programmer’s responsibility to use this mail address and send the purchaser an informative mail to.
Business Number Business Number

hide – Not displayed. (Default).
Value – Value Displayed in the field. Mandatory.
must – Displayed empty. Mandatory.
optional – Displayed empty. Optional.
TelField Card Holder Phone Number

Hide – Not displayed. (Default).
Value – Value Displayed in the field. Mandatory.
Must – Displayed empty. Mandatory.
Optional – Displayed empty. Optional.
(i)There is an option to decide which validation TelField will have by sending RegEx.
Example:
“Regex”: {
“Enable”: “true”,
“TelField”: “^[+]?[(]?[0-9]{3}[)]?[-s.]?[0-9]{3}[-s.]?[0-9]{4,6}$”
}
SplitCCNumber Card Number field divided to 4 groups of 4 digits.
False (Default)
True
ReadOnlyFields Option to set a field as a read-only field with no change option, available fields:
CardHolderName
CustomerAddress Field
Customer City Field
CustomerIdField
CustomerIndexField
Customer Country Field
EmailField
TelField
BusinessNumber

Json Example:
“ReadOnly Fields”: {
“CardHolderName”: “True”,
“CustomerIdField”: “True”
}
(i) Notes:
-if some field configured as ReadOnly the original field should also appear in payment page INIT request with some Input value.
if the original field wasn’t sent to iframe INIT then the following error will occur : ‘Read only fields validation error 015’ in payment page.
-if some field configured as ReadOnly field and the original field have Optional or Must and not some Input value then the following error will occur on payment page INIT request and an URL will not be generated : {“ErrCode”:999, “ErrMsg”:” Error: Customer Address Field has no input value and Customer Address Field ReadOnlyField is true”}
FeedbackOnTop Landing page after committing the transaction – Iframe only!

False – Referral within the Iframe page (Default).
True – Referral in the hosting page.
Sites without SSL that want a landing page within the Iframe will enter True in the UseBuildInFeedbackPage field.
After opening Pelecard’s landing page within the Iframe, the buyer will be redirected to the GoodURL in the Hosting Page (outside the Iframe).
FeedbackData Transfer Method The method which the parameters will be transferred to the landing page
GET – Integrated in the URL (Defualt).
POST – Transferred as a form.
Use BuildInFeedbackPage Present Pelecard’s Landing Page at the end of the transaction.

False – The buyer will be redirected to the stores GoodURL/ErrorURL at the end of the transaction (Default).
True – Presents a standard approval/refusal transaction page. Pressing the confirm button will redirect the buyer to the stores GoodURL/ErrorURL.
Max Payments Maximum Payments.
12-Default.
MinPayments Minimum Payments.

1-Default.
If the minimum and maximum payments is 1- the field will not be displayed.
If the minimum and maximum payments are the same and bigger then 1 you must also enter Minimum payments for credit.
MinPaymentsForCredit Defining a Credit Type Payment.

The number represents the minimal payments required to determine the transaction as a Credit Payment Transaction.
Set according to the agreement with the credit card company.
If you want to deny the credit payments options, enter a value greater then the maximum payments value.
If you enter 0 or “null” – the transaction will be payments transaction only (and not credit transaction).
FirstPayment
Auto – Automatically calculated (Default). Closed for editing.
Manual – The field is open for buyers editing.
XXX(number) – Minimal payment amount open for buyers editing. The primal amount must be lower from the purchase amount.
DisabledPayment Numbers Disable a number of payments that you don’t want to use.
Example: If we configure 12 payments and we don’t want to let our client pick 2 payments, we need to send DisabledPaymentNumbers=2.
AuthNum Approval Number
Send an approval number (if exists).
ShopNo Shop/Cash Register number
001 Default (up to 999 shop numbers).
ParamX Additional Details
19 characters Max. Numbers or small caps English letters only. Helps in tracking, identifying and matching transactions.
ParamZ A parameter used for reconciliation adjustments that is sent to the acquiring/processing company.
Accepts a numeric value of up to 8 characters.
ShowXParam Show Additional Details in the Payment Page
False Default
True
AddHolderNameToXParam Add Card Holder Name to Additional Details
False Default
True Separated with ‘#’.
AddRemarksToXParam Add Remarks to Additional Details
False Default
True Separated with ‘#’.
UserKey Unique transaction identifier – Client side
Up to 50 characters. Enables validation at the end of the payment process combined with ConfirmationKey.
SetFocus Focus on a Payment Page field

Empty – No Focus (Default)
CC – Focus on Credit Card Number
CCH – Focus on Credit Card Holder (Make sure that Credit Card Holder’s field is not in Hide).
CSSURL Hyper Link to a CSS file – implementing a custom made design
If not entered, uses Pelecard’s default CSS.
(i)Must send the CSS url to pelecard support for adding it to white list
bussiness_name Business name or any other important text that needs to be added.
The text will appear above parameter TOPTEXT.
topText Upper Header
BottomText Lower Header
LogoURL Link to the stores Big Logo File
(i)Must send the Logo url to pelecard support for adding it to white list
CvvImageUrl URL to the image that will appear when you click on the i next to the card verification code
ShowCofirmationCheckBox Confirmation Check Box

False – Does not appear. Default
True – Display the Checkbox. Not checked. Mandatory.
Checked – Like True, Checked as default.
TextOnConfirmationBox Free text that will be displayed to the buyer to confirm the purchase.
When entering the URL to the ConfirmationLink the field value will become a hyperlink to that URL.
ConfirmationLink TextOnConfirmationBox Hyperlink Address
If TextOnConfirmationBox is empty, the hyperlink will not be created.
TextBeforeConfirmationLink The text that will be displayed before the value entered in TextOnConfirmationBox
for example:
TextBeforeConfirmationLink TextOnConfirmationBox
Pay Now Cancel
TextAfterConfirmationLink The text that will be displayed after the value entered in TextOnConfirmationBox if was configured as a ConfirmationLink (Hyperlink).
Example:
TextOnConfirmationBox TextAfterConfirmationLink
Pay Now Cancel
OpenConfirmationBoxInModal Opens the regulations page that was given in ConfirmationLink (HyperLink) inside the payment page if true is marked, otherwise, Opens in a new tab
False – Opens in a new tab (Default)
True – Opens inside the payment page
Hidden PelecardLogo Presenting/Hiding Pelecard’s Logo
False – Displays the logo(Default)
True – Not displayed
AllowedBINS List of BIN numbers to Allow use of certain cards.

Only CreditCards that match the list will be charged.
Example: 520041, 458045.
Can be define a character? which serves as a mask and can be any digit on the tested card
Example: 52?041 4580?5
BlockedBINs List of BIN numbers to restrict use of certain cards.

Only CreditCards that don’t match the list will be charged.
Example: 520041, 458045.
Can be define a character? which serves as a mask and can be any digit on the tested card
Example: 52?041 4580?5
InfoBINs List of BIN numbers for notification when they have been used.

When a card matching the list is charged, the infoBins parameter will return with a True value any card not in the list will return False.
(i)The InfoBins Parameter will be returned in ServerSideFeeback Json and in GetTransaction Response.
SupportedCards Determine the Logo display of the Supported Cards

False – The supported card will not be displayed.
True – The supported card will be displayed.
“SupportedCards”: {
“Amex”: “False”,
“Diners”: “False”,
“Isra”: “False”,
“Master”: “False”,
“Visa”: “False”
}
EmvPinpad An option for charging with Pinpad

False – No button is displayed (Default)
True – A button will be displayed
(i)Note that if there is more then one pinpad should also send parameter ShopNo with the shop number that configured on Pinpad.
The Pinpad Shop Number is configured by pelecard support team.
Example:
“ShopNo”:”002″.
CustomCanRetrayErrors An array of error codes recognized by SHVA and give the customer the possibility of leaving the user the same page without redirecting to the beginning of the process with an error text that the customer chooses the same error code.

Error codes enabled in addition to the error codes that are already enforced today by us and they will remain on the same page as the user (step 3 in the clearing process) for example: credit card number. The new parameter is set as follows:
• Note Code error code field should be without the leading zeros.
“CustomCanRetrayErrors”: [
{ “Code”: “6”, “Description”: “תעודת זהות או CVV לא תקינים” },
{ “Code”: “7”, “Description”: “קוד אישור אינו חוקי” }
]
OrderDetails Product/Transaction Description

You can send up to 5 Text Lines (TextLinel…5).
Every Text Line will be displayed in a different line.
It is Recommended NOT to use HTML tags (it is not guaranteed that the HTML tags are supported in all browsers).
Accessibility Mode Accessibility mode for iframe redirect
False Default.
True Display Accessibility mode.
Accessibility Header The header that will be shown when Accessibility mode value is True
UserDatal … UserData15 Free text fields.
These fields are not sent to SHVA.
These fields return with transaction details.
UiWaitSpinner URL for changing the default loading spinner
ExpandedBin Returns 8 BIN instead of 6
DefaultTabButton Select default tab button that will be shown in the IFRAME.

Choose between the next:
“apple_pay”,”google_pay”, “gama_bit” OR “OpenFinance”

ForceTovCard Used to add support for Tov card validation logic
False – Default
True – Validate Tov club cards via Isracard.
*NOTE*
ID Number must be sent in order to validate.
 “ThreeDSecure”: {
“Initiate”: “True\False”,
“ForeignCard”: “0,1,2”
}
Initiate – Trigger  3DS

ForeignCard – If the value is ‘1’ – operate according to: Allow authentications only on tourist cards.
If the value is ‘2’ – operate according to: Do not allow authentications on tourist cards.
If “ForeignCard”: “0” is sent – use the default logic, same as today.

BusinessNumber Business Number.

Optional – Displayed empty. Optional.
Hide – Hidden (Default).
Must – Displayed empty. Mandatory.
Input Value – The value is transferred from the site. When choosing this option, the field is mandatory.

UseLuhnAlgorithm Control for Luhn Algorithm logic

False
True Default

ShowToken Display encrypted credit card in the iframe

Value – “1234567890”

CaptionSet

Fields for entering different languages.
Mark in the Captionset box and enter the text you want.
You can change the field names in English or any other desired language.
In order to control the right direction – Choose the language (English/Hebrew) in Language and enter the right CSS.

Parameter Description
CaptionSet Empty – Default.
✓ – Fill the fields with the desired language (The translation is the shop’s responsibility).
After filling the caption fields this will be the page’s default language.
cs_header_payment “Payment By Credit Card”
cs_header_registeration “Registration By Credit Card”
cs_holdername “Card Holder Name”
cs_cardnumber “Credit Card Number”
cs_expiration “Expiration Date”
cs_id “Id / SSN / Passport”
cs_cvv “CVV”
cs_payments “Number of payments”
cs_xparam “Additional Details”
cs_total “Total”
cs_supported_cards “Cards accepted as payment on this website”
cs_orderdetails “Order Details”
cs_generaldetails “General Details”
cs_mustfields “Mandatory Fields”
cs_submit “Pay Now”
cs_paypal_btn “Pay With PayPal”
cs_cancel “Cancel”
cs_eop_status_good “Transaction made successfully”
cs_eop_status_bad “Transaction failed”
cs_eop_goto_site “To go back to the site click here”
cs_eop_free_text “Free text in transaction page”
cs_free_total “Add to total”
cs_first_payment “First payment”
cs_each_payment “Each payment”
cs_email “Email”
cs_phone “Phone”
cs_credit “(Credit payments)”
cs_approval_no “Approval Number”
cs_voucher_no “Voucher Number”

User-Defined Tab Fields

When creating an Iframe with multiple Tabs, all the fields requested in PaymentGW/init are being seen across all Tabs. An example for it is that when you have CreditCard+Bit tabs, and CustomerIdField as must, you will see the CustomerIdField requested in both tabs. It is crucial for a business to define each Tab with its’ relevant fields.
In order to define each Tab with its’ specific fields, follow the next steps:

 

  • Each Tab has its’ own JSON Object. “Gamapay”: {} , “GooglePay”: {} , “ApplePay”: {} or “OpenFinance”: {}.
  • CreditCard doesn’t have its’ own object! The fields sent in the Main JSON Object are what you will see in CreditCard Tab.
  • ReadOnlyFields works with [input_value] ONLY. For example: TelField=0505005005 (Inputted value) + ReadOnlyFields: {TelField=true} will display the number as read only, with no way of changing the value.
  • Review Optional Fields, for better explanation on each field!

 

Fields that can be applied to the JSON Objects (Example for “GooglePay”:{} Object):

				
					“GooglePay”:{
 "CardHolderName": "hide/must/optional/[input_value]",
 "CustomerIdField": "hide/must/optional/[input_value]",
 "CustomerAddressField": "True/False/[input_value]",
 "CustomerCityField": "True/False/[input_value]",
 "CustomerIndexField": "True/False/[input_value]",
 "CustomerCountryField": "True/False/[input_value]",
 "BusinessNumber": "True/False/[input_value]",
 "Cvv2Field": "hide/must/optional",
 "EmailField": "hide/must/optional/[input_value]",
 "Remarks": "hide/must/optional/[input_value]",
 "TelField": "hide/must/optional/[input_value]",
"ReadOnlyFields": {
  "CardHolderName": "True/False",
  "CustomerAddressField": "True/False",
  "CustomerCityField": "True/False",
  "CustomerIdField": "True/False",
  "CustomerIndexField": "True/False",
  "CustomerCountryField": "True/False",
  "BusinessNumber": "True/False ",
  "EmailField": "True/False",
  "TelField": "True/False"
 }
}

				
			

Fields’ Exceptions:

  • TelField is Must in Bit
  • Cvv2Field will be Optional in GooglePay Tab if sent other than Hide.
  • Cvv2Field is hidden in OpenFinance
  • CustomerIdField is Must in OpenFinance

Payper - Invoice

  • The parameters in red are mandatory for the purpose of producing a document (an explanation is attached to each parameter).
  • Pelecard don’t calculate VAT so The amounts sent should be after VAT.
  • The price of the products should be the same as the Total parameter sent to iframe.
  • All the price values are in cents (include dicount price)

 

 

Field Description Value
typeDocument Document type Proforma
Invoice
Invoice-Receipt
Credit
Receipt
Bid
document_lang Document language hb-Hebrew (default)
en – english
document_payment_due_date Deadline for payment: Applicable for document types Invoice, Proforma Bid. Date Format: dd-mm-yyyy
customer_unique_id Id or Business Number of customer Mandatory if not have customer mail
There is an option to change setting from payper back office system.
customer_mail Customer Email Mandatory if not have customer_unique_id
There is an option to change setting from payper back office system.
customer_name Customer name
customer_mobile Customer cell phone number
customer_business_phone Customer phone number
customer_address Customer address
document_subject Document subject
reference_document_id document system id received on any type of document in response. document_system_id of the source transaction
document_remarks Document Remarks
send_by_mail Send an Email to customer True/False
Default: False
document_rounded Rounding document price True/False
Default: False
document_no_vat Document without VAT True without VAT
False-Including VAT
Default: False
Discount_with_vat Discount price of document
extra_recipients Additional email addresses for sending the document, separated by commas (relevant and send by email is sent TRUE) test@test.co.il.test1@test.co.il
developer_email Email to receive Api Errors
income_id Defines the invoice with a revenue type. Numerical value. On the ‘income management’ screen in the Payper system You can get an interface ID for an established revenue type and send it in this parameter.
(For a supported company only, an income ID can be obtained from the system settings)
invoice_lines Array of products for the invoice Description
Quantity –
Price per_unit
Catalog_id(can be null)
Include vat = true/false (1)
No_vat=true/false
(1)if wants that specific product will be without VAT the value will be false and need to add parameter No_vat with value true.

Payper Errors

Invoice Result Description
Result: 146
Invoice creation error
קיים חוסר התאמה בין סכום התקבולים לסכום התשלומים
-Need to check that the total is equal to invoice amount.
-IF it’s a VAT document check parameter INCLUDE_VAT = True
Result: 111 Unknown ip address
-Check ip address on Payper API settings (also that it without spaces) https://app.payper.co.il/login
Result: 110 Unauthorized credentials
Check username on Payper API settings https://app.payper.co.il/login
Result: 146
Invoice creation error
Invoice creation error: שים לב, תחילה יש להשלים הגדרות ראשוניות להפקת מסמכים
-Check ספרור מסמכים setting on Payper document creation setting https://app.payper.co.il/login
Result: 126 Reference Invoice not found
When sending reference_document_id the value should be the Document_system_id
PayperData have no values
“PayperData”: {
“InvoiceStatus”: “”,
“InvoiceLink”: “”,
“InvoiceNumber”: “”,
“RawResponse”: “”
}
Call support 036579500-Payper may not be allowed in pelecard

An example of json Request + creating an invoice:

				
					{
  "terminal": "0882577012",
  "user": "xxxxx",
  "password": "xXXXXXXXXX",
  "ActionType": "J4",
  "Currency": "1",
  "Total": "100",
  "GoodURL": "[https://gateway21.pelecard.biz/sandbox/landingpage](https://gateway21.pelecard.biz/sandbox/landingpage)",
  "PayperParameters": {
    "typeDocument": "Invoice-Receipt",
    "DataPayper": {
      "document_lang": "he",
      "customer_unique_id": "123456789",
      "customer_mail": "op@pelecard.co.il",
      "customer_name": "pelecard",
      "customer_mobile": "0544444444",
      "customer_business_phone": "036579500",
      "customer_address": "דרך עדן 9 ראשון לציון",
      "document_subject": "נושא המסמך",
      "document_remarks": "הערות למסמך",
      "send_by_mail": "true",
      "document_rounded": "false",
      "document_no_vat": "false",
      "income_id": "335",
      "invoice_lines": [
        {
          "description": "מוצר 1",
          "quantity": "1",
          "price_per_unit": "100",
          "include_vat": "true",
          "No_vat": "false",
          "catalog_id": "1111"
        }
      ]
    }
  }
}

				
			

PayPal

This guide explains how to connect to PayPal and the process from end to end.

Pelecard-PayPal – Interface Purpose

The interface purpose is to allow the client to interact and make transactions through PayPal.

PayPal is an online payment service system that allows the surfer to make purchases and transfer money online safely and reliably, without giving credit card and personal information.

Website owners who wish to give their customers a choice of payment, may allow payment in PayPal easily and quickly, as well as credit cards – using PeleCard systems.

By using PayPal with Pelecard’s systems – Website owners have an added value of seeing the payments made with PayPal on Pelecard’s Reports System, providing full tracking of both credit card and PayPal transactions.

Opening a PayPal Sandbox Account

PayPal Sandbox Account is a test account that allows you to make test transactions with PayPal.

Attention: The sandbox account is for tests only! Do not make real transactions with the sandbox account.

  1. Click on https://developer.paypal.com/ (Image: PayPal Developer homepage)
  2. Click Sign Up to sign up. You will be presented with the following page: (Image: PayPal Sign up for a business account page)
  3. Fill the connection details and press Agree and Continue to continue.
  4. At the end of the registration return to https://developer.paypal.com/ You will be presented with the following page: (Image: PayPal Developer Log in page)
  5. Fill in the user details and press Log In to continue.
    Important!
    Remember (save) the LEGAL BUSINESS NAME – you will need it all through your tests. Capture the screen and save it… in case you will need it later.
    The following page will appear: (If you are redirected to the main PayPal page, press the “DashBoard” tab at the top of the page) (Image: PayPal Developer Dashboard – My apps)
  6. Press the Create App button. The following page will appear: (Image: PayPal Developer Create new app page)
    You need to create a mock “App” in order to receive your API credentials from PayPal. Choose a name for your “App”. PayPal will automatically use your Facilitator account that was created with your new account (Further explanations on the Facilitator in page 26 )
  7. Press the Create App button. 
  8. Press the Accounts tab on the left side of the page.
    You will receive the following page:
     PayPal has automatically created 2 testing accounts for you:

    • Facilitator – Your “Sales” account that you will use for your API credentials that Pelecard needs in order to work with PayPal.
    • Buyer – Your “Buyer” account that you will use for the debit information during payment testing.
  9. Pressing the account name will open the following links:
  10. Pressing Profile will present all the details you need: 
  11. By pressing Notifications we will be able to see emails and messages.
  12. Now we can start building the system.

Work Process with PayPal

  1. You will be able to link with PayPal with the first request Json. All the transaction parameters will be transferred with this Request. Assuming all the parameters are correct, a “PAY WITH PayPal” button will be displayed in the payment page near Pelecard’s “PAY NOW” button.
  2. The Buyer will press the “PAY WITH PayPal” button (The button text will be entered in the PaypalBtnText field) and will be transferred to PayPal to execute the payment.
  3. After the payment with PayPal, the data will be transferred to the landing page according to the FeedbackDataTransferMethod field (see the parameters table).
  4. The buyer will be redirected to the landing page (according to the landing parameters chosen).
  5. The site must verify the transaction result and the “Success” answer. A success transaction will be registered in Pelecard’s report system with indication that the transaction was via PayPal.
    A failed transaction will not be registered in the Pelecard’s report system.

 

Paypal Window parameters:

  •  Mandatory parameters
Field name (in Post) Description
user PayPal User Name
password PayPal Password
Signature Signature According to the account settings on PayPal
INVNUM Internal ID number. Usually invoice number.
VALIDATELINK Server side indication address.
CANCELURL Return/Cancel address.
HDRIMG Top Image – banner at the top of the payment screen (Max 90×750 px).
LOGOIMG Company Logo – displayed top left (Max 60×190 px).
BRANDNAME Business name.
ENVIRONMENT Environment: 0-Sandbox (test), 1-Production.
Important! Must open Sandbox account for test, real PayPal account for production.
CUSTOMERSERVICENUMBER The business customer service phone.
AMT Total payment sum in xxx.xx format (NIS, $, €).
CURRENCYCODE Currency code: ILS – NIS, USD – $, EUR – €
LOCALCODE Language: US – English, RU-Russian, FR – French, he_IL – Hebrew
DESC Payment description – products/services details.
PaypalText Text to display under the PayPal pay button
PaypalBtnText Text for the PayPal button itself (e.g., “שלם באמצעות PayPal”)

Exmple of Paypal Json( Mandatory parameters):

				
					"Paypal" : { 
" User": "serg_stern-facilitator_api1.yahoo.com," 
" PassWord": "1381907892," 
" Signature": "AGFylK6s59NBDWEheDiE6fMmb3sYAq9jXHFJ14ofB6dO8gGtw09DpWLF," " INVNUM": "a716976f9cc70757adec7329b00c9ae1,"  
" RETURNURL": "https://gateway.pelecard.biz/post/landingpage.aspx," 
" VALIDATELINK": "http://pelecard.tool.co.il/res.php," 
" CANCELURL": "http://pelecard.com," 
" HDRIMG": "https://gateway.pelecard.biz/Content/images/PpBigLogo.jpg," 
" LOGOIMG": "https://gateway.pelecard.biz/Content/images/PpSmallLogo.jpg," 
" BRANDNAME,"שם העסק" :" 
" ENVIRONMENT": "0," 
" PAYMENTACTION": "sale," 
" CUSTOMERSERVICENUMBER": "036579500," 
" AMT": "100," 
" CURRENCYCODE": "ILS," 
" LOCALECODE": "he_IL," 
" DESC": "bla bla," 
" PaypalText,"הדרך המהירה והבטוחה יותר לשלם באינטרנט מבלי לחשוף את פרטי כרטיס האשראי" :" " PaypalBtnText שלם באמצעות" :"Pay-Pal" 
 
				
			

PayPal Response

At the end of the payment process, the client is redirected to the page defined at the GoodUrl & ErrorUrl parameter. The payment details are sent by GET or POST.

Important!
It is important to perform validation on the server via
ConfirmationKey in order to locate and invalidate fake transactions/orders (stage 5 in the clearing process).

Response Parameters:

Field name (in Post) Description
INVNUM Random Internal ID.
When using the Sandbox, create a new number in every transaction by double click the field.
REPORTUPDATESTATUS Transaction update status in Pelecard’s Report System:
000-OK
Any other status (not 000) Represents an Error.
VALIDATE_ST
TOKEN
Server side call status as per VALIDATELINK parameter:
Ok: Success.
Error: Failed. Please contact Pelecard.
PayPal’s execute transaction token.
SUCCESSPAGEREDIRECTREQUESTED
TIMESTAMP
CORRELATIONID
Always False.
Transaction time in TIMESTAMP format.
PayPal’s unique transaction identifier.
ACK Action Status:
If = Success
and PAYMENTINFO 0 ACK = Success
then Payment Success.
Else: No payment was made and the client was not charged.
VERSION
BUILD
Interface version
INSURANCEOPTIONSELECTED
SHIPPINGOPTIONISDEFAULT
PAYMENTINFO_0_TRANSACTIONID
Yes If the buyer chose the insurance option.
No If the buyer did not choose the insurance option
Yes If the buyer the default shipping option.
No If the buyer did not choose the default shipping option.
Transaction ID – (For inquiries and future use).
It is recommended to save the ID.
PAYMENTINFO_0_TRANSACTIONTYPE Interface type operated with PayPal.
In the current version: expresscheckout.
PAYMENTINFO 0 PAΥΜΕΝΤΤΥΡΕ
PAYMENTINFO 0 ORDERTIME
PAYMENTINFO 0 AMT
Payment Type.
Instant: Immediate payment.
Transaction time in TIMESTAMP format (for a product).
The total amount the buyer was charged.
PAYMENTINFO 0 TAXAMT Current version: 0
PAYMENTINFO_0_CURRENCYCODE Currency code:
ILS: Israeli shekel
USD: US Dollar
EUR: Euro
PAYMENTINFO_0_PAYMENTSTATUS Payment Status:
None: Status does not exist.
Canceled-Reversal: Cancel action was revoked. The current version does not support Refunds.
Completed: Payment completed.
Denied: Nor paid, Payment is Pending.
Expired: Transaction date expired.
Failed: Payment failed (If the payment was made from the client’s bank account).
In-Progress: The transaction is not finished.
Partially-Refunded: Partial refund was maid. The current version does not support Refunds.
Pending: Suspended. See suspension reason in PAYMENTINFO 0 PENDINGREASO
Refunded: Refund was made. The current version does not support Refunds.
Reversed: Payment cancelled, the money was returned to the client. See reason in PAYMENTINFO_0_REASONCODE. The current version does not support Refunds.
Processed: Payment received.
Voided: Identification failed.
Completed-Funds-Held: Payment received. The money was added to the PayPal account.
PAYMENTINFO_0_PENDINGREASON Only if PAYMENTINFO_0_PAYMENTSTATUS returned as Pending.
None: No suspension reason
address: Shipment address was not entered. As per “Payment Receiving Preferences” definitions.
authorization: Payment was not approved. Obligo must be captured first. Obligo Capture is not supported in the current version.
echeck: Payment was made with an electronic check that was not yet cleared.
intl: The client does not have specified clearing mechanism. Payment must be made manually from the account page.
multi-currency: There is no account for the currency that was sent. Payment must be made manually. Automatic conversion mechanism can be set in Payment Receiving Preferences
order: The payment is part of the order, approved but not paid.
paymentreview: Waiting for PayPal approvement.
regulatoryreview: Payment is under authorities check (24 to 72 hours).
unilateral: Payment was made against a not yet verified email address.
verify: Merchant account not yet verified.
other: Payment was suspended from other reasons. Please contact PayPal.
PAYMENTINFO 0 REASONCODE Cancellation cause. The current version does not support Refunds
none: Unspecified.
chargeback: The client initiated chargeback
guarantee: Under guarantee
buyer-complaint: Returned as per buyer complaint.
refund: Refund.
other: Other.
PAYMENTINFO_0_PROTECTIONELIGIBILITY Protection policy for current transaction (up to ver. 64.4)
Eligible: Protected by: PayPal’s Seller Protection Policy for Unauthorized Payments and Item Not Received.
Partially Eligible: Protected by: PayPal’s Seller Protection Policy for Item Not Received.
Ineligible: Unprotected.
PAYMENTINFO_0_PROTECTIONELIGIBILITYTYPE Protection policy for current transaction (Values separated by commas) (Over 64.4 Ver.)
Eligible: Protected by: PayPal’s Seller Protection Policy for both Unauthorized Payment and Item Not Received.
ItemNot Received Eligible: Protected by: PayPal’s Seller Protection Policy for Item Not Received.
Unauthorized Payment Eligible: Protected by: Merchant is protected by PayPal’s Seller Protection Policy for Unauthorized Payment.
Ineligible: Unprotected.
PAYMENTINFO_0 SECUREMERCHANTACCOUNTID Dealers PayPal account number.
PAYMENTINFO 0 ERRORCODE
PAYMENTINFO_0_ACK
PayPal error code for current payment
Transaction status.
If Success and ACK Success Payment succeeded.
Payment was not made and the client was not charged.

Appendix A - Parameters table (Output)

Name Description
StatusCode Action status code
ErrorMessage Error message (succesfull when status code is “000”)
PelecardTransactionId Pelecard transaction id
VoucherId Voucher number
ShvaResult Shva resust status
ShvaFileNumber Shva file number
StationNumber Station number (001-999)
Reciept Record number in the shva file
JParam The action type
Credit CardNumber A masked credit card number
CreditCardExpDate Credit card expiration date
CreditCardCompanyClearer Credit card clearing company
1- Isracard
2-Visa CAL
5-Tranzilla
6-Leumicard
7- Cardcom
CreditCardCompanyIssuer Credit card issuing company
1 – Isracard
2-Visa CAL
3- Diners
4-American Express
5-Tranzilla
6-Leumicard
7-Cardcom
Credit CardStarsDiscount Total Total by credit stars amount
CreditType Credit type
1 – Regular
2-Isracredit, Amex credit, Visa preferred/ +30, Diners preferred/+30
3-Immediate debit
4-Club credit
5- Super credit
6-Credit/Regular payments credit
8 – Payments
9-Payments club deal
Remarks:
1. When credit type is Visa it is valid in CAL and in Leumicard
2. Amex means American Express
Credit CardAbroadCard Abroad card indication
0-Israeli
1- Tourist
2-Gas
3- immediate debit
4-Gift/Chargeable (excluding Gift/Chargeable card issued by Visa CAL at this point in time)
Debit Type Debit type
00-Blocked card
01-Regular mandatory deal
02-Approved mandatory deal
03-Forced deal
51- Privileged deal
52-Cancellation deal
53-Privileged approved deal
Debit Code Debit code
00-Regular deal
01-Self-service
02-Gas station self service
05-Contactless
06-Self-service contactless
50 -Phone deal
51-Signature only deal
Debit Total Total in agorot
Debit ApproveNumber Approval number
DebitCurrency Currency Type.
0-ISO (Foreign currency)
1-New Israeli Shekel
2-$
3-€
TotalPayments Total number of payments
FirstPayment Total Total of first payment
FixedPayment Total Total of fixed payment (for every payments after the first one)
AdditionalDetailsParamX ParamX content (Open text up to 19 characters)
CardHebName Credit card Hebrew name
Credit CardBrand Credit company brand
0-Private issuing company card (PL)
1-MasterCard
2-Visa
3- diners
4- American express
5- isracard
6-JCB
7 Discover
8- Maestro
Token Token representing credit card information (credit card number + expiration date)
DayInMonth
RecSource
SapakMutavNo
Day in month when the deal was created
The details record source (File/Backup file)
Rav Mutav/Sapak number
Time Creation time
ClubCode Club code
SapakimMutavim Rav mutav/sapak
0-Regular
1 – Rav sapak
2-Rav mutav
TranCode Transction structure code
0-Regular
1- special credit
8- Payments
9-Vehicle fleet gas deal
Broadcast Date Broadcast date to shva
BroadcastNo Broadcast number
CreatedDate Deal creation date
Source The Muhlafim file source:
1- Isracard
2- VisaCal
6-Leumicard
ActionDescription A description for the performed action.
NewCardNumber New credit card number after the replacement action.
NewExpirationDate New Expiration date after the replacement action.
FileName The Muhlafim file name

Appendix B – Error Code List

Error Remarks
000 Permitted transaction.
001
002
The card is blocked, confiscate it.
The card is stolen, confiscate it.
003 Contact the credit company.
004 Refusal by credit company.
005
006
The card is forged, confiscate it.
Incorrect CVV/ID.
007 Incorrect CAVV/ECI/UCAF.
008 An error occurred while building access key for blocked card files.
009 No communication. Please try again or contact System Administration
010 The program was stopped by user’s command (ESC) or COM PORT can’t be open (Windows)
011 The acquirer is not authorized for foreign currency transactions
012 This card is not permitted for foreign currency transactions
013 The terminal is not permitted for foreign currency charge/discharge into this card
014 This card is not Supported.
015 Track 2 (Magnetic) does not match the typed data.
016 Additional required data was entered/not entered as opposed to terminal Settings (Z field).
017
019
Last 4 digits were not entered (W field).
Entry in INT_IN file is shorter than 16 characters.
020 The input file (INT_IN) does not exist.
021 Blocked cards file (NEG) does not exist or has not been updated, transmit or request authorization for each transaction.
022
023
One of the parameter files/vectors does not exist.
Date file (DATA) does not exist.
024 Format file (START) does not exist.
025
026
The difference in days in the blocked cards input is too large, transmit or request authorization for each transaction.
The difference in generations in the blocked cards input is too large, transmit or request authorization for each transaction.
027 When the magnetic strip is not completely entered, define the transaction as a telephone number or signature only.
028
029
The central terminal number was not entered into the defined main supplier terminal.
The beneficiary number was not entered into the defined main beneficiary terminal.
030 The supplierbeneficiary /number was entered, however the terminal was not updated as the main supplier/beneficiary.
031
032
The beneficiary number was entered, however the terminal was updated as the main supplier.
Old transactions, transmit or request authorization for each transaction.
033 Defective card.
034
035
036
This card is not permitted for this terminal or is not authorized for this type of transaction.
This card is not permitted for this transaction or type of credit.
Expired card.
037
038
Installment error, the amount of transactions needs to be equal to: first installment plus fixed installments times number of installments.
Unable to execute a debit transaction that is higher than the credit card’s ceiling.
039 Incorrect control number.
040
041
The beneficiary and supplier numbers were entered, however the terminal is defined as main.
The transaction’s amount exceeds the ceiling when the input file contains J1, J2 or J3 (contact prohibited).
042
043
044
The card is blocked for the supplier where input file contains J1, J2 or J3 (contact prohibited).
Random where input file contains J1 (contact prohibited).
The terminal is prohibited from requesting authorization without transaction (J5).
045 The terminal is prohibited for supplier-initiated authorization request (J6).
046 The terminal must request authorization where the input file contains J1, J2 or J3 (contact prohibited).
047 Secret code must be entered where input file contains J1, J2 or J3 (contact prohibited).
051 Incorrect vehicle number.
052 The number of the distance meter was not entered.
053
057
058
059
060
061
The terminal is not defined as gas station (petrol card or incorrect transaction code was used).
An ID number is required (for Israeli cards only) but was not entered.
CVV is required but was not entered.
CVV and ID number are required (for Israeli cards only) but were not entered.
ABS attachment was not found at the beginning of the input data in memory.
The card number was either not found or found twice.
062 Incorrect transaction type.
063 Incorrect transaction code.
064 Incorrect credit type.
065 Incorrect currency.
066 The first installment and/or fixed payment are for non-installment type of credit.
067 Number of installments exist for the type of credit that does not require this.
068 Linkage to dollar or index is possible only for installment credit.
069 The magnetic strip is too short.
070 The PIN code device is not defined.
071 Must enter the PIN code number.
072 Smart card reader not available use the magnetic reader.
073
074
Must use the Smart card reader.
Denied locked card.
075 Denied Smart card reader action didn’t end in the correct time.
076 Denied – Data from smart card reader not defined in system.
077 Incorrect PIN code.
079 Currency does not exist in vector 59.
080 The club code entered does not match the credit type.
090 Cannot cancel charge transaction. Make charging deal.
091 Cannot cancel charge transaction. Make discharge transaction
092 Cannot cancel charge transaction. Please create a credit transaction.
099 Unable to read/write/open the TRAN file.
101 No authorization from credit company for clearance.
106
107
The terminal is not permitted to send queries for immediate debit cards.
The transaction amount is too large, divide it into a number of transactions.
108 The terminal is not authorized to execute forced transactions.
109 The terminal is not authorized for cards with service code 587.
110 The terminal is not authorized for immediate debit cards.
111 The terminal is not authorized for installment transactions.
112 The terminal is authorized for installment transactions only, not telephone/signature.
113 The terminal is not authorized for telephone transactions.
114 The terminal is not authorized for signature-only transactions.
115 The terminal is not authorized for foreign currency transactions, or transaction is not authorized.
116 The terminal is not authorized for club transactions.
117 The terminal is not authorized for star/point/mile transactions.
118 The terminal is not authorized for Isracredit credit.
119 The terminal is not authorized for Amex credit.
120 The terminal is not authorized for dollar linkage.
121 The terminal is not authorized for index linkage.
122 The terminal is not authorized for index linkage with foreign cards.
123 The terminal is not authorized for star/point/mile transactions for this type of credit.
124 The terminal is not authorized for Isra 36 credit.
125 The terminal is not authorized for Amex 36 credit.
126 The terminal is not authorized for this club code.
127 The terminal is not authorized for immediate debit transactions (except for immediate debit cards).
128
129
The terminal is not authorized to accept Visa card staring with 3.
The terminal is not authorized to execute credit transactions above the ceiling.
130 The card is not permitted to execute club transactions.
131 The card is not permitted to execute star/point/mile transactions.
132
133
The card is not permitted to execute dollar transactions (regular or telephone).
The card is not valid according to Isracard’s list of valid cards.
134 Defective card according to system definitions (Isracard VECTOR1), error in the number of figures on the card.
135 The card is not permitted to execute dollar transactions according to system definitions (Isracard VECTOR1).
136 The card belongs to a group that is not permitted to execute transactions according to system definitions (Visa VECTOR 20).
137 The card’s prefix (7 figures) is invalid according to system definitions (Diners VECTOR21).
138 The card is not permitted to carry out installment transactions according to Isracard’s list of valid cards.
139 The number of installments is too large according to Isracard’s list of valid cards.
140 Visa and Diners cards are not permitted for club installment transactions.
141
142
Series of cards are not valid according to system definition (Isracard VECTOR5).
Invalid service code according to system definitions (Isracard VECTOR6).
143 The card’s prefix (2 figures) is invalid according to system definitions (Isracard VECTOR7).
144 Invalid service code according to system definitions (Visa VECTOR12).
145 Invalid service code according to system definitions (Visa VECTOR13).
146 Immediate debit card is prohibited for executing credit transaction.
147 The card is not permitted to execute installment transactions according to Alpha vector no. 31.
148 The card is not permitted for telephone and signature-only transactions according to Alpha vector no. 31.
149 The card is not permitted for telephone transactions according to Alpha vector no. 31.
150 Credit is not approved for immediate debit cards.
151
152
Credit is not approved for foreign cards.
Incorrect club code.
153 The card is not permitted to execute flexible credit transactions (Adif/30+) according to system definitions (Diners VECTOR21).
154 The card is not permitted to execute immediate debit transactions according to system definitions (Diners VECTOR21).
155 The payment amount is too low for credit transactions.
156
157
Incorrect number of installments for credit transaction.
Zero ceiling for this type of card for regular credit or Credit transaction.
158 Zero ceiling for this type of card for immediate debit credit transaction.
159 Zero ceiling for this type of card for immediate debit in dollars.
160 Zero ceiling for this type of card for telephone transaction.
161 Zero ceiling for this type of card for credit transaction.
162 Zero ceiling for this type of card for installment transaction.
163 American Express card issued abroad not permitted for instalments transaction.
164 JCB cards are only permitted to carry out regular credit transactions.
165 The amount in stars/points/miles is higher than the transaction amount.
166 The club card is not within terminal range.
167 Star/point/mile transactions cannot be executed.
168 Dollar transactions cannot be executed for this type of card.
169 Credit transactions cannot be executed with other than regular credit.
170 Amount of discount on stars/points/miles is higher than the permitted.
171 Forced transactions cannot be executed with credit/immediate debit card.
172 The previous transaction cannot be cancelled (credit transaction or card number are not identical).
173 Double transaction.
174 The terminal is not permitted for index linkage of this type of credit.
175 The terminal is not permitted for dollar linkage of this type of credit.
176 The card is invalid according to system definitions (Isracard VECTOR1).
177 Unable to execute the self-service transaction if the gas station does not have self service.
178 Credit transactions are forbidden with stars/points/miles.
179 Dollar credit transactions are forbidden on tourist cards.
180 Phone transactions are not permitted on Club cards.
200 Application error.
201 Error receiving encrypted data
205 Transaction amount missing or zero.
306 No communication to Pelecard.
308 Doubled transaction.
404 Terminal number does not exist.
500 Terminal executes broadcast and/or updating data. Please try again later.
501
502
User name and/or password not correct. Please call support team.
User password has expired. Please contact support team.
503
505
Locked user. Please contact support team.
Blocked terminal. Please contact account team.
506 Token number abnormal.
507
508
User is not authorized in this terminal.
Validity structure invalid. Use MMYY structure only.
509 SSL verifying access is blocked. Please contact support team.
510
511
Data not exist.
Merchant Authorization failed- the customer receive sms that need to confirm and need to send transaction again
555 Customer click on Cancel button in payment page
597 General error. Please contact support team.
598 Necessary values are blocked/wrong.
600
599
General EMV terminals error – please contact support team
General error. Repeat action.
999 Necessary values missing to complete installments transaction.

Appendix C - Code examples

The following code examples are just some of countless ways and methods to send a JSON object via a POST request.
It is the customer’s development personnel responsibility to modify these examples for his own specific needs, and it is not mandatory to use them!

In PHP:

				
					 $userName,
    'password' => $password,
    'terminal' => $termNo,
    'GoodURL' => $goodUrl,
    'Total' => $totalAmount,
    'Currency' => $currencyCode,
    // Add other parameters like 'ErrorURL', 'ActionType', 'ParamX', etc.
    // 'ErrorURL' => 'your_error_url',
    // 'ActionType' => 'J4',
    // 'ParamX' => 'Order 123',
);

$jsonData = json_encode($data);
$ch = curl_init('https://gateway21.pelecard.biz/PaymentGW/init');

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json; charset=UTF-8', // Ensure correct Content-Type
    'Content-Length: ' . strlen($jsonData)
));
// Optional: Add timeout settings
// curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
// curl_setopt($ch, CURLOPT_TIMEOUT, 30);

$result = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_error = curl_error($ch);

curl_close($ch);

if ($curl_error) {
    echo "cURL Error: " . $curl_error;
    // Handle cURL error (e.g., log, display generic error)
} elseif ($httpcode >= 200 && $httpcode < 300) {
    // Decode the JSON response
    $serverData = json_decode($result, true);

    // Check if decoding was successful and if the 'URL' key exists and status is '000'
    if (json_last_error() === JSON_ERROR_NONE && isset($serverData['URL']) && isset($serverData['StatusCode']) && $serverData['StatusCode'] == '000') {
        echo "Received URL: " . $serverData['URL'];
        // Use the URL: redirect user or set iframe src
        // header('Location: ' . $serverData['URL']); // Example redirect
        // exit;
    } elseif (isset($serverData['ErrorMessage'])) {
        // Handle specific error message from Pelecard
        echo "Server Error: " . $serverData['ErrorMessage'] . " (Status Code: " . (isset($serverData['StatusCode']) ? $serverData['StatusCode'] : 'N/A') . ")";
        // Log the full response for debugging
        // error_log("Pelecard Error Response: " . $result);
    } else {
        // Handle unexpected response format or missing URL/StatusCode
        echo "Error decoding JSON or required keys missing in response.";
        echo &quot;Raw Server Response: <pre>" . htmlspecialchars($result) . "</pre>";
        // Log the full response for debugging
        // error_log("Pelecard Unexpected Response: " . $result);
    }
} else {
    // Handle HTTP errors (4xx, 5xx)
    echo "HTTP Error: " . $httpcode;
    echo "Raw Server Response: <pre>" . htmlspecialchars($result) . "</pre>";
    // Log the full response for debugging
    // error_log("Pelecard HTTP Error " . $httpcode . ": " . $result);
}

?&gt;

				
			

In ASP.NET:

				
					using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Diagnostics; // For Debug.WriteLine
// Consider using System.Net.Http and System.Text.Json for modern .NET
// using System.Net.Http;
// using System.Text.Json;

namespace nameSpaceName // Replace with your actual namespace
{
    // Define a class to hold the JSON request parameters
    // Use DataContract/DataMember for serialization control with DataContractJsonSerializer
    [DataContract]
    public class JsonTransactionDetails
    {
        // Required fields
        [DataMember] public string terminal { get; set; }
        [DataMember] public string user { get; set; }
        [DataMember] public string password { get; set; }
        [DataMember] public string GoodURL { get; set; }
        [DataMember] public string Total { get; set; } // Send as string representing agorot
        [DataMember] public string Currency { get; set; } // e.g., "1" for ILS

        // Optional fields (Add [DataMember(EmitDefaultValue = false)] if you only want to send them when they have non-default values)
        [DataMember(EmitDefaultValue = false)] public string ErrorURL { get; set; }
        [DataMember(EmitDefaultValue = false)] public string CancelURL { get; set; }
        [DataMember(EmitDefaultValue = false)] public string ActionType { get; set; } // e.g., "J4"
        [DataMember(EmitDefaultValue = false)] public string CreateToken { get; set; } // "True" or "False" as string
        [DataMember(EmitDefaultValue = false)] public string Language { get; set; } // "HE", "EN", "RU"
        [DataMember(EmitDefaultValue = false)] public string CustomerIdField { get; set; } // "must", "optional", "value", "hide" etc.
        [DataMember(EmitDefaultValue = false)] public string Cvv2Field { get; set; } // "must", "optional", "hide"
        [DataMember(EmitDefaultValue = false)] public string MaxPayments { get; set; }
        [DataMember(EmitDefaultValue = false)] public string MinPayments { get; set; }
        [DataMember(EmitDefaultValue = false)] public string ShopNo { get; set; }
        [DataMember(EmitDefaultValue = false)] public string ParamX { get; set; }
        [DataMember(EmitDefaultValue = false)] public string UserKey { get; set; }
        [DataMember(EmitDefaultValue = false)] public string CssURL { get; set; }
        [DataMember(EmitDefaultValue = false)] public string LogoURL { get; set; }
        // Add other optional fields as needed based on documentation...
    }

    // Define classes to hold the expected JSON response structure
    [DataContract]
    public class JsonTransactionResponse
    {
        [DataMember] public string StatusCode { get; set; }
        [DataMember] public string ErrorMessage { get; set; }
        [DataMember] public string URL { get; set; } // The URL for iframe/redirect
        // ResultData is usually empty/null in the Init response, but included for completeness if needed
        [DataMember(EmitDefaultValue = false)] public ResultDataStructure ResultData { get; set; }
    }

    [DataContract]
    public class ResultDataStructure // Define based on GetTransaction/Feedback response if needed later
    {
        [DataMember] public string TransactionId { get; set; }
        // Add other fields from ResultData if expected...
    }


    public partial class Pay : System.Web.UI.Page // Assuming Web Forms
    {
        protected void SubmitJsonData(object sender, EventArgs e)
        {
            // Fill in the JSON parameters
            var jsonTransactionRequest = new JsonTransactionDetails()
            {
                // --- Required Fields ---
                terminal = "your_terminal_number", // Replace with actual value
                user = "your_username",         // Replace with actual value
                password = "your_password",       // Replace with actual value
                GoodURL = "https://yourdomain.com/success", // Replace with your actual success URL
                Total = "100", // Example: 1 NIS = 100 agorot. Replace with actual amount.
                Currency = "1", // "1" for ILS (NIS)

                // --- Optional Fields (Examples) ---
                ErrorURL = "https://yourdomain.com/error", // Replace with your actual error URL
                ActionType = "J4", // Default debit action
                ParamX = "My Order 123",
                CreateToken = "False", // Set to "True" if you need a token
                Language = "EN", // Example: English
                // Add and assign other optional properties as needed
            };

            // Create JSON object and encode using DataContractJsonSerializer
            var jsonRequestSerializer = new DataContractJsonSerializer(typeof(JsonTransactionDetails));
            MemoryStream jsonMemoryStream = new MemoryStream();
            jsonRequestSerializer.WriteObject(jsonMemoryStream, jsonTransactionRequest);
            byte[] jsonRequestBytes = jsonMemoryStream.ToArray();
            string requestJsonString = Encoding.UTF8.GetString(jsonRequestBytes); // For logging
            Debug.WriteLine("Request JSON: " + requestJsonString);


            // Create request using HttpWebRequest (older method)
            var jsonWebRequest = (HttpWebRequest)WebRequest.Create("https://gateway21.pelecard.biz/PaymentGW/Init");
            jsonWebRequest.ContentType = "application/json; charset=utf-8"; // Set correct Content-Type for JSON
            jsonWebRequest.ContentLength = jsonRequestBytes.Length;
            jsonWebRequest.Method = "POST";
            // Optional: Set timeouts
            // jsonWebRequest.Timeout = 30000; // 30 seconds
            // jsonWebRequest.ReadWriteTimeout = 30000; // 30 seconds

            // Send data
            try
            {
                // Write the JSON bytes to the request stream
                using (var jsonRequestStream = jsonWebRequest.GetRequestStream())
                {
                    jsonRequestStream.Write(jsonRequestBytes, 0, jsonRequestBytes.Length);
                }

                // Read response
                using (var jsonResponse = (HttpWebResponse)jsonWebRequest.GetResponse()) // Cast to HttpWebResponse
                {
                    using (var jsonResponseStream = jsonResponse.GetResponseStream())
                    {
                        if (jsonResponseStream != null)
                        {
                            // Use DataContractJsonSerializer to deserialize the response stream directly
                            var jsonResponseSerializer = new DataContractJsonSerializer(typeof(JsonTransactionResponse));
                            var jsonTransactionResponse = (JsonTransactionResponse)jsonResponseSerializer.ReadObject(jsonResponseStream);

                            // Check the response status and use the URL
                            if (jsonTransactionResponse != null &amp;&amp; jsonTransactionResponse.StatusCode == "000" &amp;&amp; !string.IsNullOrEmpty(jsonTransactionResponse.URL))
                            {
                                // Success! Use the URL for iframe src or redirect
                                Debug.WriteLine("Payment URL: " + jsonTransactionResponse.URL);
                                // Example: Redirect the user
                                // Response.Redirect(jsonTransactionResponse.URL, false);
                                // Context.ApplicationInstance.CompleteRequest();

                                // Or set Iframe source (if 'paymentIframe' is your iframe control ID)
                                // paymentIframe.Attributes["src"] = jsonTransactionResponse.URL;
                            }
                            else
                            {
                                // Handle error response from Pelecard
                                string errorMessage = (jsonTransactionResponse != null) ? jsonTransactionResponse.ErrorMessage : "Invalid response structure.";
                                string statusCode = (jsonTransactionResponse != null) ? jsonTransactionResponse.StatusCode : "N/A";
                                Debug.WriteLine($"Pelecard Error: {errorMessage} (Status Code: {statusCode})");
                                // Display error to user
                                // ErrorLabel.Text = $"Error processing payment: {errorMessage}";
                            }
                        }
                        else
                        {
                             Debug.WriteLine("Error: Response stream was null.");
                             // ErrorLabel.Text = "Error receiving response from payment gateway.";
                        }
                    }
                }
            }
            catch (WebException webEx)
            {
                // Handle network errors or non-2xx HTTP responses
                string errorDetails = "Network or HTTP error.";
                if (webEx.Response != null)
                {
                    using (var errorResponse = (HttpWebResponse)webEx.Response) // Cast to HttpWebResponse
                    {
                        using (var responseStream = errorResponse.GetResponseStream())
                        {
                            if (responseStream != null)
                            {
                                using (var reader = new StreamReader(responseStream))
                                {
                                    errorDetails = reader.ReadToEnd(); // Read the error response body
                                }
                            }
                        }
                         Debug.WriteLine($"WebException: {webEx.Message} Status: {webEx.Status} HTTP Status: {errorResponse.StatusCode} Details: {errorDetails}");
                    }
                } else {
                     Debug.WriteLine($"WebException: {webEx.Message} Status: {webEx.Status} (No response received)");
                }

                // Inform user or log
                // ErrorLabel.Text = "Could not connect to payment gateway. Please try again later.";
            }
            catch (SerializationException serEx)
            {
                // Handle errors during JSON deserialization
                Debug.WriteLine("Serialization Exception: " + serEx.Message);
                // ErrorLabel.Text = "Error reading response from payment gateway.";
            }
            catch (Exception ex)
            {
                 // Handle other potential exceptions
                 Debug.WriteLine("General Exception: " + ex.ToString());
                 // Log error, inform user
                 // ErrorLabel.Text = "An unexpected error occurred. Please contact support.";
            }
        }
    }
}

				
			

Apple Pay

Enable ApplePay button in pelecard’s iframe/redirect page

For enabling the button need to send this code in iframe’s INIT request

				
					"ApplePay": {
  "Enabled": "true",
  "Label": "test transaction"
}

				
			

full request example: https://gateway21.pelecard.biz/PaymentGW/init

				
					{
  "terminal": "xxxxxx",
  "user": "xxxxx",
  "password": "xxxxxxx",
  "ActionType": "J4",
  "Currency": "1",
  "Total": "100",
  "GoodURL": "https://gateway21.pelecard.biz/sandbox/landingpage",
  "ApplePay": {
    "Enabled": "true",
    "Label": "test"
  }
}

				
			

General Remarks

 

  • ApplePay button will appear only in this devices
    • Iphone
    • Mac computer with finger print
    • Safari browser
  • for implementing ApplePay in iframe mode you need to follow this steps
  • There is no option to create token with ActionType = J2 and making the purchase futher
    with RestAPI endpoints with the same token.

    the options are :
    a. take authorization from credit card with ActionType = J5 (with parameter CreateToken = True) and complete the transaction only ones in RestAPi methods with Token and ApprovalNo or DebitApproveNumber or ID.
    Note :
    the methods can use for complete the transaction is
    CompleteDebitByUid
    DebitRegularType
    DebitPaymentsType ( when the authorization in iframe was in payments) link for APIhttps://gateway21.pelecard.biz/SandboxServices
    b. making a debit transaction with ActionType = J4 in iframe/redirect .
  • The transaction in ApplePay is validated by 3DS protocol
  • Costumers who wants to implement a different iframe’s, one for ApplePay and one for credit card will need to send in INIT request this parameter :“CreditCard”:{
    “Enable”: “false”
    }

 

  • business who wants to search the credit card number in Pelecard reports https://reports.pelecard.biz will need to ask from the customer his last 4 digits of virtual card the appears in ApplePay application.
  • The business terminal number should be at credit card clearing company with internet  supplier number

Google Pay

Enable Google Pay button in pelecard’s iframe/redirect page

For enabling the button need to send this code in iframe’s INIT request

“GooglePay”: {
“Enabled”: “true”,
“MerchantName”:
“business name”
}

full request example : https://gateway21.pelecard.biz/PaymentGW/init

				
					{
  "terminal": "xxxxx",
  "user": "xxxxxx",
  "password": "xxxxxxxx",
  "ActionType": "J4",
  "Currency": "1",
  "Total": "100",
  "GoodURL": "https://gateway21.pelecard.biz/sandbox/landingpage",
  "GooglePay": {
    "Enable": "true",
    "MerchantName": "business name"
  }
}

				
			

General Remarks

  1. Google pay button will appear only in mobile devices with Wallet application that supports NFC.
  2. for implementing Google pay in iframe mode you need to add this “allowpaymentrequest” like in example :

  3. There is no option to create token with ActionType = J2 and making the purchase futher with RestAPI endpoints with the same token.
    the options are :
    a. take authorization from credit card with ActionType = J5 (with parameter CreateToken = True) and complete the transaction only ones in RestAPi methods with Token and ApprovalNo or DebitApproveNumber or ID.
    Note :
    the methods can use for complete the transaction is
    CompleteDebitByUid
    DebitRegularType
    DebitPaymentsType ( when the authorization in iframe was in payments)
    link for API https://gateway21.pelecard.biz/SandboxServices
    b. making a debit transaction with ActionType = J4 in iframe/redirect.
  4. The transaction in Google pay is validated by 3DS protocol
  5. Costumers who wants to implement a different iframe’s, one for Google pay and one for credit card will need to send in INIT request this parameter :

“CreditCard”: {
“Enable”: “false”
}

  •  business who wants to search the credit card number in Pelecard reports https://reports.pelecard.biz will need to ask from the customer his last
    4 digits of virtual card the appears in Google pay application.
  • The business terminal number should be at credit card clearing company with internet supplier number