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.
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.
https://gateway21.pelecard.biz/sandbox
https://gateway21.pelecard.biz/SandboxServices
https://gateway21.pelecard.biz/Hosting/English%20Error%20Messages%20-%20Root%20.pdf

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).
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.
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).
Landing Page
There are 2 options to present the landing page:
a. The store’s landing page (recommended).
b. Using Pelecard’s landing page.
feedbackOnTop parameter.
feedbackOnTop parameter is obligated! (See the parameters table).
UseBuildInFeedBackPage (see the parameters table).
feedbackOnTop parameter).
{
"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
{
"ConfirmationKey": "1a5b1c-1d1f6g-9h8j ",
"UniqueKey": "123456789",
"TotalX100": "100",
}
5.2 Receiving an answer for the transaction’s identification (1 – Identified, 0 – Error).
The landing page receives the following parameters:
Note: You can get the parameters by POST or by GET according to FeedbackDataTransferMethod (see the parameters table).
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.
http://msdn.microsoft.com/en-us/library/cc197957%28v=vs.95%29.aspxhttp://php.net/manual/en/book.json.php
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)"
}
{
"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.)
{/* 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. |
| 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: |
| 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. |
| BusinessNumber | Business Number.
Optional – Displayed empty. Optional. |
| UseLuhnAlgorithm | Control for Luhn Algorithm logic
False |
| 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” |
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:
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:
| 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. |
| 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 |
{
"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"
}
]
}
}
}
This guide explains how to connect to PayPal and the process from end to end.
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.
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.
https://developer.paypal.com/ (Image: PayPal Developer homepage)Sign Up to sign up. You will be presented with the following page: (Image: PayPal Sign up for a business account page)Agree and Continue to continue.https://developer.paypal.com/ You will be presented with the following page: (Image: PayPal Developer Log in page)Log In to continue.Create App button. The following page will appear: (Image: PayPal Developer Create new app page)Create App button. PaypalBtnText field) and will be transferred to PayPal to execute the payment.FeedbackDataTransferMethod field (see the parameters table).| 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”) |
"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"
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).
| 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. |
| 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 |
| 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. |
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!
$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 "Raw Server Response: " . htmlspecialchars($result) . "
";
// 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: " . htmlspecialchars($result) . "
";
// Log the full response for debugging
// error_log("Pelecard HTTP Error " . $httpcode . ": " . $result);
}
?>
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 && jsonTransactionResponse.StatusCode == "000" && !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.";
}
}
}
}
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"
}
{
"terminal": "xxxxxx",
"user": "xxxxx",
"password": "xxxxxxx",
"ActionType": "J4",
"Currency": "1",
"Total": "100",
"GoodURL": "https://gateway21.pelecard.biz/sandbox/landingpage",
"ApplePay": {
"Enabled": "true",
"Label": "test"
}
}
https://example.com/.well-known/apple-developer-merchantid-domain-association.txthttps://developer.apple.com/documentation/apple_pay_on_the_web/setting_up_your_serverhttps://gateway21.pelecard.biz/Scripts/Payment/ClientSecure.jshttps://gateway21.pelecard.biz/SandboxServices
https://reports.pelecard.biz will need to ask from the customer his last 4 digits of virtual card the appears in ApplePay application.

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”
}
{
"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"
}
}

https://gateway21.pelecard.biz/SandboxServices“CreditCard”: {
“Enable”: “false”
}
https://reports.pelecard.biz will need to ask from the customer his last