# Marketplaces & Platforms ## Overview - [Merchant Default URLs](https://docs-staging.payme.io/marketplaces-and-platforms/overview/merchant-default-urls): Upon creating your Merchant account with us, you will be required to provide a few default URLs for various calls. More examples can be found further in the documentation. # Merchant Default URLs Upon creating your Merchant account with us, you will be required to provide a few default URLs for various calls. More examples can be found further in the documentation. | Environment | URL | | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Callback URL | Used for server-to-server responses regarding calls made to our API. These will be x-www-form-urlencoded formatted POST requests to the URL. | | Return URL | IFRAME users only - We will redirect the customer to this URL after the sale is paid successfully. This is usually the success page. Those will be GET requests with parameters. | ## Payments - [Apple Pay](https://docs-staging.payme.io/marketplaces-and-platforms/payments/apple-pay): The payment method is limited to be used in the following devices manufactured by Apple: # Apple Pay The payment method is limited to be used in the following devices manufactured by Apple: **iOS Devices** | **Mac OS Devices** --|-- Safari browser , on an Apple Pay-enabled iOS device | Safari browser on a Macbook Pro with Touch ID or a Mac model 2012 or later paired to a compatible iOS/Apple Watch with handoff enabled. In order to be able to accept Apple Pay payments on your website, first contact PayMe Partners partners@payme.io to start integration process. Then you will need to complete the following steps: 1. Adding the file to your website, under the proper folder (Explained in [Step 1](#step-1-domain-verification)). 2. Signing up your website to Apple Pay via [/api/vas-enable](https://docs-staging.payme.io/payments/apple-pay/post-vas-enable-apple-pay) request. 3. Logging in to a [Testing iCloud account](#step-3-add-apple-icloud-account-and-testing-cards). (The account credentials will be provided by PayMe) 4. Use our API to [generate a new payment using Apple Pay](https://docs-staging.payme.io/payments/apple-pay/post-generate-sale-apple-pay). 5. Test your integration (Explained in [step 5](#step-5-test-your-integration)) ### Devices supported for Sandbox Testing You can use the following devices for testing in sandbox: - iPhone 6 or later - iPad mini 3 or later - iPad Air 2 - iPad Pro - Apple Watch **Please note that you can not use Mac device for testing.** ## Step 1: Domain Verification The first step in the process of accepting Apple Pay on your webiste will be to register your domains. You will need to register both top-level domains and sub-domains serperately. Top-level domain example: `www.payme.io` Sub-domain example: `www.marketplace.payme.io` ### Hosting the Apple Pay's domain verification file on your server Host the file at `/.well-known/apple-developer-merchantid-domain-association` on your domain(s) that will display the Apple Pay button. >Apple Pay can be tested in Production environment only. ### File to Host Create a text file with the following text, then add it to the `.well-known` folder under the name `apple-developer-merchantid-domain-association`. Make sure the folder is public, save the file without .txt ending. ```json 7B227073704964223A2230384641324636393342433744413942333336423031373431303038333532374133413243354339343039354142463539333535363042443944434639333032222C2276657273696F6E223A312C22637265617465644F6E223A313632383030303737393730352C227369676E6174757265223A223330383030363039326138363438383666373064303130373032613038303330383030323031303133313066333030643036303936303836343830313635303330343032303130353030333038303036303932613836343838366637306430313037303130303030613038303330383230336533333038323033383861303033303230313032303230383463333034313439353139643534333633303061303630383261383634386365336430343033303233303761333132653330326330363033353530343033306332353431373037303663363532303431373037303663363936333631373436393666366532303439366537343635363737323631373436393666366532303433343132303264323034373333333132363330323430363033353530343062306331643431373037303663363532303433363537323734363936363639363336313734363936663665323034313735373436383666373236393734373933313133333031313036303335353034306130633061343137303730366336353230343936653633326533313062333030393036303335353034303631333032353535333330316531373064333133393330333533313338333033313333333233353337356131373064333233343330333533313336333033313333333233353337356133303566333132353330323330363033353530343033306331633635363336333264373336643730326436323732366636623635373232643733363936373665356635353433333432643530353234663434333131343330313230363033353530343062306330623639346635333230353337393733373436353664373333313133333031313036303335353034306130633061343137303730366336353230343936653633326533313062333030393036303335353034303631333032353535333330353933303133303630373261383634386365336430323031303630383261383634386365336430333031303730333432303030346332313537376564656264366337623232313866363864643730393061313231386463376230626436663263323833643834363039356439346166346135343131623833343230656438313166333430376538333333316631633534633366376562333232306436626164356434656666343932383938393365376330663133613338323032313133303832303230643330306330363033353531643133303130316666303430323330303033303166303630333535316432333034313833303136383031343233663234396334346639336534656632376536633466363238366333666132626266643265346233303435303630383262303630313035303530373031303130343339333033373330333530363038326230363031303530353037333030313836323936383734373437303361326632663666363337333730326536313730373036633635326536333666366432663666363337333730333033343264363137303730366336353631363936333631333333303332333038323031316430363033353531643230303438323031313433303832303131303330383230313063303630393261383634383836663736333634303530313330383166653330383163333036303832623036303130353035303730323032333038316236306338316233353236353663363936313665363336353230366636653230373436383639373332303633363537323734363936363639363336313734363532303632373932303631366537393230373036313732373437393230363137333733373536643635373332303631363336333635373037343631366536333635323036663636323037343638363532303734363836353665323036313730373036633639363336313632366336353230373337343631366536343631373236343230373436353732366437333230363136653634323036333666366536343639373436393666366537333230366636363230373537333635326332303633363537323734363936363639363336313734363532303730366636633639363337393230363136653634323036333635373237343639363636393633363137343639366636653230373037323631363337343639363336353230373337343631373436353664363536653734373332653330333630363038326230363031303530353037303230313136326136383734373437303361326632663737373737373265363137303730366336353265363336663664326636333635373237343639363636393633363137343635363137353734363836663732363937343739326633303334303630333535316431663034326433303262333032396130323761303235383632333638373437343730336132663266363337323663326536313730373036633635326536333666366432663631373037303663363536313639363336313333326536333732366333303164303630333535316430653034313630343134393435376462366664353734383138363839383937363266376535373835303765373962353832343330306530363033353531643066303130316666303430343033303230373830333030663036303932613836343838366637363336343036316430343032303530303330306130363038326138363438636533643034303330323033343930303330343630323231303062653039353731666537316531653733356235356535616661636234633732666562343435663330313835323232633732353130303262363165626436663535303232313030643138623335306135646436646436656231373436303335623131656232636538376366613365366166366362643833383038393064633832636464616136333330383230326565333038323032373561303033303230313032303230383439366432666266336139386461393733303061303630383261383634386365336430343033303233303637333131623330313930363033353530343033306331323431373037303663363532303532366636663734323034333431323032643230343733333331323633303234303630333535303430623063316434313730373036633635323034333635373237343639363636393633363137343639366636653230343137353734363836663732363937343739333131333330313130363033353530343061306330613431373037303663363532303439366536333265333130623330303930363033353530343036313330323535353333303165313730643331333433303335333033363332333333343336333333303561313730643332333933303335333033363332333333343336333333303561333037613331326533303263303630333535303430333063323534313730373036633635323034313730373036633639363336313734363936663665323034393665373436353637373236313734363936663665323034333431323032643230343733333331323633303234303630333535303430623063316434313730373036633635323034333635373237343639363636393633363137343639366636653230343137353734363836663732363937343739333131333330313130363033353530343061306330613431373037303663363532303439366536333265333130623330303930363033353530343036313330323535353333303539333031333036303732613836343863653364303230313036303832613836343863653364303330313037303334323030303466303137313138343139643736343835643531613565323538313037373665383830613265666465376261653464653038646663346239336531333335366435363635623335616532326430393737363064323234653762626130386664373631376365383863623736626236363730626563386538323938346666353434356133383166373330383166343330343630363038326230363031303530353037303130313034336133303338333033363036303832623036303130353035303733303031383632613638373437343730336132663266366636333733373032653631373037303663363532653633366636643266366636333733373033303334326436313730373036633635373236663666373436333631363733333330316430363033353531643065303431363034313432336632343963343466393365346566323765366334663632383663336661326262666432653462333030663036303335353164313330313031666630343035333030333031303166663330316630363033353531643233303431383330313638303134626262306465613135383333383839616134386139396465626562646562616664616362323461623330333730363033353531643166303433303330326533303263613032616130323838363236363837343734373033613266326636333732366332653631373037303663363532653633366636643266363137303730366336353732366636663734363336313637333332653633373236633330306530363033353531643066303130316666303430343033303230313036333031303036306132613836343838366637363336343036303230653034303230353030333030613036303832613836343863653364303430333032303336373030333036343032333033616366373238333531313639396231383666623335633335366361363262666634313765646439306637353464613238656265663139633831356534326237383966383938663739623539396639386435343130643866396465396332666530323330333232646435343432316230613330353737366335646633333833623930363766643137376332633231366439363466633637323639383231323666353466383761376431623939636239623039383932313631303639393066303939323164303030303331383230313863333038323031383830323031303133303831383633303761333132653330326330363033353530343033306332353431373037303663363532303431373037303663363936333631373436393666366532303439366537343635363737323631373436393666366532303433343132303264323034373333333132363330323430363033353530343062306331643431373037303663363532303433363537323734363936363639363336313734363936663665323034313735373436383666373236393734373933313133333031313036303335353034306130633061343137303730366336353230343936653633326533313062333030393036303335353034303631333032353535333032303834633330343134393531396435343336333030643036303936303836343830313635303330343032303130353030613038313935333031383036303932613836343838366637306430313039303333313062303630393261383634383836663730643031303730313330316330363039326138363438383666373064303130393035333130663137306433323331333033383330333333313334333233363331333935613330326130363039326138363438383666373064303130393334333131643330316233303064303630393630383634383031363530333034303230313035303061313061303630383261383634386365336430343033303233303266303630393261383634383836663730643031303930343331323230343230343532666263656430373962393232386666393763353931643362326432323364633239376139383561376338376235613337393836653438653736626133373330306130363038326138363438636533643034303330323034343733303435303232303165336531373939663330343731633339366166626635316463346637643035333239303139393734326163373836383634353133646462383464343835383030323231303065656463653563356138313661623366666263323664613830623637383064646261313933313538323261393839656330396264306665386136623766326134303030303030303030303030227D ``` **When completing your testing process, you will need to exchange the sandbox file with the production file.** ## Step 2: Enabling the Apple Pay Payment Method By using the [VAS-Enable API request](https://docs-staging.payme.io/payments/apple-pay/post-vas-enable-apple-pay), you will need to register your websites to PayMe's system. ```json { "payme_client_key": "payme_partner_key", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "vas_payme_id": "VASLDEMO-VASLDEMO-VASLDEMO-1234567", "vas_data": { "websites": [ "payme.io", "marketplace.payme.io" ] }, "language": "en" } ``` A successful response will be 200 and includes a payload in the form of: ```json { "status_code": 0, "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "vas_payme_id": "VASLDEMO-VASLDEMO-VASLDEMO-1234567", "vas_description": "Payments Account", "vas_type": "AlternativePaymentMethod", "vas_api_key": "", "vas_is_active": true, "vas_payer_type": 2, "vas_price_currency": "ILS", "vas_price_setup_fixed": 0, "vas_price_periodic_fixed": 0, "vas_price_periodic_variable": "0.00", "vas_price_usage_fixed": 0, "vas_price_usage_variable": "0.00", "vas_market_fee": null, "vas_period": 1, "vas_data": { "websites": [ "test5.paymeservice.com" ] } } ``` A failed response will be 500 and includes a payload in the form of: ```json { "status_code": 1, "status_error_details": "The service was not activated", "status_additional_info": null, "status_error_code": 720 } ``` ## Step 3: Add Apple iCloud account and Testing Cards > **Testing iCloud account will be provided by PayMe.** You can find credit cards for testing purposes [Test Cards and Payment Methods](https://docs-staging.payme.io/payments/introduction/test-cards-and-payment-methods#apple-pay-testing-information). ## Step 4: Add and Present the Apple Pay Button Before you can start _Apple Payment_ you have to create an _Apple Sale_, which will be paid by your customer. > > **Apple sale** - You will need to generate a new sale using the API `generate-sale` method presented in our documentation [Generate Sale with Apple Pay](https://docs-staging.payme.io/payments/apple-pay/post-generate-sale-apple-pay) and briefly below. > _Request_ ```raw POST https://.payme.io/api/generate-sale Content-Type: application/json PayMe-Public-Key: 9ec*****-****-****-****-*********881 { "seller_payme_id":"MPL14950-********-********-HMWATSBQ", "sale_price":"1000", "currency":"ILS", "product_name": "Test", "installments":"1", "sale_payment_method": "apple-pay", "language": "en" } ``` ```json http { "method": "post", "url": "https://.payme.io/api/generate-sale", "headers": { "Content-Type": "application/json" }, "body": { "seller_payme_id":"MPL90012-90012EXM-EXAMPLE0-EXAMPLE9", "sale_price":"1000", "currency":"ILS", "product_name": "Test", "installments":"1", "sale_payment_method": "apple-pay", "language": "en" } } ``` _Response_ ```json { "status_code": 0, "sale_url": "https://.payme.io/sale/generate/SALE1645-********-********-F2DUVUQI", "payme_sale_id": "SALE1645-********-********-F2DUVUQI", "payme_sale_code": 1027305, "price": 1000, "transaction_id": "", "currency": "ILS", "sale_payment_method": "apple-pay" } ``` After a successful sale creation, please save the `payme_sale_id` value from the response you receive for future usage. ### Add libraries For security reasons Apple allows to use Apple Pay only with their hosted library. It means you should add it before PayMe integration library. ```html ... ``` This will allow you to use `PayMe` global object later ### Check if the client's system supports Apple Pay > **Rule of thumb** > > You must check Apple Payment availability for your client! > In order check if a payment thorough Apple Pay is available for your client we provide two helper methods: 1. `PayMe.isApplePayAvailable()` 2. `PayMe.isSupportsApplePayVersion()` Also you can check what version of Apple Payment API you are using in `PayMe.applePayApiVersion` **If the client's environment has no support for Apple Payments, please do not show Apple Pay button** (described in the following step). ```javascript if(PayMe.isApplePayAvailable()){ console.log('ApplePay available'); } else { console.log('ApplePay unavailable'); } if(PayMe.isSupportsApplePayVersion()) { console.log('ApplePay version ' + PayMe.applePayApiVersion + ' supported'); } else { console.log('This ApplePay version is not supported'); } ``` ### “Fast and Simple”: Pay with Apple button Please follow the [**Buttons and Marks**](https://developer.apple.com/design/human-interface-guidelines/apple-pay/overview/buttons-and-marks/) article in the Apple official website. ```html ``` Please pay attention on the `id` and `locale` attribute. You will need `id` or `class` or other CSS selector to tell integration library how to find _Pay Button_. The `locale` is a custom attribute, one of many which let you [customize Apple Pay Button appearance](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaybuttonstyle). If your use case is not meet this type of implementation you can provide any CSS selector (even for non existing DOM element) and follow [***“Manual”: Initiate Payment manually approach***](#manual-initiate-payment-manually) ### Initialization After implementing the certificate file, update PayMe Partners partners@payme.io to verify your domain was approved by apple, and to provide your Merchant API key. ```javascript ... // This is the Merchant API key (Test API key in this case) var apiKey = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; ... ``` Second, you must obtain integration **instance** for the merchant ```javascript var apiKey = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; // There is optional configuration object with testMode: true // because we are using the API key from the test server PayMe.create(apiKey, { testMode: true }) .then(function (instance) { // Here we can work with successfully initialized // integration instance - Integration Manager ... }) .catch(function(error) { // Here you can handle instantiation error ... }); ... ``` #### Initialization settings Property | Default value | Available values | Description ----------------- | :--------------: | :-----------------: | ------------- `testMode` | false | true / false | `Test mode` - used to control in which environment payment will be processed Next step - to initialize integration type and get corresponding manager > **Note** > > Integration Manager **instance** also can be used for [Hosted Fields](LINK_TO_HF) integration ### ApplePay sale Using initialized integration manager you need to use earlier created Sale to create Apple Sale. Just call `.appleSale(...)` method and get back _AppleSale_. We will use it to initiate Payment Flow and be notified on progress. ```html ... ... ``` ### Allow user to Start payment Because of security reasons you can't just start Apple Payment flow, only user action (click or tap Apple Pay Button) can trigger this flow. Because of that you must initiate this for your user with `.letsRock(...)` method with Apple Pay Button selector. Or you should check [***“Manual”: Initiate Payment manually***](#manual-initiate-payment-manually) section for additional options. ```html ... ... ``` #### Interaction Facade Highly likely, you will need to receive information of the status of your payment to build your own user experience, _Apple Sale_ provides this option by defining plain configuration object for `.letsRock(...)` method. ```javascript var config = { // Required payButtonSelector: '#pay-with-apple-pay', // Optional canceled: function(){ console.log('AppleSale cancelled'); }, // Optional validated: function(err) { if(!!err){ console.error('AppleSale validation error '+err.message); } else { console.log('AppleSale validated successfully'); } }, // Optional paymentCompleted: function (err, sale) { if(!!err){ console.error('AppleSale failed ' + err.message); } else { console.log('Sale Payed' + JSON.stringify(sale, null, 2)); } }, }; ``` #### Interaction Facade Property | Default value | Available values | Description ----------------- |:-------------:|:------------------------:| ------------- `payButtonSelector` | _none_ | _any valid CSS selector_ | Selector to find _Apple Pay Button_ on the page `canceled` | () => {} | _callback function_ | This function will be called on _Apple Sale_ cancellation `validated` | () => {} | _callback function_ | This function will be called after _Apple Sale_ validated by the user `paymentCompleted` | () => {} | _callback function_ | This function will on _Apple Sale_ completion with the result This facade will allow you to register your callbacks and handle changes in your application. ### “Manual”: Initiate Payment manually Sometimes you will need to use our integration library to solve some tricky edge case and you can not provide *Pay Button* on your page to be picked by the library. This require to provide alternative way to kick-off Apple payment flow programmatically. We are letting you todo that by calling `startPayment()` function for the prepared ApplePay sale. Lets review a technical meaning by adapting example from Allow user to Start payment ```html ... ... ``` > **Only user action can initiate Apple Payment flow!** > > >As a reminder we would like to repeat the limitation from Apple: > >***You can not just start Apple Payment flow with startPayment() function, only user action (click or tap on the DOM node) can trigger this flow.*** > >It means even if you will try to postMessage from iFrame using `setTimeout()` in hope to catch it on the host page, >this case will be detected by Apple and will end up with error ***"Must create a new ApplePaySession from a user gesture handler"*** >([Creating an Apple Pay Session | Apple Developer Documentation](https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/creating_an_apple_pay_session)) As code listing shows, we just defined argument for the `letsRock.then(...)` callback with name `startPaymentFn` (you can give it any name). This argument is a synchronous function, you can use it as an event handler for your implementation., like we did in our example. ## Step 5: Test your integration To verify the ingeration works as expected: 1. Add our test page under your domain. For example: `{your domain}/apple-pay-test.html` see page below. 2. Fill merchant.paymeproduction under merchantIdentifier 3. Enter your apiKey under publickKey 4. Generate sale as described in step 4 and enter the sale id received 5. Start interaction - will initiate the payment flow with apple pay Test Page: ![test page.png](<../../assets/images/test page.png>) ```json Example Bootstrap implementation
 










```



## Errors and Reasons

Your responsibility is to handle possible errors related to the Apple Pay. We provide a limited list of logical errors to help you easily identify and handle mistakes or show localized descriptions for your users.
Below, you will be ale to find  detailed information and hints for you to help your end-users.

##### 1. NOT_SUPPORTED_DEVICE (`no-supported:apple-pay-not-available-for-device`) and NO_APPLE_PAY (`no-supported:apple-pay-jsapi-not-available`)
> **A context**
>
> Apple Payment can work only in Safari Browsers on Apple Devices.
>
> Before you can offer your clients this payment method, you have to check is it possible to execute
> Apple Payment on the client device. To do this check we are providing special helper-methods
> (`PayMe.isApplePayAvailable()` and `PayMe.isSupportsApplePayVersion()`). But there is possible situation
> when you ignored this check and tried to create _AppleSale_. In case of unsupported environment
> you will receive this error
>

**Reason**

Attempt to create _AppleSale_ on unsupported environment (not an Apple Browser, not an Apple Device)

**Possible Solutions**

1. You must use `PayMe.isApplePayAvailable()` and `PayMe.isSupportsApplePayVersion()` before _Apple Sale_ creation
   and fallback to the alternative logic in case of negative result.





##### 2. NOT_SUPPORTED_VERSION (`no-supported:apple-pay-version-not-supported`)
> **A context**
>
> Our integration library is based on the official Apple Pay JSAPI. The official library offers
> different integration versions. We use v4 to cover as many devices as possible.
>

**Reason**

Attempt to create _AppleSale_ on environment which is not supported by the current version of Apple Payment

**Possible Solutions**

1. Unfortunately, we have no solution for this situation (_TODO - discuss this_);




##### 3. VALIDATION_NO_NETWORKS (`validation-error:no-supported-networks`)
> **A context**
>
> Each of our merchants has limited set of supported Credit Card Brands aka Networks.
> These networks will be checked before start of Apple Payment.
>

**Reason**

Current merchant has no Networks supported by Apple

**Possible Solutions**

1. Please reach our support service to solve this issue.




##### 4. VALIDATION_NO_NETWORKS (`validation-error:no-supported-networks`)
> **A context**
>
> Each of our merchants has limited set of supported Credit Card Brands aka Networks.
> These networks will be checked before the Apple Pay flow starts.
>

**Reason**

Current merchant has no Networks supported by Apple

**Possible Solutions**

1. Please reach our support service to solve this issue.




##### 5. INVALID_CFG_PARAM (`validation:unknown-configuration-parameter`)
> **A context**
>
> To start Apple Payment Flow you must provide simple config data.
>

**Reason**

Invalid configuration provided for `letsRock(...)` method

**Possible Solutions**

1. Please check what was provided as config data




##### 6. INVALID_VALIDATED_CB (`validation:invalid-type-for-validated-callback`) and INVALID_CANCELLED_CB (`validation:invalid-type-for-cancelled-callback`) end INVALID_COMPLETED_CB (`validation:invalid-type-for-payment-completed-callback`)
> **A context**
>
> To let your code know about status of Apple Sale we let you provide
> callback functions. These functions will be called by the integration on status change.
>

**Reason**

Invalid configuration provided for `letsRock(...)` method

**Possible Solutions**

1. Please check what is callback provided as part of config data




##### 7. NOT_A_FUNCTION (`validation:argument-is-not-a-function`)
> **A context**
>
> According to previous sections you must provide a callback functions if you interested to be
> notified on Apple Sale state change
>

**Reason**

Provided not function but something else as a callback(s)

**Possible Solutions**

1. Please check what provided as part of config data







#### Error messages localization

To keep the integration in place, we are not providing any translation possibilities in favor of mnemonic messages. It means our error
messages will look to user too technical. To make them human-readable you have to transform it to messages you want



```javascript
var translatedMessages = {
  'not-found:apple-pay-button-not-found': 'Unable to find Pay button on your page',
  'no-supported:apple-pay-not-available-for-device': 'This device does not support Apple Pay',
  'no-supported:apple-pay-jsapi-not-available': 'This device does not support Apple Pay',
  'no-supported:apple-pay-version-not-supported': 'This device does not support current Apple Pay API version',
  // Other errors ...
};

// Other code...

// Run Apple Payment
sale.letsRock(config).catch(function (err) {
  // Getting translated human-readable error message
  const hriMessage = translatedMessages[err.message];
  alert(hriMessage);
});

// Other code...

```

For your convenience, we gathered all of the possible error-messages in to the Hash inside _PayMe_ global object, it means
instead of doing the following:



```javascript
var translatedMessages = {
  'not-found:apple-pay-button-not-found': 'Unable to find Pay button on your page',
  'no-supported:apple-pay-not-available-for-device': 'This device does not support Apple Pay',
  'no-supported:apple-pay-jsapi-not-available': 'This device does not support Apple Pay',
  'no-supported:apple-pay-version-not-supported': 'This device does not support current Apple Pay API version',
  // Other errors ...
};
```

A better option would be to do the following:



```javascript
// Doing shortcut, for convenience
var messages = PayMe.ERR_MESSAGES;

// Defining hri messages
var translatedMessages = {
  // Errors related to the client environment
  [messages.NO_PAY_BUTTON]: 'Unable to find Pay button on your page',
  [messages.NOT_SUPPORTED_DEVICE]: 'This device does not support Apple Pay',
  [messages.NO_APPLE_PAY]: 'This device does not support Apple Pay',
  [messages.NOT_SUPPORTED_VERSION]: 'This device does not support current Apple Pay API version',

  // Technical errors (ideally should not occur on production)
  [messages.VALIDATION_NO_NETWORKS]: 'There are no supported Credit Card networks for this seller',
  [messages.INVALID_VALIDATED_CB]: 'There is incorrect sale Validatied callback provided by the implementer',
  [messages.INVALID_CANCELLED_CB]: 'There is incorrect sale Cancelled callback provided by the implementer',
  [messages.INVALID_COMPLETED_CB]: 'There is incorrect sale Completed callback provided by the implementer',
  [messages.INVALID_CFG_PARAM]: 'Implementer provided invaid configuration paramener',
  [messages.NOT_A_FUNCTION]: 'This is not a function!'
};
```

## Apple Pay Impelementation using iFrame
If you are willing to implement the apple pay button using an iframe, please get in touch with our integration team for further information.

- [Apple Pay - Full Flow Control](https://docs-staging.payme.io/marketplaces-and-platforms/payments/apple-pay-full-flow-control): The payment method is limited to be used in the following devices manufactured by Apple:

# Apple Pay Full Flow Control

The payment method is limited to be used in the following devices manufactured by Apple:

| **iOS Devices**                                     | **Mac OS Devices**                                                                                                                      |
| --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| Safari browser , on an Apple Pay-enabled iOS device | Safari browser on a Macbook Pro with Touch ID or a Mac model 2012 or later paired to a compatible iOS/Apple Watch with handoff enabled. |

In order to be able to accept Apple Pay payments on your website, you will need to complete the following steps:

1. Adding the file to your website, under the proper folder (Explained in [Step 1](#step-1-domain-verification)).
2. Signing up your website to Apple Pay via [/api/vas-enable](https://docs-staging.payme.io/payments/apple-pay/post-vas-enable-apple-pay) request.
3. Logging in to a [Testing iCloud account](#step-3-add-apple-icloud-account-and-testing-cards). (The account credentials will be provided by PayMe)
4. Use our API to [generate a new payment using Apple Pay](https://docs-staging.payme.io/payments/apple-pay/post-generate-sale-apple-pay).

### Devices supported for Sandbox Testing

You can use the following devices for testing in sandbox:

- iPhone 6 or later
- iPad mini 3 or later
- iPad Air 2
- iPad Pro
- Apple Watch

**Please note that you can not use Mac device for testing.**

## Step 1: Domain Verification

The first step in the process of accepting Apple Pay on your webiste will be to register your domains. You will need to register both top-level domains and sub-domains serperately.

Top-level domain example: `www.payme.io`

Sub-domain example: `www.marketplace.payme.io`

### Hosting the Apple Pay's domain verification file on your server

Host the file at `/.well-known/apple-developer-merchantid-domain-association` on your domain(s) that will display the Apple Pay button.

> Sandbox and Live environments files Will be provided by your PayMe integrator.

**When completing your testing process, you will need to exchange the sandbox file with the production file.**

## Step 2: Enabling the Apple Pay Payment Method

By using the [VAS-Enable API request](https://docs-staging.payme.io/payments/apple-pay/post-vas-enable-apple-pay), you will need to register your websites to PayMe's system.

```json
{
  "payme_client_key": "payme_partner_key",
  "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567",
  "vas_payme_id": "VASLDEMO-VASLDEMO-VASLDEMO-1234567",
  "vas_data": {
      "websites": [
      "payme.io", "marketplace.payme.io"
      ]
  },
  "language": "en"
}
```

A successful response will be 200 and includes a payload in the form of:

```json
{
    "status_code": 0,
    "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567",
    "vas_payme_id": "VASLDEMO-VASLDEMO-VASLDEMO-1234567",
    "vas_description": "Payments Account",
    "vas_type": "AlternativePaymentMethod",
    "vas_api_key": "",
    "vas_is_active": true,
    "vas_payer_type": 2,
    "vas_price_currency": "ILS",
    "vas_price_setup_fixed": 0,
    "vas_price_periodic_fixed": 0,
    "vas_price_periodic_variable": "0.00",
    "vas_price_usage_fixed": 0,
    "vas_price_usage_variable": "0.00",
    "vas_market_fee": null,
    "vas_period": 1,
    "vas_data": {
        "websites": [
            "test5.paymeservice.com"
        ]
    }
}
```

A failed response will be 500 and includes a payload in the form of:

```json
{
    "status_code": 1,
    "status_error_details": "The service was not activated",
    "status_additional_info": null,
    "status_error_code": 720
}
```

## Step 3: Add Apple iCloud account and Testing Cards

> **Testing iCloud account will be provided by PayMe.**

You can find credit cards for testing purposes [Test Cards and Payment Methods](https://docs-staging.payme.io/payments/introduction/test-cards-and-payment-methods#apple-pay-testing-information).

## Step 4: Add and Present the Apple Pay Button

Before you can start _Apple Payment_ you have to create an _Apple Sale_, which will be paid by your customer.

> **Apple sale** - You will need to generate a new sale using the API `generate-sale` method presented in our documentation [Generate Sale with Apple Pay](https://docs-staging.payme.io/payments/apple-pay/post-generate-sale-apple-pay) and briefly below.

_Request_

```raw
POST https://.payme.io/api/generate-sale
Content-Type: application/json
PayMe-Public-Key: 9ec*****-****-****-****-*********881

{
  "seller_payme_id":"MPL14950-********-********-HMWATSBQ",
  "sale_price":"1000",
  "currency":"ILS",
  "product_name": "Test",
  "installments":"1",
  "sale_payment_method": "apple-pay",
  "language": "en"
}
```

```json http
{
  "method": "post",
  "url": "https://.payme.io/api/generate-sale",
  "headers": {
    "Content-Type": "application/json"
  },
  "body": {
  "seller_payme_id":"MPL90012-90012EXM-EXAMPLE0-EXAMPLE9",
  "sale_price":"1000",
  "currency":"ILS",
  "product_name": "Test",
  "installments":"1",
  "sale_payment_method": "apple-pay",
  "language": "en"
  }
}
```

_Response_

```json
{
    "status_code": 0,
    "sale_url": "https://.payme.io/sale/generate/SALE1645-********-********-F2DUVUQI",
    "payme_sale_id": "SALE1645-********-********-F2DUVUQI",
    "payme_sale_code": 1027305,
    "price": 1000,
    "transaction_id": "",
    "currency": "ILS",
    "sale_payment_method": "apple-pay"
}
```

After a successful sale creation, please save the `payme_sale_id` value from the response you receive for future usage.

### Add libraries

For security reasons Apple allows to use Apple Pay only with their hosted library. It means you
should add it before PayMe integration library.

```html lineNumbers



  
  
  
  
  
  
  


...

```

This will allow you to use `PayMe` global object later

### Check if the client's system supports Apple Pay

> **Rule of thumb**
>
> You must check Apple Payment availability for your client!

In order check if a payment thorough Apple Pay is available for your client we provide two helper methods:

1. `PayMe.isApplePayAvailable()`
2. `PayMe.isSupportsApplePayVersion()`

Also you can check what version of Apple Payment API you are using in `PayMe.applePayApiVersion`

**If the client's environment has no support for Apple Payments, please do not show Apple Pay button** (described in the following step).

```javascript title="Integrator must check availability before start" lineNumbers
if(PayMe.isApplePayAvailable()){
  console.log('ApplePay available');
} else {
  console.log('ApplePay unavailable');
}

if(PayMe.isSupportsApplePayVersion()) {
  console.log('ApplePay version ' + PayMe.applePayApiVersion + ' supported');
} else {
  console.log('This ApplePay version is not supported');
}
```

### “Fast and Simple”: Pay with Apple button

Please follow the [**Buttons and Marks**](https://developer.apple.com/design/human-interface-guidelines/apple-pay/overview/buttons-and-marks/) article in the Apple official website.

```html lineNumbers




  

  
  
  
  



    
    
    

    
    


```

Please pay attention on the `id` and `locale` attribute. You will need `id` or `class` or other CSS selector
to tell integration library how to find _Pay Button_. The `locale` is a custom attribute, one of many which
let you [customize Apple Pay Button appearance](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaybuttonstyle).
If your use case is not meet this type of implementation you can provide any CSS selector (even for non existing DOM element) and
follow [_**“Manual”: Initiate Payment manually approach**_](manual-initiate-payment-manually)

### Initialization

You must get and provide your Merchant API key from Settings page in the dashboard.

```javascript
...
// This is the Merchant API key (Test API key in this case)
var apiKey = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';
...
```

Second, you must obtain integration **instance** for the merchant

```javascript lineNumbers
var apiKey = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';

// There is optional configuration object with testMode: true
// because we are using the API key from the test server
PayMe.create(apiKey, { testMode: true })
    .then(function (instance) {
    
      // Here we can work with successfully initialized
      // integration instance - Integration Manager
       ...
    })
    .catch(function(error) {
      // Here you can handle instantiation error
      ...
    });
    
...
```

#### Initialization settings

| Property   | Default value | Available values | Description                                                                  |
| ---------- | :-----------: | :--------------: | ---------------------------------------------------------------------------- |
| `testMode` |     false     |   true / false   | `Test mode` - used to control in which environment payment will be processed |

Next step - to initialize integration type and get corresponding manager

> **Note**
>
> Integration Manager **instance** also can be used for [Hosted Fields](LINK_TO_HF) integration

### ApplePay sale

Using initialized integration manager you need to use earlier created Sale to create Apple Sale.
Just call `.appleSale(...)` method and get back _AppleSale_. We will use it to initiate Payment Flow
and be notified on progress.

```html lineNumbers

    
        
        ...
    
    
        
        ...
        

        
        
    
    
```

### Allow user to Start payment

Because of security reasons you can't just start Apple Payment flow, only user action
(click or tap Apple Pay Button) can trigger this flow. Because of that you must initiate
this for your user with `.letsRock(...)` method with Apple Pay Button selector.
Or you should check [_**“Manual”: Initiate Payment manually**_](#manual-initiate-payment-manually)  section for additional options.

```html lineNumbers

    
        
        ...
    
    
        
        ...
        

        
        
    

```

#### Interaction Facade

Highly likely, you will need to receive information of the status of your payment to
build your own  user experience, _Apple Sale_ provides this option by defining plain configuration
object for `.letsRock(...)` method.

```javascript lineNumbers
var config = {
  
  // Required
  payButtonSelector: '#pay-with-apple-pay',
  
  // Optional
  canceled: function(){
    console.log('AppleSale cancelled');
  },
  
  // Optional
  validated: function(err) {
    if(!!err){
      console.error('AppleSale validation error '+err.message);
    } else {
      console.log('AppleSale validated successfully');
    }
  },
  
  // Optional
  paymentCompleted: function (err, sale) {
    if(!!err){
      console.error('AppleSale failed ' + err.message);
    } else {
      console.log('Sale Payed' + JSON.stringify(sale, null, 2));
    }
  },
};
```

#### Interaction Facade

| Property            | Default value |     Available values     | Description                                                           |
| ------------------- | :-----------: | :----------------------: | --------------------------------------------------------------------- |
| `payButtonSelector` |     _none_    | _any valid CSS selector_ | Selector to find _Apple Pay Button_ on the page                       |
| `canceled`          |    () => {}   |    _callback function_   | This function will be called on _Apple Sale_ cancellation             |
| `validated`         |    () => {}   |    _callback function_   | This function will be called after _Apple Sale_ validated by the user |
| `paymentCompleted`  |    () => {}   |    _callback function_   | This function will on _Apple Sale_ completion with the result         |

This facade will allow you to register your callbacks and handle changes in your application.

### “Manual”: Initiate Payment manually

Sometimes you will need to use our integration library to solve some tricky edge case and you can not provide
_Pay Button_ on your page to be picked by the library. This require to provide alternative way to kick-off Apple
payment flow programmatically. We are letting you todo that by calling `startPayment()` function for the prepared ApplePay sale.

Lets review a technical meaning by adapting example from Allow user to Start payment

```html

    
        
        ...
    
    
        ...
        
        
    

```

> **Only user action can initiate Apple Payment flow!**
>
> As a reminder we would like to repeat the limitation from Apple:
>
> _**You can not just start Apple Payment flow with startPayment() function, only user action (click or tap on the DOM node) can trigger this flow.**_
>
> It means even if you will try to postMessage from iFrame using `setTimeout()` in hope to catch it on the host page,
> this case will be detected by Apple and will end up with error _**"Must create a new ApplePaySession from a user gesture handler"**_
> ([Creating an Apple Pay Session | Apple Developer Documentation](https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/creating_an_apple_pay_session))

As code listing shows, we just defined argument for the `letsRock.then(...)` callback with name `startPaymentFn`
(you can give it any name). This argument is a synchronous function, you can use it as an event handler for
your implementation., like we did in our example.

## Errors and Reasons

Your responsibility is to handle possible errors related to the Apple Pay. We provide a limited list of logical errors to help you easily identify and handle mistakes or show localized descriptions for your users.
Below, you will be ale to find  detailed information and hints for you to help your end-users.

##### 1. NOT_SUPPORTED_DEVICE (`no-supported:apple-pay-not-available-for-device`) and NO_APPLE_PAY (`no-supported:apple-pay-jsapi-not-available`)

> **A context**
>
> Apple Payment can work only in Safari Browsers on Apple Devices.
>
> Before you can offer your clients this payment method, you have to check is it possible to execute
> Apple Payment on the client device. To do this check we are providing special helper-methods
> (`PayMe.isApplePayAvailable()` and `PayMe.isSupportsApplePayVersion()`). But there is possible situation
> when you ignored this check and tried to create _AppleSale_. In case of unsupported environment
> you will receive this error

**Reason**

Attempt to create _AppleSale_ on unsupported environment (not an Apple Browser, not an Apple Device)

**Possible Solutions**

1. You must use `PayMe.isApplePayAvailable()` and `PayMe.isSupportsApplePayVersion()` before _Apple Sale_ creation
   and fallback to the alternative logic in case of negative result.

##### 2. NOT_SUPPORTED_VERSION (`no-supported:apple-pay-version-not-supported`)

> **A context**
>
> Our integration library is based on the official Apple Pay JSAPI. The official library offers
> different integration versions. We use v4 to cover as many devices as possible.

**Reason**

Attempt to create _AppleSale_ on environment which is not supported by the current version of Apple Payment

**Possible Solutions**

1. Unfortunately, we have no solution for this situation (_TODO - discuss this_);

##### 3. VALIDATION_NO_NETWORKS (`validation-error:no-supported-networks`)

> **A context**
>
> Each of our merchants has limited set of supported Credit Card Brands aka Networks.
> These networks will be checked before start of Apple Payment.

**Reason**

Current merchant has no Networks supported by Apple

**Possible Solutions**

1. Please reach our support service to solve this issue.

##### 4. VALIDATION_NO_NETWORKS (`validation-error:no-supported-networks`)

> **A context**
>
> Each of our merchants has limited set of supported Credit Card Brands aka Networks.
> These networks will be checked before the Apple Pay flow starts.

**Reason**

Current merchant has no Networks supported by Apple

**Possible Solutions**

1. Please reach our support service to solve this issue.

##### 5. INVALID_CFG_PARAM (`validation:unknown-configuration-parameter`)

> **A context**
>
> To start Apple Payment Flow you must provide simple config data.

**Reason**

Invalid configuration provided for `letsRock(...)` method

**Possible Solutions**

1. Please check what was provided as config data

##### 6. INVALID_VALIDATED_CB (`validation:invalid-type-for-validated-callback`) and INVALID_CANCELLED_CB (`validation:invalid-type-for-cancelled-callback`) end INVALID_COMPLETED_CB (`validation:invalid-type-for-payment-completed-callback`)

> **A context**
>
> To let your code know about status of Apple Sale we let you provide
> callback functions. These functions will be called by the integration on status change.

**Reason**

Invalid configuration provided for `letsRock(...)` method

**Possible Solutions**

1. Please check what is callback provided as part of config data

##### 7. NOT_A_FUNCTION (`validation:argument-is-not-a-function`)

> **A context**
>
> According to previous sections you must provide a callback functions if you interested to be
> notified on Apple Sale state change

**Reason**

Provided not function but something else as a callback(s)

**Possible Solutions**

1. Please check what provided as part of config data

#### Error messages localization

To keep the integration in place, we are not providing any translation possibilities in favor of mnemonic messages. It means our error
messages will look to user too technical. To make them human-readable you have to transform it to messages you want

```javascript lineNumbers
var translatedMessages = {
  'not-found:apple-pay-button-not-found': 'Unable to find Pay button on your page',
  'no-supported:apple-pay-not-available-for-device': 'This device does not support Apple Pay',
  'no-supported:apple-pay-jsapi-not-available': 'This device does not support Apple Pay',
  'no-supported:apple-pay-version-not-supported': 'This device does not support current Apple Pay API version',
  // Other errors ...
};

// Other code...

// Run Apple Payment
sale.letsRock(config).catch(function (err) {
  // Getting translated human-readable error message
  const hriMessage = translatedMessages[err.message];
  alert(hriMessage);
});

// Other code...

```

For your convenience, we gathered all of the possible error-messages in to the Hash inside _PayMe_ global object, it means
instead of doing the following:

```javascript lineNumbers
var translatedMessages = {
  'not-found:apple-pay-button-not-found': 'Unable to find Pay button on your page',
  'no-supported:apple-pay-not-available-for-device': 'This device does not support Apple Pay',
  'no-supported:apple-pay-jsapi-not-available': 'This device does not support Apple Pay',
  'no-supported:apple-pay-version-not-supported': 'This device does not support current Apple Pay API version',
  // Other errors ...
};
```

A better option would be to do the following:

```javascript lineNumbers
// Doing shortcut, for convenience
var messages = PayMe.ERR_MESSAGES;

// Defining hri messages
var translatedMessages = {
  // Errors related to the client environment
  [messages.NO_PAY_BUTTON]: 'Unable to find Pay button on your page',
  [messages.NOT_SUPPORTED_DEVICE]: 'This device does not support Apple Pay',
  [messages.NO_APPLE_PAY]: 'This device does not support Apple Pay',
  [messages.NOT_SUPPORTED_VERSION]: 'This device does not support current Apple Pay API version',

  // Technical errors (ideally should not occur on production)
  [messages.VALIDATION_NO_NETWORKS]: 'There are no supported Credit Card networks for this seller',
  [messages.INVALID_VALIDATED_CB]: 'There is incorrect sale Validatied callback provided by the implementer',
  [messages.INVALID_CANCELLED_CB]: 'There is incorrect sale Cancelled callback provided by the implementer',
  [messages.INVALID_COMPLETED_CB]: 'There is incorrect sale Completed callback provided by the implementer',
  [messages.INVALID_CFG_PARAM]: 'Implementer provided invaid configuration paramener',
  [messages.NOT_A_FUNCTION]: 'This is not a function!'
};
```

## Full Flow Control

Some use cases may require fully granular control on `AppleSale` verification and initiation. To make it possible we provide method to create API using `.manual()`

> `.manual()` This method will create a manual API request to manage newly created PayMe `AppleSale`
>
> - `.verify()` - `AppleSale` data verification before initialization
>
> - `.preparePayment(sale)` - This is a factory to initialize and configure AppleSale. This factory will return startPaymentFn() which should be invoked from _**a user gesture handler**_

### Example

```html

    
        
        ...
    
    
        ...
        
        
    

```

- [Google Pay](https://docs-staging.payme.io/marketplaces-and-platforms/payments/google-pay): Google Pay™ allows your customers to pay quickly and securely using payment methods saved in their Google Account. Google Pay is fully compatible with PayMe’s products and features: You can use it for traditional payments and multi payments page.

# Google Pay

Google Pay™ allows your customers to pay quickly and securely using payment methods saved in their Google Account. 


Google Pay is fully compatible with PayMe’s products and features: You can use it for traditional payments and multi payments page.

In order to be able to accept Google Pay payments on your website, first contact PayMe Partners partners@payme.io to start the integration process.

We support VISA, Mastercard, American Express, Discover and JCB card networks with the Google Pay API. If you're missing one of these in your PayMe account, you can reach out our team to add the missing network at support@payme.io. 



PayMe handles all the technical complexity - you just need to create a sale and redirect customers to our payment page.



## Prerequisites
- Active PayMe merchant account
- Google Pay VAS (Value Added Service) enabled in your account
- HTTPS-enabled website (required for Google Pay)

## Google Pay terms
By integrating Google Pay, you must adhere to the [Google Pay and Wallet API's Acceptable Use Policy](https://payments.developers.google.com/terms/aup) and accept Google’s [terms of service](https://payments.developers.google.com/terms/sellertos)

## How it works
1. Create a Sale: Generate a Google Pay sale using PayMe API
2. Redirect Customer: Send customer to PayMe payment page
3. Customer Pays: Customer completes payment using Google Pay
4. Get Results: Receive payment confirmation via webhook or redirect

## Step 1: Enable Google Pay Payment Method
By using the [VAS-Enable API request](https://docs-staging.payme.io/payments/apple-pay/post-vas-enable-apple-pay), 
you will need to register to PayMe's Google Pay service.

API call payload:
```json
{
  "payme_client_key": "payme_partner_key",
  "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567",
  "vas_payme_id": "VASLDEMO-GOOGLEPAY-VASLDEMO-1234567",
  "language": "en"
}
```

A successful response will be 200 and includes a payload in the form of:
```json
{
    "status_code": 0,
    "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567",
    "vas_payme_id": "VASLDEMO-GOOGLEPAY-VASLDEMO-1234567",
    "vas_description": "Payments Account",
    "vas_type": "AlternativePaymentMethod",
    "vas_api_key": "",
    "vas_is_active": true,
    "vas_payer_type": 2,
    "vas_price_currency": "ILS",
    "vas_price_setup_fixed": 0,
    "vas_price_periodic_fixed": 0,
    "vas_price_periodic_variable": "0.00",
    "vas_price_usage_fixed": 0,
    "vas_price_usage_variable": "0.00",
    "vas_market_fee": null,
    "vas_period": 1,
}
```

A failed response will be 500 and includes a payload in the form of:
```json
{
    "status_code": 1,
    "status_error_details": "The service was not activated",
    "status_additional_info": null,
    "status_error_code": 720
}

```

## Step 2: Create a Google Pay Sale
Before you can start Google Pay Payment you have to create a Google Pay Sale, which will be paid by your customer.


Use the PayMe API to create a sale with `sale_payment_method`: `google-pay`:


`POST https://.payme.io/api/generate-sale`

```json
POST /api/generate-sale
Content-Type: application/json

{
  "seller_payme_id": "MPL14950-XXXXXXXX-XXXXXXXX-HMWATSBQ",
  "sale_price": "1000",
  "currency": "ILS",
  "product_name": "Test Product",
  "installments": "1",
  "sale_payment_method": "google-pay",
  "sale_type": "sale",
  "language": "en"
}

```

Response:
```json
{
    "status_code": 0,
    "sale_url": "https://.payme.io/sale/generate/SALE1645-********-********-F2DUVUQI",
    "payme_sale_id": "SALE1645-********-********-F2DUVUQI",
    "payme_sale_code": 1027305,
    "price": 1000,
    "transaction_id": "",
    "currency": "ILS",
    "sale_payment_method": "google-pay"
}
```
After a successful sale creation, please save the `payme_sale_id` value from the response you received for future usage.


## Step 3: Add and Present the Google Pay Button
>The button should be shown only after availability checks pass.



You must use the official Google Pay logo and button assets in compliance with [Google Pay Android brand guidelines](https://developers.google.com/pay/api/android/guides/brand-guidelines) and [Google Pay web brand guidelines](https://developers.google.com/pay/api/web/guides/brand-guidelines), without modifications to the Google Pay asset colors, proportions, or appearance. 

### 3.1 Add PayMe SDK Library
``


 The SDK URL can switch between production and staging: `https://cdn.paymeservice.com/hf/v1/hostedfields.js` or `https://cdn.payme.io/hf/v1/hostedfields-staging.js`.

### 3.2 Add Google Pay Mount Point
`
` ### 3.3 Check Availability Before Showing the Button ```json const isGooglePayAvailable = await PayMe.isGooglePayAvailable(testMode); if (!isGooglePayAvailable) { // hide payment section or show fallback return; } ``` ### 3.4 Initialize PayMe and Create Google Sale Manager ```json const instance = await PayMe.create(apiKey, { testMode: testMode }); const googleSale = instance.googleSale({ saleGuid: paymeSaleId, debugFn: function(message) { console.log('[PayMe Debug]', message); } }); ``` ### 3.5 Bind the Button and Start Interaction ```json const interactionConfig = { payButtonSelector: '#pay-with-google-pay', buttonType: 'buy', buttonColor: 'default', canceled: function() { console.log('Payment cancelled by user'); }, paymentCompleted: function(err, sale) { if (err) { console.error('Payment failed:', err.message); } else { console.log('Payment completed:', sale); } } }; await googleSale.letsRock(interactionConfig); ``` **Important**: do not expose Google Pay UI when `isGooglePayAvailable` is false. Always provide fallback payment options. ## Step 4: Payment Processing The payment will be done by the buyer's card saved in his Google Pay wallet. * 3D secure service will not be required in the payment flow on mobile web or native apps due to Google card encryption. In other scenarios we will initiate a 3D Secure service to authenticate the buyer. PayMe will redirect the customer back to your `success_url` or `error_url` based on the payment result. ## Step 5: Test Your Integration 1. Configure defaults: server URL, partner key, seller PayMe ID, and public key. 2. Optionally enable `test_mode` and staging SDK URL. 3. Generate a Google Pay sale from `/generate-sale-form` using the Google Pay button. 4. Confirm availability check passes and Google Pay button appears. 5. Complete payment and verify `paymentCompleted` callback returns sale details. 6. Validate error and cancel flows using the wrapper log panel. ### Troubleshooting Issue | Likely Cause | Action ---------|----------|--------- Google Pay button does not appear | `PayMe.isGooglePayAvailable(testMode)` returned false | Check browser/device support and keep fallback payment methods enabled. Initialization fails | Invalid or missing public API key | Verify `public_key` in defaults and use the key for the selected environment. Sale errors on backend | Invalid payload or seller configuration | Verify MPL, sale fields, and that Google Pay VAS is activated for the seller. ### Complete Reference Snippet (Client Side) ```javascript
``` - [Bank transfer](https://docs-staging.payme.io/marketplaces-and-platforms/payments/bank-transfer): How to take a bank-transfer payment: create a pending bank transfer, wait for the callback, and treat `PAID` as funds received. # Bank-transfer ### General 1. POST /pending-bank-transfer and get a synchronous response with `"pending_transaction_id"` `"origin_payme_id"` , `"sale_status": "RECEIVED"` and relevant bank details 2. Wait for a callback notification to the provided `"sale_callback_url"` URL. 3. On "sale_status": `"PAID"` - funds are transferred to the merchant account and fees are charged. ![flow.png](https://docs-staging.payme.io/marketplaces-and-platforms/_files/PcDpe1jQFR8.png) | ENVIRONMENT | URL | | ----------- | ---------------------------------------------------- | | Sandbox | | | Production | | ### pending-bank-transfer #### POST Request ``` { "payme_client_key": "your partner client id here", "origin_payme_id": "Keep empty if 1st time, if 2nd time user - add MPL here", "target_payme_id":"Your seller account MPL - this is where you will get your money to ", "sale_price":1000000, "currency":"ILS", "product_name":"Cellular phone", "external_transaction_id":"12345", "sale_callback_url":"https://webhook.site/12346", "seller_email":"buyer@company.com", "seller_phone":"0500000007", "seller_merchant_name": "company name ltd", "seller_description": "An online store which specializes in rubber ducks", "seller_site_url": "www.babyduck22s.com", "seller_inc_code":"515123456", "seller_first_name":"אביב", "seller_last_name":"אברהם", "seller_social_id":"763438645", "seller_bank_code ": 54, "seller_bank_branch": 132, "seller_bank_account_number": "123456", "seller_address_city": "Tel Aviv", "seller_address_street": "Rothschild", "seller_address_street_number": "1", "seller_address_country": "IL", "risk": true, "data":{ }, "test":true, "seller_id": null, "seller_birthdate": null, "seller_social_id_issued": null, "seller_gender": null, "seller_contact_email": null, "seller_contact_phone": null, "seller_person_business_type": null, "seller_inc": null, "seller_retail_type": null, "market_fee": null } ``` ❗ \*seller_bank_account_number - PayMe will expect the transfer to arrive from the origin bank account and will use this infomration to automatically match the payments. in case money is trnasfered from a different account - expect longer time to process the transaction. #### Reponse 200 ``` { "origin_payme_id": "MPL1XXXXXXXX", "pending_transaction_id": "fcfbb481-94d0-421b-95f8-689610766491", "external_transaction_id": "12345", "status": "RECEIVED", "bank_transfer_details": { "bank_name": "בנק הפועלים", "bank_code": "12", "bank_branch":"778", "bank_account_number": "86684", "reference": "772012" } } ``` ❗ \*reference - A unique reference code to identify the bank transfer. Instruct your customer to include this code in the reference field of their bank transfer. Transfers without reference will take longer time to reconcile due to manual processes. *Origin_payme_id - Save this MPL for any future additioanl request from the same buyer. 500 in case of error or data not sufficient #### Callback Once the sale is paid successfully (PAID), we will notify the marketplace with the sale details with a POST to the callback URL. ``` { "pending_transaction_id": "XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX", "payme_sale_id": "XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX", "external_transaction_id": "132456", "status": "PAID", "status_details": "", "sale_price": 10000, "currency": "ILS", "sale_paid_date": "1970-01-20T05:05:51.972Z", "seller_merchant_name": "company name ltd", "seller_email": "buyer@company.com", "seller_inc_code": "515123456" } ``` ### Risk sale approved "status": "PAID", "status_details": "Risk approved", ### Risk sale rejected No callback ### Get-sales You can retrieve data on different sales processed by your sellers using this endpoint. ### Handling under and over-payments Due to low volume of unmatched transactions, Expect manual notifications to your account email address. ### Cancel-sale You can only cancel-sale if the status of the sale is ‘RECEIVED’ #### POST Request - [Israeli Direct Debit](https://docs-staging.payme.io/marketplaces-and-platforms/payments/israeli-direct-debit): In order to create a direct debit mandate for Israeli customers, you can use our generate-sale API endpoint to complete the two actions of: 1. Generating a mandate request. 2. Generating a new payment request. # Israeli Direct Debit In order to create a direct debit mandate for Israeli customers, you can use our generate-sale API endpoint to complete the two actions of: 1. Generating a mandate request. 2. Generating a new payment request. ### Generating a new bank authorization #### Prerequisits 1. Activating the service via vas-enable endpoint or the app marketplace. The solution is based on our iFrame, where the following details will be collected: 1. Account type (Invididual/Company/Non-Profit/etc) 2. Account Owner Name 3. Account Owner Social ID/Business Code 4. Email Address 5. Phone Number 6. Bank 7. Bank Branch 8. Bank Account Number 9. Signature In order to create a new bank authorization request, you will need to initiate the following request: ``` POST https://.payme.io/api/generate-sale { "seller_payme_id": "MPLTEST", "sale_price": "1000", "currency": "ILS", "product_name": "Shirt", "sale_payment_method": "il-direct-debit", "sale_type": "token" } ``` Please note that all fields are mandatory even though no actual charge will be captured for this type of sale. The response will include a URL for our iframe for the user to insert the details: ``` { "status_code": 0, "sale_url": "https://sandbox.payme.io/sale/generate/SALEGUID", "payme_sale_id": "SALEGUID", "payme_sale_code": 123456, "price": 100, "transaction_id": "", "currency": "ILS", "sale_payment_method": "il-direct-debit" } ``` Once the bank authorization request was successfully created, the token for the buyer will remain inactive until we receive an official update from the bank that the authorization was successfully created and the account can be charged - this process can take up to 7 work days. ### Creating a new payment request using the Israeli Direct Debit Payment Method In order to create a new payment request using the IL DD, you will need to use our generate-sale API in the following form: ``` { "seller_payme_id": "MPLTEST", "sale_price": "1000", "currency": "ILS", "product_name": "Shirt", "language": "en", "sale_payment_method": "il-direct-debit", "sale_type": "sale", "buyer_key": "BUYER1234" } ``` If the charging request was succesful, you will receive the following response: ``` { "status_code": 1, "payme_status": "success", "status_error_code": null, "payme_sale_id": "SALEGUID", "payme_sale_code": 1088759, "sale_created": "2022-07-03 08:52:16", "payme_sale_status": "pending", "sale_status": "initial", "currency": "ILS", "transaction_id": "", "is_token_sale": false, "price": 1000, "payme_signature": "signatureID", "sale_deferred_months": null, "payme_transaction_id": "TRANGUID", "payme_transaction_total": "1000", "payme_transaction_card_brand": "PrivateLabel", "payme_transaction_auth_number": null, "payme_transaction_voucher": null, "payme_transaction_emv_uid": null, "payme_transaction_acquirer": null, "payme_transaction_auth_source": null, "payme_transaction_card_issuer": null, "payme_transaction_credit_type": null, "buyer_name": "Ran Tester", "buyer_email": "TestTest@paymeservice.com", "buyer_phone": "05222222", "buyer_card_mask": null, "buyer_card_exp": null, "buyer_card_is_foreign": false, "buyer_social_id": "123456789", "installments": 1, "transaction_first_payment": "1000", "transaction_periodical_payment": 0, "sale_paid_date": "2022-07-03 08:54:10", "sale_release_date": null, "sale_3ds": false } ``` In this phase, the payment request will go through a process of validation with the related bank. The approval will be received after 8 calendar days - a decline will be received earlier than that. Both approval and declines can be communicated using our callback system. #### Authorization Cancellations and Revokes The bank is eligible to revoke an authorization at any point of time - this means that once an authorization is revoked, PayMe will update the token to be inactive and you won't be able to use it for new payments anymore. The update can be communicated using our callback system to your designated URL. - [Point Of Sale](https://docs-staging.payme.io/marketplaces-and-platforms/payments/point-of-sale): A POS system allows your business to accept payments from customers and keep track of sales. It sounds simple enough, but the setup can work in different ways, depending on whether you sell online, have a physical storefront, or both. ## Point Of Sale ### What is a POS and How does a POS system work at a small business? A POS system allows your business to accept payments from customers and keep track of sales. It sounds simple enough, but the setup can work in different ways, depending on whether you sell online, have a physical storefront, or both. A point-of-sale system used to refer to the cash register at a store. Today, modern POS systems are entirely digital, which means you can check out a customer wherever you are. All you need is a POS app and an internet-enabled device, such as a tablet or phone. ### How do you setup your Point-Of-Sale Device? Our POS solution is based on a simple setup process, that includes the following steps: 1. *Activating the service* - using [VAS Enable](https://docs-staging.payme.io/payments/point-of-sale-pos/post-vas-enable#1st-step) command to our API. 2. *New terminal* and device requests are generated - this process can take up to 5 business days. 3. *Pairing the device* - will be completed by PayMe - a callback will be sent to the partner with the device ID - this ID is critical in order to create new payment requests specificing the device as a part of the API request to [Sales endpoint](https://docs-staging.payme.io/payments/point-of-sale-pos/post-payment). The callback with the device ID will include both POS (device) ID and MPL for identification. 4. *Physical Devliery* - The Device shipping date will be scheduled by the Shipping company and the seller - Once the device is received, it will be immidiately ready for action with the switching on action. ### Payment Processing In the moment the device is received by the seller, it is immidiately ready to process payments. The request for new payments is initiated by our *sales* API endpoint, using the following request: ``` { "seller_payme_id": "string", "product_name": "string", "sale_price": 0, "currency": "USD", "transaction_id": "string", "sale_callback_url": "string", "payment": { "method": "pos", "pos_id": "string" }, "customer": { "name": "string", "email": "string", "phone": "string", "zip_code": "string", "social_id": "string" }, "language": "he" } ``` Bear in mind that without a POS ID you will not be able to send the payment request to the device. The sale will be then sent to the device. ## Flow of Payment #### 1. The Payment is sent to the device after using `Sales` API Endpoint ![image.png](https://docs-staging.payme.io/marketplaces-and-platforms/_files/wql9AovEPpE.png) ![image.png](https://docs-staging.payme.io/marketplaces-and-platforms/_files/UX8FGAfVcFo.png) #### 2. The Payment is then paid by the buyer ![image.png](https://docs-staging.payme.io/marketplaces-and-platforms/_files/q4trw0Af1bw.png) #### 3. Pending Approval from the Credit Company ![image.png](https://docs-staging.payme.io/marketplaces-and-platforms/_files/ZRLRGnlC0cE.png) #### 4. Payment confirmed ![image.png](https://docs-staging.payme.io/marketplaces-and-platforms/_files/dnyClwzqPbY.png) #### 5. Payment is deposited ![image.png](https://docs-staging.payme.io/marketplaces-and-platforms/_files/GvNGRyvai2g.png) #### 6.. Final Confirmation ![image.png](https://docs-staging.payme.io/marketplaces-and-platforms/_files/TusLBf0j87k.png) Once the payment is confirmed, the sale and transaction status will be updated to `sale_status = completed` and `transaction_status = validated` and can be accessed via `get-transactions` or `get-sales` API endpoints to further information fetching. - [Multi Payment Page](https://docs-staging.payme.io/marketplaces-and-platforms/payments/multi-payment-page): Also known as “Template Sale”. Enables payments on a single sale link, by multiple buyers. For example, you will be able to generate a single sale and share its payment link on any social network site to allow multiple customers to pay on their own. Every payment will create a new sale with a different ID. Creation of a template sale should be done by adding the `sale_type="template"` attribute to the request: # Template Payment Page Also known as “Template Sale”. Enables payments on a single sale link, by multiple buyers. For example, you will be able to generate a single sale and share its payment link on any social network site to allow multiple customers to pay on their own. Every payment will create a new sale with a different ID. Creation of a template sale should be done by adding the `sale_type="template"` attribute to the request: Attribute| Description ---|--- `sale_type` | = template, creates a new sale as a template. The template sale link does not expire. ### Payment Capabilities You can find all the payment capabilities [Pay Sale](https://docs-staging.payme.io/payments/direct-api/post-pay-sale). - [Multi Capture](https://docs-staging.payme.io/marketplaces-and-platforms/payments/multi-capture): The guide will be a run-through the process of using our Multi-Capture logic for card payments. # Multi-Capture - Credit Cards The guide will be a run-through the process of using our Multi-Capture logic for card payments. In order to initiate the process, you'll need to make sure the following prerequists: 1. Atleast 2 users from the same marketplace (partner account) 2. Credit card in hand for the authorization flow. ### 1st Step - Authorization In the 1st step, you will need to create a new payment intent using our APIs: 1. `generate-sale` 2. `sales` (Combination of both generate + pay sale actions) #### Requests Examples `generate-sale` - `https://.payme.io/api/generate-sale` ``` { "seller_payme_id": "MPL90011-90011EXM-EXAMPLE0-EXAMPLE9", "sale_price": "100", "currency": "ILS", "product_name": "Shirt", "language": "en", "sale_type": "authorize" "sale_payment_method": "credit-card" } ``` `sales` / `generate-sale` with `buyer_key` - `https://.payme.io/api/sales` ``` { "seller_payme_id": "680DABCB-TESTMPL-384516B5-16B55EBE", "product_name": "Verfication test", "sale_price": 500, "currency": "ILS", "payment": { "method": "credit-card", "card_number": "1234567891011121", "card_expiry": "1224", "card_cvv": "123" }, "customer": { "name": "First Name", "email": "test@example.com", "phone": "+15417543010", "social_id": "123456782", "zip_code": "1234567" } } ``` #### Expected Response `generate-sale` response example: ``` { "status_code": 0, "sale_url": "https://.payme.io/sale/generate/SALEGUID", "payme_sale_id": "SALEGUID", "payme_sale_code": sale_id, "price": 100, "transaction_id": "", "currency": "ILS", "sale_payment_method": "credit-card" } ``` `sales` response example: ``` { "status_code": 0, "payme_status": "success", "status_error_code": 0, "payme_sale_id": "SALEGUID", "payme_sale_code": 1185468, "sale_created": "2022-11-27 18:29:06", "payme_sale_status": "completed", "sale_status": "completed", "currency": "USD", "transaction_id": "", "is_token_sale": false, "price": 500, "payme_signature": "SIGNATUREID", "sale_description": "Shirt", "sale_deferred_months": null, "payme_transaction_id": "TRANGUID", "payme_transaction_total": "500", "payme_transaction_card_brand": "Visa", "payme_transaction_auth_number": "AUTHNO.", "payme_transaction_voucher": "VOUCHERNO.", "payme_transaction_emv_uid": null, "payme_transaction_acquirer": "PayMe", "payme_transaction_auth_source": "VoiceMail", "payme_transaction_card_issuer": "Visa", "payme_transaction_credit_type": "RegularCredit", "buyer_name": "First Name", "buyer_email": "test@example.com", "buyer_phone": "+15417543010", "buyer_card_mask": "458045******4580", "buyer_card_exp": "1224", "buyer_card_is_foreign": false, "buyer_social_id": "123456782", "installments": 1, "transaction_first_payment": "500", "transaction_periodical_payment": 0, "transaction_arn": null, "sale_paid_date": "2022-11-27 18:29:06", "sale_release_date": null, "sale_3ds": false, "redirect_url": null } ``` ### 2nd Step - Multi Capturing In order to use our multi-capture feature, you'll need to create new payment intents using either of the methods described in step 1, with an additonal unique parameters: Parameter Name | Parameter Type | Parameter Description ---|---|--- `sale_type` | string | The new sale type for capturing the authorize - `multi-capture`. `origin_sale_id` | string | The original sale GUID (ID) that was received when completing the authorization action. You can use the following methods: `generate-sale` request example: ``` { "seller_payme_id": "MPL15130-TESTMPL-DEMOTEST-DEMOTEST", "sale_price": "100", "currency": "ILS", "product_name": "Shirt", "language": "en", "sale_type": "multi-capture", "origin_sale_id": "SALEGUID", "sale_payment_method": "credit-card" } ``` `sales` request example: ``` { "seller_payme_id": "680DABCB-TESTMPL-384516B5-16B55EBE", "product_name": "Verfication test", "sale_price": 500, "currency": "ILS", "origin_sale_id": "SALEGUID", "sale_type": "multi-capture" "payment": { "method": "credit-card" }, "customer": { "name": "First Name", "email": "test@example.com", "phone": "+15417543010", "social_id": "123456782", "zip_code": "1234567" } } ``` ### Response Example ``` { "status_code": 0, "payme_sale_id": "SALE1669-DEMODEMO-DEMODEMO-D4XZCQSV", "payme_sale_code": 123456, "price": 10000, "transaction_id": "", "currency": "ILS", "sale_payment_method": "credit-card", "redirect_url": null, "transaction_cc_auth_number": "123456", "payme_transaction_auth_number": "123456", "sale_status": "completed", "payme_status": "success", "status_error_code": 0, "sale_created": "2022-11-30 09:58:26", "payme_sale_status": "completed", "is_token_sale": false, "payme_signature": null, "sale_description": "Shirt", "sale_deferred_months": null } ``` ### Errors Handling - [Multi Capture Paypal](https://docs-staging.payme.io/marketplaces-and-platforms/payments/multi-capture-paypal): The guide will be a run-through the process of using our Multi-Capture logic for Paypal payments. # Multi-Capture - PayPal The guide will be a run-through the process of using our Multi-Capture logic for Paypal payments. In order to initiate the process, you'll need to make sure the following prerequists: 1. Paypal enabled MPL in our platform. 2. Paypal account in hand for the authorization flow. ### 1st Step - Authorization In the 1st step, you will need to create a new payment intent using our APIs: 1. `generate-sale` 2. `sales` (Combination of both generate + pay sale actions) #### Requests Examples `generate-sale` - `https://.payme.io/api/generate-sale` ``` { "seller_payme_id": "MPL90011-90011EXM-EXAMPLE0-EXAMPLE9", "sale_price": "100", "currency": "ILS", "product_name": "Shirt", "language": "en", "sale_type": "authorize" "sale_payment_method": "paypal" } ``` `sales` / `generate-sale` with `buyer_key` - `https://.payme.io/api/sales` ``` { "seller_payme_id": "680DABCB-TESTMPL-384516B5-16B55EBE", "product_name": "Verfication test", "sale_price": 500, "currency": "ILS", "payment": { "method": "paypal", "card_number": "1234567891011121", "card_expiry": "1224", "card_cvv": "123" }, "customer": { "name": "First Name", "email": "test@example.com", "phone": "+15417543010", "social_id": "123456782", "zip_code": "1234567" } } ``` #### Expected Response `generate-sale` response example: ``` { "status_code": 0, "sale_url": "https://.payme.io/sale/generate/SALEGUID", "payme_sale_id": "SALEGUID", "payme_sale_code": sale_id, "price": 100, "transaction_id": "", "currency": "ILS", "sale_payment_method": "paypal" } ``` `sales` callback example: ``` { "status_code": 0, "payme_status": "success", "status_error_code": 0, "payme_sale_id": "SALEGUID", "payme_sale_code": 1185468, "sale_created": "2022-11-27 18:29:06", "payme_sale_status": "completed", "sale_status": "completed", "currency": "USD", "transaction_id": "", "is_token_sale": false, "price": 500, "payme_signature": "SIGNATUREID", "sale_description": "Shirt", "sale_deferred_months": null, "payme_transaction_id": "TRANGUID", "payme_transaction_total": "500", "payme_transaction_card_brand": "Visa", "payme_transaction_auth_number": "AUTHNO.", "payme_transaction_voucher": "VOUCHERNO.", "payme_transaction_emv_uid": null, "payme_transaction_acquirer": "PayMe", "payme_transaction_auth_source": "paypal", "payme_transaction_card_issuer": "Visa", "payme_transaction_credit_type": "RegularCredit", "buyer_name": "First Name", "buyer_email": "test@example.com", "buyer_phone": "+15417543010", "buyer_card_mask": "458045******4580", "buyer_card_exp": "1224", "buyer_card_is_foreign": false, "buyer_social_id": "123456782", "installments": 1, "transaction_first_payment": "500", "transaction_periodical_payment": 0, "transaction_arn": null, "sale_paid_date": "2022-11-27 18:29:06", "sale_release_date": null, "sale_3ds": false, "redirect_url": null } ``` ### 2nd Step - Multi Capturing In order to use our multi-capture feature, you'll need to create new payment intents using either of the methods described in step 1, with an additonal unique parameters: Parameter Name | Parameter Type | Parameter Description ---|---|--- `sale_type` | string | The new sale type for capturing the authorize - `multi-capture`. `origin_sale_id` | string | The original sale GUID (ID) that was received when completing the authorization action. You can use the following methods: `generate-sale` request example: ``` { "seller_payme_id": "MPL15130-TESTMPL-DEMOTEST-DEMOTEST", "sale_price": "100", "currency": "ILS", "product_name": "Shirt", "language": "en", "sale_type": "multi-capture", "origin_sale_id": "SALEGUID", "sale_payment_method": "paypal" } ``` `sales` request example: ``` { "seller_payme_id": "680DABCB-TESTMPL-384516B5-16B55EBE", "product_name": "Verfication test", "sale_price": 500, "currency": "ILS", "origin_sale_id": "SALEGUID", "sale_type": "multi-capture" "payment": { "method": "paypal" }, "customer": { "name": "First Name", "email": "test@example.com", "phone": "+15417543010", "social_id": "123456782", "zip_code": "1234567" } } ``` ### Callback Example ``` { "status_code": 0, "payme_sale_id": "SALE1669-DEMODEMO-DEMODEMO-D4XZCQSV", "payme_sale_code": 123456, "price": 10000, "transaction_id": "", "currency": "ILS", "sale_payment_method": "credit-card", "redirect_url": null, "transaction_cc_auth_number": "123456", "payme_transaction_auth_number": "123456", "sale_status": "completed", "payme_status": "success", "status_error_code": 0, "sale_created": "2022-11-30 09:58:26", "payme_sale_status": "completed", "is_token_sale": false, "payme_signature": null, "sale_description": "Shirt", "sale_deferred_months": null } ``` - [Capture sale](https://docs-staging.payme.io/marketplaces-and-platforms/payments/capture-sale): Also known as “Pre-Authorization”. The requested amount gets reserved (blocked) on the credit card of the buyer for up to 168 hours. A following Capture request will trigger the actual settlement of the funds. Please note that attempting to Capture after the allowed period of time (168 hours) will result in an error. # Capture Sale (Authorization) Also known as “Pre-Authorization”. The requested amount gets reserved (blocked) on the credit card of the buyer for up to 168 hours. A following Capture request will trigger the actual settlement of the funds. Please note that attempting to Capture after the allowed period of time (168 hours) will result in an error. ### Importante Notes * Authorization can be fully executed or partially **executed only once**. * In order to authorize a payment, the sale should be generated with the `sale_type="authorize"` parameter, and the returned IFRAME displayed to the buyer for credit card information filling. Attribute |Description ---|--- `sale_type` |= authorize, creates a new sale as authorization. The authorization is reserved for up to 168 hours `payme_sale_id `|`XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX` Our unique sale ID `sale_price `|`10000` Capturing sale final price. It can be lower or equal to the original price. For example, if the price is 50.75 (max 2 decimal points) the value that needs to be sent is 5075 `installments` |`1` (required, number) - Amount of installments for the sale. ### Process Flow 1. Create a sale with [`generate-sale`](https://docs-staging.payme.io/payments/direct-api/post-pay-sale) according to the special attributes in the table above. 2. Once the sale is created, you will get a `sale_url` for the payment page and a unique `payme_sale_code`. 3. After the buyer insert the payment details and pay for the sale, you will receive a callback to the dedicated callback URL you entered in the `generate-sale` request. 4. To execute the sale, use the [`capture-sale`](https://docs-staging.payme.io/marketplaces-and-platforms/payments/capture-sale) request, with the amount you charge. If you want to cancele the authorization, you need to void the sale using [`refund-sale`](https://docs-staging.payme.io/payments/post-sale-actions/post-refund-sale). ### Payment Capabilities You can find all the payment capabilities [Pay Sale](https://docs-staging.payme.io/payments/direct-api/post-pay-sale). - [Create Payment With Buyer Key (Token)](https://docs-staging.payme.io/marketplaces-and-platforms/payments/create-payment-with-buyer-key-token): Allows for token capture upon the buyer's payment (submission of payment details). # Create Payment With Buyer Key (Token) Allows for token capture upon the buyer's payment (submission of payment details). Attribute |Description ---|--- `sale_type` |= token, once the buyer completes the payment, you will receive a callback containing a token known as the "buyer_key." `sale_callback_url `| URL address for receiving the callback. ### Process Flow 1. Create a sale with [`generate-sale`](https://docs-staging.payme.io/payments/direct-api/post-pay-sale) according to the special attributes in the table above. 2. Once the sale is created, you will get a `sale_url` for the payment page and a unique `payme_sale_code`. 3. After the buyer insert the payment details and pay for the sale, you will receive a callback to the dedicated callback URL you entered in the `generate-sale` request. The callback contains the `buyer_key`, which is the token. ### Payment Capabilities You can find all the payment capabilities [Pay Sale](https://docs-staging.payme.io/payments/direct-api/post-pay-sale). - [How to create subscription](https://docs-staging.payme.io/marketplaces-and-platforms/payments/how-to-create-subscription): Diagram of the steps to create a recurring subscription payment with PayMe. # How to create a subscription ![image.png](../../assets/images/image.png) ## 3D Secure - [3D Secure Guide](https://docs-staging.payme.io/marketplaces-and-platforms/3d-secure/3d-secure-guide): 3-D Secure is a protocol designated to redurce fradulant transactions and protect merchants from losing the funds for those transactions. The name refers to the "three domains" which interact using the protocol: the merchant/acquirer domain, the issuer domain, and the interoperability domain. Our API is designed to allow platforms to offer a full payment solution as part of their product.Using the API you can allow sellers accept 3DSecure authorizations for credit card payments. ## Introduction - 3D Secure 3-D Secure is a protocol designated to redurce fradulant transactions and protect merchants from losing the funds for those transactions. The name refers to the "three domains" which interact using the protocol: the merchant/acquirer domain, the issuer domain, and the interoperability domain. Our API is designed to allow platforms to offer a full payment solution as part of their product. Using the API you can allow sellers accept 3DSecure authorizations for credit card payments. Requirements | Key | Description | | ---------------------- | ------------------------------------------------------------------------------------------------------------------- | | PayMe-Public-Key | Merchant's public key, must be sent in the HEADER of /api/sales/{payme_sale_id}/3ds requests | | PayMe-Merchant-Ke | Merchant's unique ID (seller_payme_id), must be sent in the HEADER of api/sales/{payme_sale_id}/3ds/{hash} requests | | Active 3DSecure module | The seller must have an active 3DSecure module in his PayMe account | | Credit card details | Mapped to payment input | | Cardholder details | Mapped to customer input | ## 3DSecure General Flow The flow is built with a few steps to allow multiple integration types. It is important to be familiar with the whole flow to be able to understand the customer experience. ## Generating a Regular SaleGenerating the sale with our Ganerate-Sale API endpoint. Please notice that the flow ends in a redirect that will return the 3DSecure result hash. This URL will be configured in the sale_return_url, the same way we set in regular payments. More info at step Retrieve 3DSecure Hash. ## Initialize 3DSecure Request Right after we genereiting the sale, we are initializing a secured payment attempt. A successful response contains a redirect_url attribute that you should redirect the customer to. An error can caused when the 3DSecure provider cannot handle the credit card. This function should be sent from you frontend, thus required a public key authenication. ## Open the 3DSecure Page - Card Issuer Interacation When the user get redirected, we are generating a custom authorization page according to the card issuer. The issuer may authenticate the attempt in verious ways, like: - SMS code verification - A secret code - Activate from private application ## Retrieve 3DSecure Hash As the buyer complete the authorization, he got redirect back from the card issuer page, and we want to get again to the flow (as the previous redirects was asyncronous), so we can continue the flow by showing message according to the result status, and use the result to compelete the payment page using the 3DSecure Parameters. We are going to do this by with a hash, that we are goint to resolve in the next step There are 2 way to achieve this step: ## JavaScript Window\.postMessage In case we open the redirect in an iframe, we can create a postMessage Listener in our parent page that will handle the result. The Listener will get a JSON serialized object, with 2 attributes: type: "3DSecure Hash" and hash: "S0ME-R4ND0M-H4SH" The Listener also may close the payment page if you want. For example: ```js // Called sometime after postMessage is called function receiveMessage(event) { // Do we trust the sender of this message? if (event.origin !== "https://preprod.paymeservice.com") return; data = JSON.parse(event.data) if (data.type !== "3DSecure Hash") { return; } // TODO: Great! now its time to think again... request "api/sales/{guid}/3ds/" + data.hash // TODO: Failed? show error message. success? try pay with 3 parameters console.log("myPaymentPage", event); pay3DS(resolve3DS(data.hash)); } window.addEventListener("message", receiveMessage, false); ``` ## GET parameter in the sale_redirect_url The 3dsecure hash will be returned at the 3ds GET parameter, with all other sale return parameters (can be found at success redirects)In cases that PayMe gets no sale_return_url or parent.callback3DSecure function, we will pop up an alert message that something was missing. ## Resolve Secured Hash Got the 3DSecure hash? Great, now we want to check if the attempt was successful, or has it failed and we should start the flow again with Initialize 3DSecure Request. You implement this step by the Resolve Secured Hash API. This API should be called from your backend as we are using a private key! A successful HTTP code for this function means the hash was not damaged. To check if the attempt was successful or not, we should check the status_code paramter.A successful message will contain the payme_sale_id and three parameters which will identify this transaction as 3DSecure. These values are the ECI, the CAVV and the XID. Now we can proceed with the payment itself. ## Pay! Now we have the three parameters of the 3DSecure authorization, which in most cases will be sent to the Acquirer/Gateway as-is, without any modifications. ## Special ECI Handling These are the available ECI values: | ECI Value | Card Schema | Definition | | --------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 00 | MasterCard | Authentication is unsuccessful or not attempted. The credit card is either a non-3D card or card issuing bank does not handle it as a 3D transaction. | | 01 | MasterCard | 3D card authentication is unsuccessful. Either cardholder or card issuing bank is not 3D enrolled/ready. | | 02 | MasterCard | 3D card authentication is successful. Both cardholder and card issuing bank are 3D enabled. | | 05 | Visa, American Express, JCB | 3D card authentication is successful. Both cardholder and card issuing bank are 3D enabled. | | 06 | Visa, American Express, JCB | 3D card authentication is unsuccessful. Either cardholder or card issuing bank is not 3D enrolled/ready. | | 07 | Visa, American Express, JCB | Authentication is unsuccessful or not attempted. The credit card is either a non-3D card or card issuing bank does not handle it as a 3D transaction. Some Acquirers/Gateways have different translation for the ECI parameter values, we recommend contacting your Acquirer/Gateway for more details. | CreditGuard is one of such gateways, which requires translating the ECI values in case of MasterCard brands, you can find the mapping below: | PayMe value | CreditGuard value | | ----------- | ------------------- | | 00 | 7 | | 01 | 6 | | 02 | 5 | | Other | Keep original value | ## Create a sale with dynamic 3DS This option will require the seller the signup to the 3DS service before he will be able to process transactions with 3DS. When the seller is approved, as part generate-sale command, you will need add the following to the generate-sale request: ```json "services": [ { "name": "3DSecure", "settings": { "active": false } } ] ``` - [3D Secure as a Service](https://docs-staging.payme.io/marketplaces-and-platforms/3d-secure/3d-secure-as-a-service): The standalone 3D Secure service enables you to leverage the 3D Secure capabilities of PayMe in an independent API request, without executing the usual purchase or authorization transaction that triggers 3D Secure authentication. # 3D Secure as a Service #### **What is the standalone 3D Secure service?** The standalone 3D Secure service enables you to leverage the 3D Secure capabilities of PayMe in an independent API request, without executing the usual purchase or authorization transaction that triggers 3D Secure authentication. By using the standalone 3D Secure service, you can request the user to undergo 3D Secure verification as a distinct process, allowing you to authenticate the user's card without taking any further action. If desired, you can rely on the authentication achieved during this step to perform an authorize or purchase transaction at a later time. #### When should I use the standalone 3D Secure service? There are various use cases for merchants where you may want to ensure that your customer's payment card undergoes 3D Secure authentication at a specific point in the transaction workflow. For instance, you might want to process 3D Secure verification during customer sign-up without immediately charging the customer's payment card. This ensures that you can apply charges at a later time with confidence, without interrupting the transaction flow as you wait for the customer to pass 3D Secure. This situation may arise when you wish to charge the customer only after shipping the purchased items, or when the customer enrolls in a service they will start using at a later date. #### Standalone 3D Secure in two steps It's important to note that the standalone 3D Secure service involves a two-step process, and both steps must be completed to finalize 3D Secure verification: Enrollment check: In the first step, PayMe verifies whether the customer's card is enrolled in 3D Secure. If the payment card is enrolled, the customer undergoes the 3DS authentication process and encounters a 3D Secure page. On this page, the customer enters the 3D Secure OTP received from their issuing bank. Once the customer submits the OTP, PayMe receives and records the encrypted 3DS payload. Authentication: In the second step, PayMe decrypts the 3DS payload. Using the merchant ID value, we confirm whether the 3DS secure enrollment response successfully authenticates a transaction using the customer's card. ## Integrations - [Hosted Fields JSAPI Guide](https://docs-staging.payme.io/marketplaces-and-platforms/integrations/hosted-fields-jsapi-guide): How to embed PayMe Hosted Fields (the JavaScript API) in your checkout page: load the library, initialise it with your merchant API key, mount the card fields, and pay a sale. # Hosted Fields JSAPI Guide ## Client Integration Manual #### Basic * [jsFiddle](https://jsfiddle.net/0tmq6c2h/) Basic example based on Bootstrap 3 #### Example 1 * [JavaScript](https://github.com/PayMeService/payme-jsapi/blob/master/js/example1.js) * [CSS](https://github.com/PayMeService/payme-jsapi/blob/master/css/example1.css) #### Example 1 RTL * [JavaScript](https://github.com/PayMeService/payme-jsapi/blob/master/js/example1-he.js) * [CSS](https://github.com/PayMeService/payme-jsapi/blob/master/css/example1-he.css) The same UI/UX example like Example 1 but shows how to tackle RTL languages #### Example 2 * [JavaScript](https://github.com/PayMeService/payme-jsapi/blob/master/js/example2.js) * [CSS](https://github.com/PayMeService/payme-jsapi/blob/master/css/example2.css) #### Example 3 * [JavaScript](https://github.com/PayMeService/payme-jsapi/blob/master/js/example3.js) * [CSS](https://github.com/PayMeService/payme-jsapi/blob/master/css/example3.css) #### Example 4 * [JavaScript](https://github.com/PayMeService/payme-jsapi/blob/master/js/example4.js) * [CSS](https://github.com/PayMeService/payme-jsapi/blob/master/css/example4.css) ### Step-by-step integration Include Client API Library into `` section of your page Put markup, designed by your own or corporate site template Initialize integration with `API key`, get `Hosted Fields Manager` and manage protected fields using simple API ### [Click here to review our Github library](https://github.com/PayMeService/payme-jsapi) ### Include Client API Library ```html ... ... ... ``` #### Put your payment form markup ```html ...
``` ---- #### Initialization and interaction ```html ... ... ``` Let's break down code, presented above. First of all you must get and provide your Merchant API key from Settings page in the dashboard. ```js ... // This is the Merchant API key (Test API key in this case) var apiKey = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; ... ``` Second, you must obtain integration instance for the merchant ```js var apiKey = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; // There is optional configuration object with testMode: true // because we are using the API key from the test server PayMe.create(apiKey, { testMode: true }) .then(function (instance) { // Here we can work with successfully initialized // integration instance - Integration Manager ... }) .catch(function(error) { // Here you can handle instantiation error ... }); ... ``` #### Initialization settings Property |Default value |Available values| Description ---|---|---|--- `testMode`| false| true / false| Test mode - used to control in which environment payment will be processed `language` |'en' |'en' / 'he' |Language - controls the language of the messages and text direction (rtl or ltr). en (for English) or he (for Hebrew) `tokenIsPermanent` |true| true / false| Token is permanent - Indicates whether it is a one-time-use or multi-use token **Next step - to initialize integration type and get corresponding manager** #### Hosted fields integration type This integration type allows you to use secure way to collect user's sensitive data for making payments. To obtain Hosted Fields manager you must call `hostedFields` method ```js PayMe.create(key, { testMode: true }) .then(function (instance) { // Getting Hosted Fields Integration manager var fields = instance.hostedFields(); }) .catch(function(error) { ... }); ``` As soon as you have Hosted Fields Manager you are ready to create actual protected fields. You can create as many fields as you need but you can create each field type only once. It means if `cardNumber` field was created you can't create more `cardNumber` fields, but you can create `payerEmail` and other (for details see Tokenization section). For example let's create 3 most important fields: ```js PayMe.create(key, { testMode: true }) .then(function (instance) { var fields = instance.hostedFields(); // Hosted fields creation var cardNumber = fields.create('cardNumber'); var expiration = fields.create('cardExpiration'); var cvc = fields.create('cvc'); }) .catch(function(error) { ... }); ... ``` **Hint - We propose to create field names within `Payme.fields` object** ```js // Instead of this var cardNumber = fields.create('cardNumber'); // try to use this var cardNumber = fields.create(PayMe.fields.NUMBER); ``` Having created all of necessary fields, they must be mounted to the chosen page place. Fields will be shown on your page only after mounting ```js PayMe.create(key, { testMode: true }) .then(function (instance) { var fields = instance.hostedFields(); var cardNumber = fields.create('cardNumber'); var expiration = fields.create('cardExpiration'); var cvc = fields.create('cvc'); // Mount credit card inside container with id="card-number-container" cardNumber.mount('#card-number-container'); ... }) .catch(function(error) { ... }); ... ``` **Hint - Field instance mount method accepts any valid query selector** ```js // Select by id cardNumber.mount('#card-number-container'); // Select by class cardNumber.mount('.credit-card-wrapper'); // Select by attribute cardNumber.mount('[data-role="credit-card-input"]'); ``` **Hint - We can be notified on result by promise, because field mounting is an asynchronous process** ```js ... // Mount credit card inside container with id="card-number-container" cardNumber.mount('#card-number-container').then(function() { // Field was mounted successfully }).catch(function(error){ // There is error handling code }); ... ``` #### Field Creation Options `.create(field, options)` method accepts an optional second argument `options` which is helpful in case you want to customize the field created with it. ```js var cardNumberFieldOptions = { placeholder: 'Enter your Credit Card Number', messages: { required: 'The Credit Card Number is Required!', invalid: 'Bad Credit Card Number' }, styles: ... // see below }; var cardNumber = fields.create('cardNumber', cardNumberFieldOptions); ``` The available properties for customization: Property| Description ---|--- `placeholder`| Placeholder text for empty field `messages`| Validation messages object, can have required and invalid properties (see Field Event Object and Examples page) `styles` |CSS properties for "protected" fields (see Field Styling) ### Field Styling Because the "protected" fields are protected, you can use only limited CSS properties and selectors: Whitelisted CSS properties: * `color` * `font-size` * `text-align` * `letter-spacing` * `text-decoration` * `text-shadow` * `text-transform` Whitelisted CSS rules: `::placeholder` Allowed properties and selectors are organized into three groups within field creation configuration options. ```js var cardNumberFieldOptions = { placeholder: 'Enter your Credit Card Number', // ... styles: { base: { 'color': '#000000', '::placeholder': { color: '#F2F2F2' } }, invalid: { 'color': 'red' }, valid: { 'color': 'green' } } }; ``` Each group represents the state of the protected field like a CSS class. For example: ```css /* base styles would be applied as a default style */ input.credit-card .base { color: #000000; font-size: 16px; text-align: center; letter-spacing: .25em; text-decoration: underline; text-shadow: 1px 1px 2px black, 0 0 1em red; text-transform: uppercase; } input.credit-card ::placeholder { color: gray; } /* .invalid styles would be applied on top of the .base when field validation fails */ input.credit-card .base .invalid { color: red; } /* .valid styles would be applied on top of the .base when the field became valid */ input.credit-card .base .valid { color: green; } ``` **Note - This information is related only to "protected" fields, which were created with [Hosted Fields Integration manager](https://github.com/PayMeService/payme-jsapi#hosted-fields-integration-type) via .create(...) and .mount(...) call. In case you are going to use your own markup/widget/etc. for any additional fields (first name, last name, email, phone number, social ID) then you are free to use any CSS code to style them.** #### Hosted fields integration interaction Right after field creation you can use field instance to listen basic set of events to interact with code on your page. For example, let's listen keyup event on credit card field: ```js PayMe.create(key, { testMode: true }) .then(function (instance) { var fields = instance.hostedFields(); var cardNumber = fields.create('cardNumber'); ... cardNumber.on('keyup', function(event) { console.log(event); }) // Mount credit card inside container with id="card-number-container" cardNumber.mount('#card-number-container'); ... }) .catch(function(error) { ... }); ... ``` and each time when `keyup` event occurs on `cardNumber` field you will be notified. Keep in mind, for security reasons event object was significantly simplified (see **Field Event Object**) #### Field events Using field events your can build you own logic. There is available limited set of events out of the box, those caused by security reasons Event type |Fields| Description ---|---|--- `change`| all| works like standard change `blur `|all| works like standard blur `focus `|all| works like standard focus `keyup` |all| works like standard keyup `keydown`| all| works like standard keydown `keypress `|all| works like standard keypress `validity-changed` |all| emits when field validity state changed. Can be used for showing error messages `card-type-changed` |`cardNumber`| emits when library detects vendor of entered Credit Card number #### Field Event Object Shape of `change`, `blur`, `focus`, `keyup`, `keydown`, `keypress`, `validity-changed` are the same among all the fields and can be either valid or not ```json // Valid field { type: "focus", event: "focus", // event type field: "cardNumber", // field which emits this event isValid: false // field validity status } ``` ```js // Invalid field { type: "focus", event: "focus", // event type field: "cardNumber", // field which emits this event isValid: false, // field validity status message: "Bad credit card number" // validation error message } ``` Shape of card-type-changed is little bit different and it can be used for displaying credit card brand icon ```js // Valid field { type: "card-type-changed" event: "card-type-changed" field: "cardNumber" isValid: true, cardType: "visa" // Card vendor } ``` ```js // Invalid field { type: "card-type-changed" event: "card-type-changed" field: "cardNumber" isValid: false message: "Bad credit card number", cardType: "visa" // Card vendor } ``` here cardType property can be founded. All available types are listed below cardType value| Brand |Mask ---|---|--- `unknown`| Unknown brand| `amex` |**American Express**: starts with 34/37| 34♦♦ ♦♦♦♦♦♦ ♦♦♦♦ `diners`| **Diners Club:** starts with 300-305/309...| 300♦ ♦♦♦♦♦♦ ♦♦♦♦ `jcb` |**JCB:** starts with 35/2131/1800 |35♦♦ ♦♦♦♦ ♦♦♦♦ ♦♦♦♦ `visa` |**VISA:** starts with 4 |4♦♦♦ ♦♦♦♦ ♦♦♦♦ ♦♦♦♦ `mastercard`| **MasterCard:** starts with 51-55/22-27 |51♦♦ ♦♦♦♦ ♦♦♦♦ ♦♦♦♦ `discover`| **Discover**: starts with 6011/65/644-649 |6011 ♦♦♦♦ ♦♦♦♦ ♦♦♦♦ So far so good, now you have form with some fields and you are ready to tokenize sensitive data to create actual sale #### Tokenization Tokenization Is a process of storing sensitive data in the protected vault and providing safe data for you, to make actual payment To kick off tokenization you must call tokenize(...) method on Ingeration Manager instance ```js PayMe.create(key, { testMode: true }) .then(function (instance) { var fields = instance.hostedFields(); ... // Data for tokenization var saleData = { payerFirstName: 'Foo', payerLastName: 'Bar', payerEmail: 'foo-bar@domain.com', payerPhone: '1231231', payerSocialId: '12345', payerZipCode: '123456', total: { label: 'Order #123123', amount: { currency: 'USD', value: '55.00', } } }; // Call for tokenization instance.tokenize(saleData) .then(function (tokenizationResult) { // Successfull tokenization // // Now you can send 'tokenizationResult' to // your server and call `generate-sale` on Core API console.log(tokenizationResult); }) .catch(function(tokenizationError) { // Failed tokenization // // you can explore 'tokenizationError' object and show error message on your taste console.error(tokenizationError) }); }) ... ... ``` If you want let your users input additional data (First name, Last name, Email, Phone number, Social ID) rather provide by yourself you can use native HTML inputs within your page (please check our examples page). This approach let you to use any presenting, styling, formatting logic. To help you with validation we were exposing validators to you #### Additional fields validators Particular validator can be obtained and used by this code ```js // ... var firstNameValidator = PayMe.validators[PayMe.fields.NAME_FIRST]; var validation = firstNameValidator.test('John'); // ... console.log(validation); ``` #### Additional fields validation result If validation result is success then `validation` would be `null` in the other case: * `{required: true}` - if firstNameValidator.test(...) argument not defined * `{invalid: true}` - if firstNameValidator.test(...) argument has unallowable value #### Note Values within additional fields must pass exposed validators. Without fulfilling this condition tokenization will fail! **tokenizationResult Structure (successful tokenization)** ```js { // Safe Credit Card data card: { cardMask: "411111******1111", cardholderName: "Firstname Lastname", expiry: "1119" }, // Service data type: "tokenize-success", testMode: true, token: "BUYER154-0987247Y-MLJ10OI7-LXRDNDYP", // Payment token for generating payment // Payer data payerEmail: "firstname-lastname@domain.com", payerName: "Firstname Lastname", payerPhone: "1231231", payerSocialId: "111123", // Payment data total: { label: "🚀 Rubber duck", amount: { currency: "USD", value: "55.00" } } } ``` **tokenizationError structure (tokenization failed)** ```js { // Says that the form contains invalid values validationError: true // Here you can find error messages for particular field errors: { payerEmail: "Mandatory field", payerPhone: "Mandatory field" }, type: "tokenize-error", } ``` Also, you can receive such shape (may be changed in the future) ```js { // This error means that tokenization has already // performed for this Intergation Instance error: "Bad session", message: "Session expired or deleted", statusCode: 400, type: "tokenize-error", } ``` ### Tokenization and Mounted fields As was mentioned above you can create as many different fields as you need but sometimes you have some user's data, supposed to be filled and you don't want bother your users requested filling their data again. You can do that, just provide it within `Data for tokenization` object. For example if you already have email or First + Last Name and you want provide it directly, you can to it ```js PayMe.create(key, { testMode: true }) .then(function (instance) { var fields = instance.hostedFields(); // Create and Mount credit card field var cardNumber = fields.create('cardNumber'); cardNumber.mount('#card-number-container'); ... // Create and Mount credit card expiration field ... // Create and Mount CVV field ... // Create and Mount Social Id field ... // Create and Mount Phone number field ... // Provide all available data var saleData = { payerFirstName: 'Foo', // First name field wasn't created, we must provide value payerLastName: 'Bar', // Last name field wasn't created, we must provide value payerEmail: 'foo-bar@domain.com', // Email field wasn't created, we must provide value // payerPhone: '1231231', // value isn't needed due created Phone number field // payerSocialId: '12345', // value isn't needed due created Social Id field // payerZipCode: '123456', // value isn't needed due created Zip Code field total: { label: 'Order #123123', amount: { currency: 'USD', value: '55.00', } } }; // Call for tokenization instance.tokenize(saleData) .then(function (tokenizationResult) { // Successfull tokenization // // Now you can send 'tokenizationResult' to // your server and call `generate-sale` on Core API console.log(tokenizationResult); }) .catch(function(tokenizationError) { // Failed tokenization // // you can explore 'tokenizationError' object and show error message on your taste console.error(tokenizationError) }); }) ... ... ``` #### Rule of thumb If you didn't create field - provide corresponding value in tokenization payload, but with one exception. You can't provide values for Credit Card Number, Credit Card Expiration and CVV - corresponding fields must be created and mounted always ### What should be done with tokenized data? You as an embedder may decide by yourself but main idea is **send tokenization data to backend and generate sale** using [Generate sale](https://docs-staging.payme.io/payments/hosted-payment-page/post-generate-sale) Let's say you have such tokenization result and sent it to your backend: ```js { card: { cardMask: "411111******1111", cardholderName: "Firstname Lastname", expiry: "1119" }, type: "tokenize-success", testMode: true, token: "BUYER154-0987247Y-MLJ10OI7-LXRDNDYP", payerEmail: "firstname-lastname@domain.com", payerName: "Firstname Lastname", payerPhone: "1231231", payerSocialId: "111123", total: { label: "🚀 Rubber duck", amount: { currency: "USD", value: "55.00" } } } ``` On the backend side you can start building the generate-sale payload Generate Sale Attribute| Tokenization Attribute ---|--- `sale_price`| `tokenizationData.total.amount.value` - must be converted to the integer `product_name`|` tokenizationData.total.label` `currency` |`tokenizationData.total.amount.currency` `buyer_key`|` tokenizationData.token` and send it to the `https://.payme.io/api/generate-sale` #### Security notes: Our service has a strict Content Security Policy (CSP) which in some cases might cause error messages to appear in the browser console. These errors do not cause any kind of malfunction or security risk to our service, and you can safely ignore them. * In most cases the errors are caused by third party extensions installed on the browser. Try turning off the extensions or browse in private mode. * The error messages might also be caused by potentially malicious JavaScripts or browser extensions which inject JavaScript to the content pages. Our service is protected against such threats. **Errors examples:** ![console-errors.png](https://docs-staging.payme.io/marketplaces-and-platforms/_files/77QH3js4Q0E.png) ## 3DS Integration Using JS API ### Step #1 - Setup This point is identical to what was described in [Include Client API Library](https://github.com/PayMeService/payme-jsapi#include-client-api-library). You do not need to provide any HTML markup for this interaction if you only use this API to get client information for making payments with 3Ds. [JSFiddle Example](https://jsfiddle.net/7ywn9g3L/10/) ### Step #2 - Invoke and Handle hashing result To obtain client information hash, you as implementer must call the method upon PayMe object and handle Promise resolution. ```html ... ... ... ... ... ... ``` ##### Important Note PayMe.clientData(isTestMode) can accept boolean argument to indicate that payment doing in test mode ### Step #3 - Consume The Encrypted Data After receiving the hashed client information, the implementer must send this hash to your Back-End server and use it as a parameter for pay-sale (as described below) ### Step #4 - Initiate Payment Flow In order to initiate a payment flow, the implementer must have the following 2 data objects: * *Buyer Key* * *JWT Token* When you have these two parameters, you are good to go in the matters of starting a payment flow ### Step #5 - APIs to complete the payment In order to complete the payment, you’ll need to use 2 API endpoints: generate-sale pay-sale #### Generate-sale API request to ../api/generate-sale ```json { "seller_payme_id": "MPL00013-00013EXM-EXAMPLE0-EXAMPLE3", "sale_price": "1000", "currency": "eur", "product_name": "Shirt", "sale_type": "sale", "sale_payment_method": "credit-card", "sale_callback_url": "URL" } ``` **In the case of a challenge, you will receive the 3DS flow result to the callback URL you will provide in the generate-sale request.** #### Expected Response ```json { .... "payme_sale_id": "SALE1655-3843870J-NTPYLJNW-SOWRLK9X", ..... } ``` #### With the sale ID received in the response, you’ll be able to initiate the request to pay-sale: ```json { "seller_payme_id":"MPL90010-90010EXM-EXAMPLE0-EXAMPLE9", "sale_price":"1000", "currency":"ILS", "installments":"1", "language": "en", "sale_callback_url": "https://www.example.com/payment/callback", "sale_return_url": "https://www.example.com/payment/success", "capture_buyer": 0, "payme_sale_id": "SALE1654-092102PD-2KRBHZMM-YMP33H7R", "buyer_email": "idan@payme.io", "buyer_name": "jordan sssssssssssss", "buyer_social_id": 311234488, "meta_data_jwt":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImN0eSI6Impzb24ifQ.eyJpYXQiOjE2NTUzODQ3NDEsIm5iZiI6MTY1NTM4NDc0MSwiZXhwIjoxNjU1Mzg4MzQxLCJqdGkiOiJlMDBkOTYzMy02ZWExLTRjMTMtOWU4Zi01OTVhYjMyMjU4ZDIiLCJkYXRhIjp7ImlwIjoiMTIzNDUuMTIzNC4zMyIsImFjY2VwdCI6InRleHRcL2h0bWwiLCJqYXZhRW5hYmxlZCI6dHJ1ZSwiamF2YVNjcmlwdEVuYWJsZWQiOnRydWUsImxhbmd1YWdlIjoiaGUtaWwiLCJjb2xvckRlcHRoIjoyLCJzY3JlZW4iOnsiaGVpZ2h0IjoxMi4yLCJ3aWR0aCI6MTIuM30sInRpbWV6b25lIjoiSmVydXNhbGVtIiwidXNlckFnZW50IjoiTW96aWxsYVwvNS4wIChXaW5kb3dzIE5UIDYuMTsgV2luNjQ7IHg2NDsgcnY6NDcuMCkgR2Vja29cLzIwMTAwMTAxIEZpcmVmb3hcLzQ3LjAifX0.WbyU3ejj2PaG9EEPJRxsTqhyB_SuAWgzqJyi6l5l_Fpw3dDpv9obpcPme-7ViGdOTJ97Qn1GKe8wXBU-Y5tZcrLVbwm4w_hGtvCZFC7FNrALTFg1JH7OIFs4ChpvlqegkvWEzjlOp27bU0VuV3gGAiFEhAXffO9W9hgy8px37nUXZtZUbS0zU2b8KcGjmALhUoti8laIkTet4yXLi4fLBcLA0P0BiBuNdS3owdszehsdDwMOQGdtQYTT9C2ZNOMktvKAYdO8xINS__5Rpqz6WB69T8uvdT2ASjx_--0m-XoCKC05dHH_27g0RQ_rpEYnE-vKIeQW70_LHIsL2tLBCg" } ``` ### Response Handling **If the 3DS flow ended in a challenge (URL is received in the next described response), you will get the following response:** ```json { "status_code": 5, "status_message": "יוצר דף אימות, נא להמתין", "redirect_url": "REDIRECT CHALLANGE URL" } ``` **If the 3DS flow ended in a seamless flow (no challenge required), you will get the following response:** ```json { "status_code": 0, "payme_status": "success", "status_error_code": null, "payme_sale_id": "SALE1655-2121212Y-BWFVU1YE-BQ2J6SUW", "payme_sale_code": 20511311, "sale_created": "2022-06-14 16:08:41", "payme_sale_status": "initial", "sale_status": "completed", "currency": "ILS", "transaction_id": "", "is_token_sale": false, "price": 1000, "payme_signature": null, "sale_deferred_months": null, "status_error_details": null, "redirect_url": null, "transaction_cc_auth_number": "1172408", "payme_transaction_auth_number": "1172408". "3ds_sale": true } ``` **If the 3DS flow ended in a failure, you will get the following response:** ```json { "status_code": 1, "payme_status": "success", "status_error_code": null, "payme_sale_id": "SALE1655-2121212Y-BWFVU1YE-BQ2J6SUW", "payme_sale_code": 20511311, "sale_created": "2022-06-14 16:08:41", "payme_sale_status": "failure", "sale_status": "failure", "currency": "ILS", "transaction_id": "", "is_token_sale": false, "price": 1000, "payme_signature": null, "sale_deferred_months": null, "status_error_details": null, "redirect_url": null, "transaction_cc_auth_number": "1172408", "payme_transaction_auth_number": "1172408". "3ds_sale": false } ``` **To verify 3DS authentication was succesfull**, you can query the transaction using [get transactions endpoint](https://docs-staging.payme.io/payments/query-apis/post-get-transactions) and check parameter `sale_is_3ds` ### Moving to Production After completing your testing period you will get your production credentials, this means that you should also modify your library to work with our **Production Environment**. In order to work with our production environment you should modify the following component: ```js const isTestMode = false; ``` Set `isTestMode` to `false` will modify the requests to pass through to our production environment. You can go back to testing in any moment by modifying the component to: ```js const isTestMode = true; ``` - [Direct API - How to create and pay sale](https://docs-staging.payme.io/marketplaces-and-platforms/integrations/direct-api-how-to-create-and-pay-sale): To initiate and pay a sale, please adhere to the following steps: # Direct API - How to create and pay sale To initiate and pay a sale, please adhere to the following steps: #### 1. Create sale Send a [`generate-sale`](https://docs-staging.payme.io/payments/direct-api/post-pay-sale) request, and get a synchronous response with `payme_sale_id` (our unique sale ID). Please notes that no payment is actually made at this point. #### 2. Pay sale Send a [`pay-sale`](https://docs-staging.payme.io/payments/direct-api/post-pay-sale) request with the credit card details, and the `payme_sale_id` from step #1 above. At this point, a few actions occur: the sale is processed, the buyer is charged, and you receive an asynchronous response with the sale data. #### 3. Receive callback PayMe will send a callback notification (async request) to the provided URLs, as a backup, and security mechanism. #### Tokenization The token of the buyer, if requested, is received as part of the callback in step #3. However, if you only want to get a token and not to perform a sale (for future use), you can use the [`capture-buyer-token`](https://docs-staging.payme.io/payments/tokenization/post-capture-buyer-token) call: To pay with a token, just add the token you saved previously to your next `generate-sale` request in the `buyer_key` attribute. The sale will be paid immediately (without the need to use the `pay-sale` call). ## Capabilities - [Pre-Fill payment page](https://docs-staging.payme.io/marketplaces-and-platforms/capabilities/pre-fill-payment-page): You can pass your buyer's details to our payment page, to pre-fill the form. # Pre-Fill payment page (IFRAME) You can pass your buyer's details to our payment page, to pre-fill the form. Simply concatenate the optional parameters to the end of the received sale_url. These are the supported fields: Parameter| Description ---|--- `first_name` |Card holder's first name `last_name` |Card holder's last name `phone`| Card holder's phone number `email`| Card holder's email address `social_id`| Card holder's social ID - used for cards issued in Israel `zip_code`| Card holder's zip code - used for cards issued in USA, Canada and United Kingdom Here is an example of a pre-filled payment page: `urlWithParameters = sale_url + "?first_name=First&last_name=Last&phone=0500000002&email=test@example.com` #### Note 1: For security reasons, credit card information related fields cannot be pre-filled. #### Note 2: Passed values which will be found invalid, won't be displayed on the form. #### Success Redirect (IFRAME) Once the sale is paid successfully, the buyer will be redirected to the provided sale_return_url, with the sale details as GET parameters. Example redirect URL: `https://www.example.com/payment/success?payme_status=success&payme_signature=75e99dbcb25cdfbe1c62f0b9376f4144&payme_sale_id=XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX&payme_transaction_id=XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX&price=10000¤cy=USD&transaction_id=12345&is_token_sale=0` Parameter| Description ---|--- `payme_status`| `success` Status of the request (success, error) `payme_signature`| `75e99dbcb25cdfbe1c62f0b9376f4144` MD5 Signature `payme_sale_id` |`XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX` Our unique sale ID `payme_transaction_id`| `XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX` Our unique transaction ID `price` |`10000` Sale final price. For example, if the price is 50.75 (max 2 decimal points) the value that needs to be sent is 5075 `currency`| `USD` Sale currency. 3-letter ISO 4217 name `transaction_id`| `12345` Merchant's unique sale ID for correlation with us `is_token_sale`| `0` ## Sellers - [Create Seller](https://docs-staging.payme.io/marketplaces-and-platforms/sellers/create-seller): **This endpoint is relevant only to PayMe's partners.** # How to Create New Sellers **This endpoint is relevant only to PayMe's partners.** In this guide you will learn how to create new sellers as a partner, whether it is via API or our white-labeled User-Interface. Once the seller is registered, the marketplace is required to convey the required information to us through a dedicated API. Upon completion, the API will return the new seller information within our system. ![0_0 (1).png](https://docs-staging.payme.io/marketplaces-and-platforms/_files/hnVNgjBRG44.png) ##### Create seller via API. As mentioned above, the partner will be required to collect certain data regarding the seller when creating a new seller. The information can be found on our [API reference](https://docs-staging.payme.io/marketplaces-and-platforms/sellers/create-seller). ##### Create Seller via User-Interface If you would like to onboard new sellers via a dedicated and white-labeled user-interface, you can use PayMe's UI and brand it with your own logo and colors. For more information, [please reach out to our support. ](https://payme.io/contact-us/) ##### User-Interface Onboarding Example Onboarding explanation: creation of new Merchants would be via a dedicated link sent by the Partner. The link would walk them through a registration flow. By using it, the sellers will fill all required details PayMe needs to validate and allow the operation of the Merchant. ![UI_Registration page.jpg](https://docs-staging.payme.io/marketplaces-and-platforms/_files/uxxGEFMKMJg.jpg) Can be segmentated into 3-5 steps instead of 1 ###### Personal Contact Details: | Field | description | | ----------------- | --------------------------------------------------------------------------------------------------------------------- | | **First Name** | Contact's first name | | **Last Name** | Contact's last name | | **ID Number** | Personal social ID numberEmail Address - Company's email address | | **Phone Number** | Company's phone number | | **Contact Phone** | Personal phone number | | **Contact Email** | Personal Email Address | | **Password** | Must include a number, one special character, one capital letter and one lowercase letter. At least8 characters long. | ###### Company Details: | Field | description | | ---------------------------------- | ------------------------------------------------------------------------------------------------------- | | **Company Name** | Company legal name | | **Company Registration code** | Company legal business number | | **Company Type** | Sole Proprietorship, Exempt Company, Company, Registered Company, Non Profit, Limited Liability Company | | **Acquirer previous registration** | If you already have a business code on the acquirer's network, enter it in the designated field. | ###### Bank Account Details: | Field | description | | ---------------- | ---------------------------------------------------------------------------------------------------- | | Bank Code | According to the [list of banks](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/banks-in-israel) | | Bank Branch | Branch number | | Bank account no. | Bank account number | ## Reporting - [Kinds of reports](https://docs-staging.payme.io/marketplaces-and-platforms/reporting/kinds-of-reports): Using our API and system, you can export different kinds of reports. # Use cases Using our API and system, you can export different kinds of reports. #### What is the right report for you? Depending on your business needs, we can automatically generate reports for you. The business case can be built around understanding the following examples: 1. The volume a certain seller processed in a certain day? 2. The count of withdrawls a seller requested in the past X amount of days? 3. The number of active subscriptions a seller currently have? 4. How many sellers do I (The Partner) have in Production? You can consume this information in two different methods: 1. Our Partner dashboard (Manually exported) 2. Our Queries API #### Queries APIs As a partner, you can get access to our Queries APIs and consume the different sets of data. #### Partner Dashboard See Dashboard manual. - [Queries APIs guides](https://docs-staging.payme.io/marketplaces-and-platforms/reporting/queries-apis-guides): > For API reference, please head over to our APIs section using the sidebar on the left. # Queries Guide > For API reference, please head over to our APIs section using the sidebar on the left. ## List Sales [API Reference](https://docs.paymeservice.com/docs/payme-public/b3A6MjU2MDk2MjE-get-sales) By using this API, you can get any sort of data in matters of a sales cycle for a certain seller. For exmaple, you can export sales data to measure any of the following business cases: 1. **Seller's Performance** - Processing volume, transaction count and more. 2. **Average Transaction Value (ATV)** - The average transaction amount in the presented currency. 3. **Understand Your Customer's User Behaviour** - Preferred payment methods, Preferred products and more. 4. **Simplify Reconciliation Procedures** - Export reporting independantly without waiting. 5. **Predict Seller's Cash-flow** - Understand a seller future balance and take decisions based on it. ## List Transactions [API Reference](https://docs-staging.payme.io/payments/query-apis/post-get-transactions) With Get transactions API, you can extract data about transactions processed in a certain time period. Transactions can be one of the following: | Transaction type | Explanation | | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Sale | Sale is the initial status of a transaction. | | Void | A credit/debit card transaction that was cancelled before the business day it was initiated ended. | | Refund | A referral action for a sale. In case the buyer decided to cancel a certain purchase for any kind of reason and the merchant accepted the cancellation request, a refund will be issued. | | Chargeback | In case an unknown purchase appears in the credit/debit card description, the buyer can issue a chargeback. | ## List Sellers [API Reference](https://docs.paymeservice.com/docs/payme-public/b3A6MjU2MDk2MjI-get-sellers) This API allows our partners to consume information about their sellers. The data includes: 1. **Registration date** - When did a certail seller registered to PayMe's system 2. **Withdrawl plans** - What is your seller's withdrawl plans with PayMe's payment processing services 3. **Seller's business code** - What is your sellers business codes 4. **Seller's information** - Address, Bank details and more ## List Subscriptions [API Reference](https://docs.paymeservice.com/docs/payme-public/b3A6MjU2MDk2MjM-get-subscriptions) This API allows our partners to learn about the active and inactive subscriptions of their sellers. The data includes: 1. **Subscriptions Iteration Model**: | ID | Description | | -- | ----------- | | 1 | Daily | | 2 | Weekly | | 3 | Monthly | | 4 | Annually | 2. **Subscription Status**: | ID | Description | | -- | ------------------------------- | | 1 | Initial (not yet paid) | | 2 | Active (paid successfully) | | 3 | Failed | | 4 | Cancelled | | 5 | Completed | | 6 | Failed, pending automatic retry | 3. **Iterations count completed** 4. **Iterations count left (based on subscription model)** 5. **Buyer information** ## List Withdrawals [API Reference](https://docs.paymeservice.com/docs/payme-public/b3A6MjU2MDk2MjQ-get-withdrawls) This API allows our partners to obtain data on a specific withdrawl. The data includes: 1. **Withdrawal creation data** - When a certain withdrawal request was created? 2. **Withdrawal Currency** - What is a certain withdrawal currency? 3. **WIthdrawal total amount** - Net withdrawal amount (Processing - Fees) 4. **Withdrawal status** - Was the withdrawal completed succesfully? ## Lists & Statuses - [Sale Types](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/sale-types): Reference list of PayMe sale types and their numbers, such as sale (J4), authorize (J5), token and template. # Sale Types Sale Type number | Sale Type ---- | ---- 1 |sale (J4) 5 |authorize (J5) 2 |token 3 |saleFromSubscription 4 |saleFromTemplate 5 |multiCapture 6 |customerDeposit 7 |credit 10 |template 11 |saleFromPaymentContract 12 |sellerToken Others |(Depends on the sale_type) - [Sale Statuses](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/sale-statuses): Reference list of sale statuses, from `initial` and `completed` to `refunded`, `chargeback` and `voided`, with what each means. # Sale Statuses Sale Type | Sale Status | Description ---- | ---- | ---- 1 | initial | Creation status, a payment was not attempted 2 | completed | The sale was paid successfully 3 | refunded |The sale was fully refunded 4 | partial-refund|The sale was partially refunded 5 | authorized | The sale was authorized successfully 6 | failed | The sale failed 7 | chargeback|The sale was chargedbacked 8 | canceled|The sale was canceled 9 | voided|The authorization was fully voided 10| partial-void|The authorization was partially voided 11| partial-chargeback|The sale was partially chargedbacked - [Sale Callbacks](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/sale-callbacks): The callback PayMe sends to your server when a sale is paid, authorized, refunded, fails or is charged back: notification types and every payload field. # Sale Callbacks Once the sale is paid successfully, we will notify the marketplace with the sale details with a POST of `type` `x-www-form-urlencoded` request to the marketplace Callback URL. #### Sale Callback Notification Types Notification| Description ---|--- `sale-complete`| The sale was paid successfully `sale-authorized`| The sale was authorized successfully `refund` |The sale was refunded `sale-failure`| There was an error with the sale `sale-chargeback`| The sale was chargebacked `sale-chargeback-refund`| The chargeback was reverted Attribute| Description ---|--- `status_code` |0 Status of the request (0 - success, 1 - error) `status_error_code`| In case of an error, our unique error code `status_error_details`| In case of an error, the error message `notify_type`| sale-complete Sale notification types `sale_created`| 2016-01-01 15:15:15 `transaction_id`| 12345 Merchant's unique sale ID for correlation with us `payme_sale_id`| XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX Our unique sale ID `payme_sale_code` |12345678 Our unique sale code (for display purposes only) `payme_transaction_id`| XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX Our unique transaction ID `price` |1000 Sale final price. For example, if the price is 50.75 (max 2 decimal points) the value that needs to be sent is 5075 `currency`| USD Sale currency. 3-letter ISO 4217 name `sale_status`| completed Sale statuses `payme_transaction_card_brand`| Visa `payme_transaction_auth_number`| 01A2B3C Sale authorization number from the credit company `buyer_card_mask`| 458045******4580 Buyer's credit card mask `buyer_card_exp`| 0118 Buyer's credit card expiry date `buyer_name` |First Last Buyer's full name `buyer_email`| buyer@example.com Buyer's eMail address `buyer_phone`| 0500000001 Buyer's phone number `buyer_social_id`| 000000001 Buyer's social id `buyer_key`| XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX Buyer key for future token payments. This key is returned only if capture_buyer attribute was set in the request (Using Tokens) `installments`| 1 Amount of installments for the sale `sale_paid_date`| 2016-01-01 15:16:15 `sale_release_date`| 2016-01-08 15:15:15 `is_token_sale`| 0 (0 - false, 1 - true) `payme_signature`| 75e99dbcb25cdfbe1c62f0b9376f4144 `sale_invoice_url`| https://www.example.com/XXXXXX.pdf Sale invoice URL, if the seller has enabled the `invoices `|module in his account panel - [Transaction Types](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/transaction-types): Reference list of transaction type numbers, such as Sale, Token, Authorization/Void and Balance. # Transaction Types Transaction Types | Description ----|---- 1 | Sale 2 | Setup 10 | SubscriptionToken 20 | Token 30 | CustomerDeposit 40 | Authorization, Void 50 | Customer Sale 60 | Balance - [Transaction Statuses](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/transaction-statuses): Reference list of transaction statuses, from `pending` and `validated` to refunds, chargebacks and voids. # Transaction Statuses Transaction Status | Status Description ----|---- 1|pending 2|validated 3 |refunded 4 |partial refund 5 |failed 6 |chargeback 7 |chargeback-refund 8 |voided 9 |partial-void 10|partial-chargeback 11|partial-chargeback-refund - [Subscription Statuses](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/subscription-statuses): Reference list of subscription statuses — initial, active, paused, failed, cancelled, completed, and failed pending automatic retry. # Subscription Statuses ID|Description ---|--- `1`|`Initial` - Not paid yet `2`|`Active` - Paid successfully `3`|`Paused` `4`|`Failed` `5`|`Cancelled` `6`|`Completed` `76`|`Failed` - Pending automatic retry - [Subscription Iteration Types](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/subscription-iteration-types): Reference list of subscription billing intervals: daily, weekly, monthly and annually. # Subscription Iteration Types ID|Description ---|--- `1`|`Daily` `2`|`Weekly` `3`|`Monthly` `4`|`Annually` - [Bank Authorization Statuses](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/bank-authorization-statuses): Reference list of Israeli direct-debit bank authorization statuses sent in callbacks, such as opened, failed, cancelled by the account owner and reactivated. # Bank Authorization Statuses Status | Description | Notes ---- | ---- | ---- 1 | Bank authorization opened successfully 2 | Bank authorization failed 3 | Bank authorization canceled by the account owner| Meaning the buyer canceled the authorization in the bank app 5 | Authorization moved from previous account | Please notes that the buyer key stays the same 6 | Account changed | Please notes that the buyer key stays the same 13 | Frozen authorization reactivated | Meaning the buyer froze the authorization in the bank app - [Banks in Israel](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/banks-in-israel): Reference list of Israeli bank names and their bank codes, used when entering seller or buyer bank details. # List of Banks Bank | Bank Number ---|--- בנק יהב | 4 בנק הדואר | 9 בנק לאומי | 10 בנק הפועלים | 12 בנק אגוד לישראל | 13 בנק אוצר החייל | 14 בנק מרכנתיל דיסקונט | 17 בנק מזרחי טפחות | 20 HSBC | 23 UBANK | 26 הבין לאומי הראשון | 31 בנק ערבי ישראלי | 34 בנק אוף אינדיה | 39 בנק מסד | 46 בנק פאגי | 52 בנק ירושלים | 54 דקסיה ישראל | 68 בנק לאומי למשכנתאות | 77 משכן בנהפ למשכנתאות | 91 הבין לאומי למשכנתאות | 92 - [File Types](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/file-types): Reference list of document file-type codes for uploading seller files, such as ID, bank account ownership and incorporation certificate. # File Types Name|Code|Description ---------|----------|---------- Social Id|1|Social ID document (תעודת הזהות). For additional information see Note 3 above Bank Account Ownership|2|Proof of bank account ownership or a cancelled cheque photo (שיק מבוטל או אישור ניהול חשבון בנק). For additional information see Note 3 above Corporate Certificate|3|Incorporation document (תעודת התאגדות של עוסק פטור/עוסק מורשה/חברה בע"מ/עמותה). For additional information see Note 3 above Bank Authorization|4|Bank authorization (הרשאה לחיוב חשבון) Personal Guarantee|5|Personal guarantee (ערבות אוואל). Relevant only if was requested by your Account Manager Promissory Note|6|Promissory note (שטר חוב). Relevant only if was requested by your Account Manager Processing Agreement|7|Processing agreement (הסכם סליקה). Relevant only if was requested by your Account Manager Signature|8|Signature (חתימה). Relevant only if was requested by your Account Manager Stamp|9|Stamp (חותמת). Relevant only if was requested by your Account Manager Additional License |11| Additional license (רשיון נוסף). Relevant only if was requested by your Account Manager Public Representative |12| Public representative document (הצהרת איש ציבור). Relevant only if was requested by your Account Manager Regulatory Authentication |13| Regulatory authentication (נסח חברה או BDI). Relevant only if was requested by your Account Manager Authorized Signer Protocol |14| Authorized signer protocol (פרוטוקול מורשי חתימה). Relevant only if was requested by your Account Manager Business Proof |15| Business proof document (אישור עסק). Relevant only if was requested by your Account Manager Service Receiver |16| Service receiver document (הצהרת מקבל שירות). Relevant only if was requested by your Account Manager Face-To-Face Approval |17| Face-To-Face approval (אישור זיהוי פנים מול פנים). Relevant only if was requested by your Account Manager False Statement Of Information |18| False statement of information (הצהרת מידע כוזב). Relevant only if was requested by your Account Manager Bank Statement |19| Bank Statement of the last 3 months. Processing History |20| Processing History. Tax Return |21| Tax Return. Inventory Proof |22| Inventory Proof. Company Logo |23| Company logo image. Relevant only if was requested by your Account Manager | Driving License | 24 | Driving license (רשיון נהיגה). Relevant if you are onboarding Keep sellers. Social ID Appendix | 25 | Social ID Appendix (ספח תעודת זהות). Relevant if you are onboarding Keep sellers. Passport | 26| Passport (דרכון). Relevant if you are onboarding Keep sellers. Origin Tax Confirmation | 27| Origin Tax Confirmation (אישור ניכוי מס במקור). Relevant if you are onboarding Keep sellers. Bookkeeping Certificate | 28 | Bookkeeping Certificate (אישור ניהול ספרים). Relevant if you are onboarding Keep sellers. Credit Voucher Discount Agreement | 29 | Agreement for credit voucher discount. Professional License | 32 | An image of a proffesional License Ministry Certificate | 33 | An image of a Ministry Certificate. Copyright | 34 | An image of a Copyright Certificate. Lease| 35| An image of Lease Agreement of you business. Social ID Front | 90 | An image of the front of a Social ID Social ID Back | 91 | An image of the back of a Social ID Passport Front | 92| An image of the front side of the passport. (דרכון) Passport Back | 93| An image of the back side of the passport Driving License Front | 94 | An image of the front of a driving License (רשיון נהיגה) Driving License Back | 95 | An image of the back of a driving License PayMe | 100 | Isracard | 101 | Tzameret | 102 | Cal | 103 | ECom | 104 | CardCom | 105 | Summary | 200 | Site Url | 201 | - [Document Types](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/document-types): Reference list of document type codes you can generate, such as order, invoice, invoice receipt, refund and receipt. # Document Types The documents you can generate are: `doc_type code` | description | document name ---|---|--- `100` | Order | `order` `200` | Delivery | `delcert` `300` | Transaction Invoice | `deal invoice` `305 ` | Invoice | `invoice` `320` | Invoice Receipt | `inverc` `330 ` | Invoice Refund | `refund` `400` |Receipet | `receipt` `405` | Donation Receipt | `trec` `600` | Offer | `offer` - [MCC List](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/mcc-list): Reference list of PayMe merchant category codes (MCC) with Hebrew and English descriptions of each business type. # Israeli MCC List | PayMe MCC Code | Description in Hebrew | Description in English | | -------------- | ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | 10000 | משתלות | Nurseries | | 10001 | משתלות רגילות | Ordinary nurseries | | 10002 | משתלות יצרניות | Manufacturers' nurseries | | 10003 | משתלות מעורבות | Multi-Purpose nurseries | | 10004 | קונדיטוריה | Confectionery | | 10005 | קונדיטוריה-קונדיטוריות לייצור עצמי ומכירה במקום | Confectionery-confectionery for self-production and sale instead | | 10006 | קונדיטוריה-קונדיטוריות לייצור עצמי ומכירה במספר מוקדים | Confectionery-confectionery for self-production and selling in several focal points | | 10007 | קונדיטוריה לייצור עצמי בתוספת בית קפה | Self -production confectionery plus a cafe | | 10008 | קונדיטוריה בייצור סיטונאי | Confectionery in wholesale production | | 10009 | מאפיה | bakery | | 10010 | מאפיות קטנות | Small bakery | | 10011 | מאפיות בינוניות | Medium bakeries | | 10012 | מאפיות גדולות | Large bakery | | 10013 | מאפיות פיתות | Pites bakery | | 10014 | ייצור ופלים ועוגיות | Waffles and Cookies Manufacturing | | 10015 | פאות | Wigs | | 10016 | פאות-חנויות לאוכלוסייה החרדית\דתית | Wigs-shops for the ultra-Orthodox / religious population | | 10017 | פאות-חנויות לכלל האוכלוסיה | Wigs-stores for the general population | | 10018 | מסגריות | Locksmiths | | 10019 | מסגריות מכניות-עיבוד שבבי | Mechanical cargo-chip processing | | 10020 | מוסכים | Garages | | 10021 | אביזרי רכב | car accessories | | 10022 | אביזרי רכב-מוצרי מדף כללים | Automotive accessories-products | | 10023 | אביזרי רכב-מצברים | Car accessories | | 10024 | אביזרי רכב-נורות | Car-Lamp accessories | | 10025 | אביזרי רכב-התקנת מערכות: רדיו דיסק, מולטימדיה | Car Accessories-Systems Installation: Disk Radio, Multimedia | | 10026 | אביזרי רכב: דיבורית B.T | Car Accessories: B.T Handle | | 10027 | אביזרי רכב: חיישני נסיעה לאחור | Automotive Accessories: Rehole | | 10028 | אביזרי רכב: קודן | Car Accessories: Coden | | 10029 | אביזרי רכב: כספת | Car Accessories: Safe | | 10030 | אביזרי רכב: מצלמת דרך | Car Accessories: Camera | | 10031 | מעדניה | deli | | 10032 | ספרים | Books | | 10033 | ספרים-חנויות לספרי קריאה ועיון | Books-stores for reading and reference books | | 10034 | ספרים-חנויות לספרי לימוד בלבד | Books-stores for textbooks only | | 10035 | ספרים-חנויות לספקי קריאה ועיון ולספרי לימוד | Books-stores for reading and seminar and textbooks | | 10036 | הלבשת גברים - חנויות אופנה | Men's Clothing- fashion shops | | 10037 | הלבשת גברים - חנויות הלבשה | Men's Clothing - dressing shops | | 10038 | הלבשת גברים - חנויות בזאר | Men's Clothing - Bazaar shops | | 10039 | הלבשת גברים - יבואנים | Men's Clothing - Importing | | 10040 | הלבשת גברים - בתי אופנה יוקרתיים | Men's Clothin - luxury fashion houses | | 10041 | הלבשת ילדים ונוער- חנויות הלבשה | Dressing Children and Youth- Clothing stores | | 10042 | הלבשת ילדים ונוער - חנויות באזר | Children and Youth Clothing - Baza Stores | | 10043 | הלבשת ילדים ונוער - יבואנים | Children and Youth Clothing - Importing | | 10044 | הלבשת ילדים ונוער - בתי אופנה יוקרתיים | Children and Youth - Luxury Fashion Homes | | 10045 | הלבשת נשים - בתי אופנה יוקרתיים | Women's Clothing- Luxury Fashion Homes | | 10046 | הלבשת נשים - חנויות אופנה | Women's Clothing - Fashion Stores | | 10047 | הלבשת נשים - חנויות הלבשה | Women's Clothing - Clothing stores | | 10048 | הלבשת נשים - חנויות בזאר | Women's Clothing - Bazaar shops | | 10049 | הלבשת נשים - יבואנים | Dressing Women - Importers | | 10050 | חנויות הלבשת נשים עליונה | Supreme Women's Clothing stores | | 10051 | כובעים - חנויות בערי הפריפריה | Hats - shops in peripheral cities | | 10052 | כובעים - חנויות בערים הגדולות והבינוניות וחנויות האופנה | Hats - shops in the big and medium cities and fashion stores | | 10053 | כובעים - פריטים נלווים | Hats - related items | | 10054 | הלבשה תחתונה | Lingerie | | 10055 | גלריות | Galleries | | 10056 | תערוכות | Exhibitions | | 10057 | מסגרות לתמונות | picture frames | | 10058 | עתיקות ותשמישי קדושה | Antiquities and Saint Grace | | 10059 | עתיקות ותשמישי קדושה-חנות עממית | Antiquities and Popular Saint-Store | | 10060 | עתיקות ותשמישי קדושה-חנות עממית המתמחה בשיווק טליתות | Antiquities and Holy Holocaust-Popular Store specializing in Talit Marketing | | 10061 | עתיקות ותשמישי קדושה-חנות יוקרתית | Antiques and prestigious holy-stores | | 10062 | אופטיקה | optics | | 10063 | אופטיקה-עדשות | Optics-lenses | | 10064 | אופטיקה-מסגרות | Optics-frames | | 10065 | אופטיקה-זוג משקפיים (מסגרת+עדשות) | Optics-Corporate Glasses (Frame+Lens) | | 10066 | אופטיקה-עדשות מגע | Optics-Touch Lens | | 10067 | ואופטומטריסט | And optometrist | | 10068 | מצלמות וצרכי צילום | Cameras and photography needs | | 10069 | צלמים | Photographers | | 10070 | צילום-חנויות עם "מעבדה זעירה" לפיתוח סרטי צילום והדפסת תמונות | Store photography with "Tiny Laboratory" for developing photo films and printing photos | | 10071 | צילום-חנויות עם שירותי מעבדה חיצונית לפיתוח סרטי צילום והדפסת תמונות | Photo-store with external laboratory services for developing photo films and printing photos | | 10072 | צילום-שכפול מסמכים וצילומי פספורט | Photo-Duplicate Documents and Passport Photography | | 10073 | חיות | Animals | | 10074 | שירותי פנסיון ואילוף לחיות מחמד | Petal and pet training services | | 10075 | חיות בית-טיפול וסיוע | Home-the-handle and assistance | | 10076 | חיות בית-טיפול וסיוע-חנויות המתמחות במכירת מזון בלבד | Home-handling and assistance-stores specializing in food sale only | | 10077 | חיות בית-טיפול וסיוע-חנויות באזורים יוקרתיים | Home-handling and shop assistance in prestigious areas | | 10078 | חיות בית-טיפול וסיוע-חנויות שכיחות | Home-handed and store assistance is common | | 10079 | מגרשי מכוניות משומשות | Used car fields | | 10080 | סוכני רכב למשומשות | Car agents for used | | 10081 | מסחר בכלי רכב משומשים-יבואנים וסוכנויות למכירת רכב חדש | Used vehicles-imported vehicles and new car sales agencies | | 10082 | מסחר בכלי רכב משומשים-קבלני משנה של היבואנים | Trade in used-to-contract vehicles of importers | | 10083 | מסחר בכלי רכב משומשים-חברות הליסינג התפעולי וההשכרה | Trade in used vehicles-operating leasing companies and rental | | 10084 | מסחר בכלי רכב משומשים-סוחרי רכב פרטיים בעלי מגרש | Trade in used vehicles-traded car dealers with plot | | 10085 | מסחר בכלי רכב משומשים-סוחרי רכב פרטיים ללא מגרש | Trading in used-traded vehicles without a lot | | 10086 | חניוני רכב | Car parking lots | | 10087 | חניונים | Parking lots | | 10088 | פיצריות | Pizzas | | 10089 | מסעדות מזון מהיר | Fast food restaurants | | 10090 | בתי קפה | Coffee shops | | 10091 | בניית אתרי אינטרנט | Building websites | | 10092 | עו"ד | More | | 10093 | אדריכלים | Architects | | 10094 | מעצבי פנים | interior designers | | 10095 | וטרינר | veterinarian | | 10096 | השכרת רכב | Car Rental | | 10097 | סלון לכלות | A bridal salon | | 10098 | גננים-עבודות הקמה של גנים | Gardens-Labor Establishment of Gardens | | 10099 | גננים-עבודת אחזקה של גנים | Gardens-Gardens Maintenance Labor | | 10100 | גני ילדים וצהרונים | Kindergartens and Haruns | | 10101 | בית ספר לנהיגה | Driving school | | 10102 | רופאי שיניים | Dentists | | 10103 | רופאי שיניים אורתודנטיים | Orthodontic dentists | | 10104 | רפואת שיניים | dentistry | | 10105 | בתי אבות | Retirement homes | | 10106 | שירותי סיעוד | Nursing services | | 10107 | לשכות פרטיות להבאה, לתיווך ולטיפול בעובדים זרים בענף הסיעוד | Private bureaus to bring, mediation and handling foreign workers in the nursing industry | | 10108 | מכוני כושר | Gyms | | 10109 | מכבסות וניקוי יבש | Laundry and dry cleaning | | 10110 | מכוני יופי | Beauty Institutes | | 10111 | מספרות | Hairdressers | | 10112 | מספרות גברים | Men's hairdressers | | 10113 | ספא | spa | | 10114 | אביזרי אופנה | fashion accessories | | 10115 | אהילים ונברשות | Lampshades and chandeliers | | 10116 | חנויות כלי בית ומתנות | Housewives and Gifts | | 10117 | חנויות כלי בית ומתנות-חנויות פשוטות | Housewives and simple gifts | | 10118 | חנויות כלי בית ומתנות-חנויות בינוניות | Housewives and Medium Gifts | | 10119 | חנויות כלי בית ומתנות-חנויות יוקרה ורשתות לכלי בית | Housewares and Gifts-Luxury Stores and Networks for Home Tools | | 10120 | מסחר קמעוני במתנות לגבר | Retail trading in men's gifts | | 10121 | אולמי שמחות | A happy hall | | 10122 | אופטומטריסט | Optometrist | | 10123 | אופניים | Bicycle | | 10124 | מכירה ותיקון אופניים | Bicycle Sales and repair | | 10125 | מכירה ותיקון אופניים-חנויות המתמקצעות באופניים חשמליים בלבד | Sales and repair-stores that specialize in electric bicycles only | | 10126 | מכירה ותיקון אופניים-חנויות מעורבות לאופניים חשמליים ורגילים | Sales and repair bicycle-stores mixed to electric and normal bicycles | | 10127 | מכירה ותיקון אופניים-חנויות המתמקדות באופניים רגילים בלבד | Sales and repair-store-focusing on ordinary bicycles only | | 10128 | מסחר קמעוני במוצרי ספורט ובמוצרי מחנאות | Retail trading in sports and camping products | | 10129 | מסחר קמעוני במוצרי ספורט ובמוצרי מחנאות-חנויות יוקרתיות | Retail trade in sports products and in prestigious stores | | 10130 | מסחר קמעוני במוצרי ספורט ובמוצרי מחנאות-חנויות בינוניות | Retail trade in sports products and in medium stores | | 10131 | מסחר קמעוני במוצרי ספורט ובמוצרי מחנאות-חנויות קטנות | Retail trade in sports products and in small stores | | 10132 | טיולים | Tours | | 10133 | אכסניות וכפרי נופש | Hostels and resorts | | 10134 | בתי"ס שדה | SUPS CBS | | 10135 | צימרים, דירות ובתי הארחה | Zimmer, apartments and guest houses | | 10136 | בתי הבראה ומרגוע | Houses of recovery and relaxation | | 10137 | בתי מלון | Hotels | | 10138 | ארנק אלקטרוני | Electronic wallet | | 10139 | נש"מים | UAV | | 10140 | ארנקים ותיקים | Veteran wallets | | 10141 | מזודות | baggage | | 10142 | בדים וטכסטיל | Fabric | | 10143 | מסחר בבדים | Trade in fabrics | | 10144 | מסחר בבדים-בדי ריפוד | Trading in padding fabrics | | 10145 | מסחר בבדים-יבואני בדי אופנה (לביגוד) | Fabric trade-in fashion fabrics (to clothing) | | 10146 | מסחר בבדים-קמעונאים: חנויות בדים | Trade in Fabrics: Fabric Stores | | 10147 | מסחר בבדים-חנויות במרכז הארץ שממקומות במרכז העיר | Trade in shop fabrics in the center of the country that are located in the city center | | 10148 | מסחר בבדים-חנויות במרכז הארץ שממקומות ברחובות צדדיים או בסמיכות לשווקים | Trade in shop fabrics in the center of the country that are located on side streets or close proximity to markets | | 10149 | מסחר בבדים-חנויות בפריפריות (מרוחקות ממרכז הארץ) | Trade in stores in peripherals (distant from the center of the country) | | 10150 | ביטוח לאומי | Social Security | | 10151 | ביטוח מוצרי חשמל | Electrical Insurance | | 10152 | סוכני ביטוח | Insurance Agents | | 10153 | תיכנות | Play | | 10154 | תוכנות מחשבים | Computer software | | 10155 | דגים | Fish | | 10156 | מסחר קמעונאי בדגים-חנויות הממוקמות בשווקים\בערי המרכז ובפריפריה באזורים עם תחרות גדולה | Retail-in-store retail trade located in the markets / cities of the center and periphery in areas with large competition | | 10157 | מסחר קמעונאי בדגים-חנויות בעלות מוניטין הממוקמות ביישוב פריפרי, לרוב חנויות גדולות | Retail trade in reputable fish-stores located in a peripheral settlement, usually large stores | | 10158 | מסחר קמעונאי בדגים-חנויות הממוקמות בערי המרכז וקיימת חנות אחת או שתיים מסוג זה באזור | Retail-in-store retail trading located in the cities of the center and there is one or two stores of this type in the area | | 10159 | מעדני בשר | Meat delicacies | | 10160 | בשר חזיר-גידול החזירים | Pork-growing pigs | | 10161 | בשר חזיר-מסחר סיטוני בגופות חזירים וטבחות בקר (מפורקים) | Sights pork pork in pig bodies and beef (disassembled) | | 10162 | בשר חזיר-ייצור מוצרי בשר: נקניקים, מעושנים, בשרים מוכנים ובשרים מעובדים | Pork-Manufacturing Meat Products: Senannics, Smokers, Ready Meat and Processed Meats | | 10163 | אטליזים | Alas | | 10164 | בתי דפוס | Print houses | | 10165 | פירסום | Advertising | | 10166 | הוצאה לאור ספרים | Publishing Books | | 10166 | הוצאה לאור ספרים | Publishing Books | | 10168 | הוצאה לאור עיתונים | Publishing newspapers | | 10169 | בתי מרקחת | Pharmacies | | 10170 | בתי מרקחת חו"ל | Overseas pharmacies | | 10171 | בתי ספר יסודי ותיכון | Elementary and high school schools | | 10172 | גלידריות | Ice creams | | 10173 | יצרני גלידות | Ice cream manufacturers | | 10174 | גמ"ח הלוואות | Loans | | 10175 | דיסקוטק | discotheque | | 10176 | פאבים | Pubs | | 10177 | דלק לחימום ביתי | Fuel for home heating | | 10178 | התקנת מערכות סולריות | Installation of solar systems | | 10179 | דלק שרות עצמי | Fuel self -service | | 10180 | דרגאסטורים | Dargalstors | | 10181 | חנויות טבע-קבוצה 1-חנויות גדולות | Nature-Group stores 1-stores are large | | 10182 | חנויות טבע-קבוצה 2-חנויות בינוניות | Nature-Group-Group 2-Medium Stores | | 10183 | חנויות טבע-קבוצה 3-חנויות קטנות | Nature-Group stores 3-stores | | 10184 | רשתות פארמה-רשתות גדולות | Large Pharma-Networks | | 10185 | דשנים וכימיקלים | Fertilizers and chemicals | | 10186 | הובלות | Moving | | 10187 | מערבלי בטון | Concrete western | | 10188 | משאבות בטון | Concrete pumps | | 10189 | הובלת מטענים במשאיות | Transporting cargoes in trucks | | 10190 | הסעות | Shuttles | | 10191 | הסעות באוטובוסים | Buses shuttle | | 10192 | הסעות באוטובוסים ציבוריים זעירים | Shuttles on tiny public buses | | 10190 | הסעות | Shuttles | | 10194 | מוניות בקווי שירות-בין עירוני ועירוני | Taxis in Urban and Urban Service lines | | 10190 | הסעות | Shuttles | | 10190 | הסעות | Shuttles | | 10197 | מוניות בשירות מיוחד | Taxis in a special service | | 10198 | שליחיות | Curses | | 10199 | היכרויות ושדוכים | Dating and taps | | 10200 | הלבשה כללית | General dressing | | 10201 | הלוואות פקדונות חסכו | Deposit loans have saved | | 10202 | העברת כספים לכרטיס | Transfer of funds to card | | 10203 | בעלי אירוע | Event owners | | 10204 | הפקות אירועים | Productions | | 10205 | מוצרים לארועים | Products for events | | 10206 | מיזם חתונות-אולמות | Weddings Initiative | | 10207 | הרבלייף | Herbalife | | 10208 | השכרת דירות | apartments rental | | 10209 | השכרת משרדים | Office rental | | 10210 | וידאו אוטומט | Automatic video | | 10211 | וילונות ודקורטיבים | Curtains and decorative | | 10212 | חברות ניהול ואחזקה | Management and maintenance companies | | 10213 | חברות כוח אדם והשמה | Personnel companies and placement | | 10214 | ועדי בתים | And witnesses | | 10215 | עבודות עפר | Earthworks | | 10216 | עבודות עפר- עבודות קטנות היקף ובינוניות | Earthworks- small and medium-sized jobs | | 10217 | עבודות עפר ופיתוח רחבות היקף | Earthworks and wide -ranging development | | 10218 | בנייה ושיפוצים | Construction and renovations | | 10219 | מסחר מעורב בחומרי בניין | Commerce involved in building materials | | 10220 | מסחר מעורב בחומרי בניין-מסחר קמעונאי-חנות | Commerce involved in retail-shop building materials | | 10221 | מסחר מעורב בחומרי בניין-מגרש לחומרי בניין | Commerce involved in building-building materials for building materials | | 10222 | מסחר קמעונאי במוצרי פרזול | Retail trading in forging products | | 10223 | מסחר קמעונאי במוצרי פרזול-חנויות כלליות | Retail trading in General Shopping Products | | 10224 | מסחר קמעונאי במוצרי פרזול-חנויות מקצועיות: מכירה לפרטיים | Retail trade in Professional Professional Store Products: Private Sales | | 10225 | מסחר קמעונאי במוצרי פרזול-חנויות מקצועיות: מכירה לנגרים | Retail trade in Professional Professional Store Products: Sales for Density | | 10226 | מסחרי בצרכי גינון | Commercial in gardening needs | | 10227 | חברות בניה | Construction girlfriends | | 10228 | קבלני גגות | Roofing contractors | | 10229 | קבלני גגות גדולים | Large roof contractors | | 10230 | קבלני גגות קטנים | Small roofs | | 10231 | סוככים ופרגולות | Awnings and pergolas | | 10232 | סוככים ופרגולות-עסקים גדולים | Large awnings and pergolas | | 10233 | סוככים ופרגולות-עסקים קטנים | Small awnings and pergolas | | 10234 | איטום גגות | roof sealing | | 10235 | איטום גגות-2 שכבות זפת+פיברגלס או אינטרלס | Sealing Roofs 2 Tarboxs+Fiberglass or Interlis | | 10236 | איטום גגות-יריעות ביטומנית | Sealing roofs-bituminous sheets | | 10237 | איטום גגות-סיוד גגות | Sealing roof-roofs | | 10238 | קבלני שלד | Skeletal contractors | | 10239 | קבלני שלד-בניין גבוה ונמוך בשיטה הקונבנציונלית | High and low building skeletal contractors in the conventional method | | 10240 | קבלני שלד-בית צמוד קרקע בשיטה הקונבנציונלית | Land-linked skeleton contractors using the conventional method | | 10241 | קבלני משנה לאינסטלציה חשמלית | Subcontractors for electrical plumbing | | 10242 | קבלני משנה לאינסטלציה סניטרית | Subcontractors to Sanitarian plumbing | | 10243 | קבלני משנה לאינסטלציה סניטרית-קבלני אינסטלציה לבתים פרטיים | Subcontractors for Senternity-contractor plumbing for private homes | | 10244 | קבלני משנה לאינסטלציה סניטרית-קבלני אינסטלציה לבנייני מגורים נמוכים עד גבוהים | Subcontractors for Senternity-contractor plumbing plumbing for low to high residential buildings | | 10245 | קבלני משנה לאינסטלציה סניטרית-קבלני אינסטלציה לבנייני מגורים רבי קומות | Subcontractors for Senternity-contractor plumbing plumbing for high-rise residential buildings | | 10246 | מוצרי אינסטלציה | Plumbing products | | 10247 | מסחר בקרמיקה וכלים סניטריים | Ceramic trading and sanitary ware | | 10248 | מסחר בקרמיקה וכלים סניטריים-יבואנים גדולים | Trading in ceramics and a great sanitary-importer | | 10249 | מסחר בקרמיקה וכלים סניטריים-יבואנים קטנים | Trading in ceramics and small sanitary-imported tools | | 10250 | מסחר בקרמיקה וכלים סניטריים-יצרנים מקומיים ליבואנים, לקמעונאים ולקבלנים | Commerce in ceramics and sanitary-manufacturers to local importers, retailers and contractors | | 10251 | מסחר בקרמיקה וכלים סניטריים-יצרנים מקומיים לצרכן הפרטי | Ceramic trading and sanitary-manufacturers to private consumer | | 10252 | חברות עירוניות | Urban companies | | 10253 | קיבוצים | Kibbutzim | | 10254 | חברות תעופה | Airlines | | 10255 | חברת דלק מקשר | A fuel company connects | | 10256 | חברת דלק צי רכב | Delek Company Vehicle fleet | | 10257 | חברת חשמל | IEC | | 10258 | חומרי ניקוי | Cleaners | | 10259 | פרפומריות | Poptimism | | 10260 | חלקי חלוף לרכב | Parts of pass to car | | 10261 | מסחר סיטונאי בחלקי חילוף לרכב | Wholesale trading in car spare parts | | 10262 | מסחר קמעונאי בחלקי חילוף לרכב | Retail trading in car spare parts | | 10260 | חלקי חלוף לרכב | Parts of pass to car | | 10260 | חלקי חלוף לרכב | Parts of pass to car | | 10265 | טבק וצרכי עישון | Tobacco and smoking needs | | 10266 | טובין דיגיטלי | Digital goods | | 10267 | טלפונים סלולריים | cellphones | | 10268 | טפטים | Wallpapers | | 10269 | טרקלין שדה תעופה | Airport lounge | | 10270 | יהלומים/אבנים יקרות | Diamonds/Dear Stones | | 10271 | חריטת אופנים לליטוש יהלומים | Engraving bike to polishing diamonds | | 10272 | החזרי מס | Tax refunds | | 10273 | ייעוץ משכנתאות/החזרי מס | Mortgage counseling/tax refunds | | 10274 | ייעוץ פיננסי | financial advice | | 10275 | דלתות פלדה | Steel doors | | 10276 | כלי בית ומטבח | Houseware and kitchen | | 10277 | מטבחים | Kitchens | | 10278 | קבלני טיח | Plaster contractors | | 10279 | קבלני טיח-קבלן משנה לטיח בנייה רוויה, טיח גבס | Plaster-contractor contractors for saturated construction, plaster plaster | | 10280 | קבלני טיח-קבלן משנה לטיח בבנייה רוויה, טיח שחור | Plaster-contractor contractors for plaster with saturated construction, black plaster | | 10281 | קבלני טיח-קבלן טיח בבנייה פרטית | Plaster-contractor contractors with private construction | | 10282 | מקלחונים | Showers | | 10283 | קרמיקה וכלים סניטרים | Ceramic and sanitary ware | | 10284 | קבלני מצבות | Tombstones | | 10285 | הרכבת שיש במטבחים ואמבטיות | The train has in kitchens and baths | | 10286 | מפעלי הבטון | Concrete factories | | 10287 | ייצור בלוקים | Production of blocks | | 10288 | כלי מיטה | Bedding | | 10289 | מזרונים וחדרי שינה | Mattresses and bedrooms | | 10290 | כלי נגינה | Musical Instruments | | 10291 | בנין צבע | A color building | | 10292 | קבלני משנה לצבע | Subcontractors to color | | 10293 | קבלני משנה לצבע-צביעת פנים הדירה | Subcontractors to the color of the interior of the apartment | | 10294 | קבלני משנה לצבע-צביעת הבניין מבחוץ | Subcontractors to the color of the building from the outside | | 10295 | כלי עבודה | Tools | | 10296 | יבואני רכב | Car importers | | 10297 | כלי רכב | Vehicles | | 10298 | לוטו טוטו | Lotto Toto | | 10299 | ליסינג | Leasing | | 10300 | מוניות | Taxis | | 10301 | תחבורה ציבורית | Public Transport | | 10302 | מועדוני ספורט | Sports Clubs | | 10303 | מחנאות | camping | | 10304 | מועצות ועיריות | Councils and municipalities | | 10305 | מיסי עיריות/רשויות | Municipal taxes/authorities | | 10306 | מוזיאונים | Museums | | 10307 | מרכז אומניות ועבודות יד | Arts and Handmade Center | | 10308 | תאטרון תרבות ופנאי | Culture and leisure theater | | 10309 | מוצרי גומי ופלסטיק | Rubber and plastic products | | 10310 | צמיגים | Tires | | 10311 | מסחר קמעונאי ותיקון צמיגים (פנצ'ריות) | Retail trading and tire repair (punctures) | | 10312 | מסחר קמעונאי ותיקון צמיגים (פנצ'ריות)-מכירת צמיגים חדשים בכלי רכב פרטיים | Retail trade and tire repair (punctures)-Selling new tires in private vehicles | | 10313 | מסחר קמעונאי ותיקון צמיגים (פנצ'ריות)-מכירת צמיגים חדשים ברכבי משא | Retail trade and tire repair (punctures)-Selling new tires in freight vehicles | | 10314 | מסחר קמעונאי ותיקון צמיגים (פנצ'ריות)-מכירת צמיגים משומשים | Retail trade and tire repair (punctures)-Selling used tires | | 10315 | מסחר קמעונאי ותיקון צמיגים (פנצ'ריות)-תיקון תקרים | Retail trading and tire repair (punctures)-repairing ceilings | | 10310 | צמיגים | Tires | | 10317 | חברות גז | Gas companies | | 10318 | מוצרי גז | Gas products | | 10319 | אביזרי חשמל | Electrical accessories | | 10320 | מוצרי חשמל גדולים | Large electrical products | | 10321 | מוצרי חשמל גדולים-מזגנים | Large-air-conditioned electrical products | | 10321 | מוצרי חשמל גדולים-מזגנים | Large-air-conditioned electrical products | | 10323 | מזגנים-קטנים עד 1.5 כ"ס | Air conditioners up to 1.5 kW | | 10324 | מזגנים-בינוניים 2.5-3.5 כ"ס | Medium-medium-to-mediums 2.5-3.5 kW | | 10325 | מגזנים-גדולים 4 כ"ס ומעלה ומיני מרכזיים | Magazines-large 4 kW and centers and mini | | 10326 | דודי שמש ואנרגיה סולארית | Solar boilers and solar energy | | 10326 | דודי שמש ואנרגיה סולארית | Solar boilers and solar energy | | 10328 | חשמל ואלקטרוניקה | electricity and electronics | | 10329 | רדיו ומערכות למכוניות | Radio and systems for cars | | 10330 | מוסכים לחשמלאות רכב | Garages for car pumps | | 10331 | מכוני רחיצה למכוניות | Watchs for cars | | 10332 | תיקון והתקנת מוצרי חשמל | Repair and installation of electrical appliances | | 10333 | פירסום ודפוס | Advertising and pattern | | 10334 | מוצרי תוכן דיגיטלי | Digital content products | | 10335 | בתי טבע | Natural homes | | 10336 | מוצ.דיאטה | Moada diet | | 10337 | מזכרות מתנות חפצי חן | Souvenirs of grace gifts | | 10338 | אטרקציות | attractions | | 10339 | ברכות שחיה/קאנטרי קלאב | Congratulations/Country Club | | 10340 | מאמני כושר | Fitness trainers | | 10341 | ספורט ומחנאות | Sports and flattens | | 10342 | מחשבים | Computers | | 10343 | חנויות סלולר | Cellular shops | | 10344 | מטהרי מים-מכירת ציוד | Water Pure-Sale Equipment | | 10345 | מטהרי מים-שירות | Service-water purifiers | | 10346 | מכלת ומינימרקט | Intelligence and Minimarket | | 10347 | מיסטיקה | Mysticism | | 10348 | מתפרות | Sewn | | 10349 | בית חולים פרטי/מרכז שיקום/מכון רפואי | Private Hospital/Rehabilitation Center/Medical Institute | | 10350 | מכונות כתיבה/תפירה | Writing/sewing machines | | 10351 | מכונות לתעשיה חקלאות | Agricultural Industries Machines | | 10352 | חוגים וקורסים | Classes and courses | | 10353 | מכוני לימוד והדרכה | Learning and Training Institutes | | 10354 | מכללות ואוניברסיטאות | Colleges and universities | | 10355 | מכוני קוסמטיקה | Cosmetics institutes | | 10356 | יבואני אופנועים | Motorcycles importers | | 10357 | סוכנות אופנועים | Motorcycle agency | | 10358 | מוסכי קטנועים ואופנועים | Scooters and motorcycles garages | | 10359 | תיווך נדל"ן | Real Estate | | 10360 | מכירת כלי רכב | Selling vehicles | | 10360 | מכירת כלי רכב | Selling vehicles | | 10362 | מכירת מכשירי גז | Selling Gas Devices | | 10363 | מכשירי בריאות | Health devices | | 10364 | בית חב"ד | Chabad House | | 10365 | בית כנסת | Synagogue | | 10366 | סופרי סת"ם | Catholic writers | | 10367 | עמותה לרווחת חיילים | Association for the Welfare of Soldiers | | 10368 | עמותות בריאות | Health associations | | 10369 | עמותות לקהילה | Community associations | | 10370 | עמותות מחקר | Research associations | | 10371 | מנויי לוטו טוטו | Lotto Toto subscribers | | 10372 | אלומיניום מסגריות | Aluminum Fragments | | 10373 | חדר עסקאות - פורקסים | Transaction Room - Forxies | | 10374 | מסחר במט"ח | Forex Trading | | 10375 | מסעדות | Restaurants | | 10376 | מסעדות פועלים | Restaurant Works | | 10377 | מסעדות סיניות | Chinese restaurants | | 10378 | מסעדות מזרחיות | Eastern restaurants | | 10379 | מסעדות דגים | Fish restaurants | | 10380 | מסעדות איטלקיות | Italian restaurants | | 10015 | פאות | Wigs | | 10382 | טכנאות שיניים | Tooth techniques | | 10383 | מעבדת שניים | Two lab | | 10384 | מערכות אזעקה | Alarm systems | | 10385 | מערכות בטחון | Security systems | | 10386 | מפעל הפיס - זכיינים | Lottery - franchisees | | 10387 | מפעל הפיס | Lottery | | 10388 | משחקים און ליין | Games online | | 10389 | יקב | winery | | 10390 | משקאות חריפים וקלים | Acute and soft drinks | | 10391 | משרד התחבורה-רישוי | The Ministry of Transport-Licensing | | 10392 | משרדי ממשלה | Government Offices | | 10393 | משרדי פרסום | Advertising agencies | | 10394 | הדברת מזיקים | Pest control | | 10395 | מתן אשרות שהיה | Giving visas that was | | 10396 | מרכז קהילתי | community Center | | 10397 | מתנס | community Center | | 10398 | נגריות/רפדיות | Carpentry/paddies | | 10399 | בדי רפוד | Rapped Fabrics | | 10400 | מסחר בחומרי נגרות | Trading in carpentry materials | | 10401 | מסחר בחומרי נגרות-מכירות מסיביות-הפצה | Trading in massive carpentry materials-distributing | | 10402 | מסחר בחומרי נגרות-מכירה סיטונאית | Trading in carpentry-wholesale materials | | 10403 | מסחר בחומרי נגרות-מכירה קמעונאית ("לפרטיים") | Trade in retail carpentry materials (“to private”) | | 10404 | מסחר בחומרי נגרות-מכירות חומרי עץ מעובדים | Trade in carpentry materials-wooden materials processed | | 10405 | מסחר בחומרי נגרות-מכירת פרזולים וחומרים שונים | Trading in carpentry-selling materials and various materials | | 10406 | נותני שרותי מטבע (חלפני כספים) | Currency service providers (Financial Almighty) | | 10407 | הנעלה | footwear | | 10408 | הנעלה-חנויות סוג 1 | Type-Type 1 store | | 10409 | הנעלה-חנויות סוג 2 | Type 2 stores | | 10410 | הנעלה-חנויות סוג 3 | The trace-store type 3 | | 10411 | הנעלה-חנויות סוג 4 | The Type 4 stores | | 10412 | נשק ותחמושת | Weapons and ammunition | | 10412 | נשק ותחמושת | Weapons and ammunition | | 10414 | סדקית ומוצרי תפירה | Crack and sewing products | | 10415 | סוכני דלק | Fuel agents | | 10416 | מסחר בדלק | Fuel commerce | | 10417 | מסחר בדלק-תחנות של חברות הדלק היצרניות: בנזין 95 | Fuel trading of the manufacturer's fuel companies: gasoline 95 | | 10418 | מסחר בדלק-תחנות של חברות הדלק היצרניות: סולר לתחבורה | Fuel trading of the manufacturer's fuel companies: Due to Transportation | | 10419 | מסחר בדלק-תחנות של חברות הדלק היצרניות: סולר להסקה | Fuel trading of the manufacturer's fuel companies: diesel fuel | | 10420 | מסחר בדלק-תחנות של חברות הדלק היצרניות: נפט | Fuel trading of the manufacturer's fuel companies: oil | | 10421 | מסחר בדלק-תחנות מוזלות של חברות הדלק היצרניות: בנזין 95 מוזל | Fuel Trade-Discounted Fuel Companies Station | | 10422 | מסחר בדלק-תחנות מוזלות של חברות הדלק היצרניות: סולר לתחבורה מוזל | Discounted Fuel Fuel Commerce of Manufacturer Fuel Companies: Dyer For Disposable Transportation | | 10423 | מסחר בדלק-מכירה סיטונאית של בנזין 95 | Fuel trading-wholesale of petrol 95 | | 10424 | מסחר בדלק-מכירה סיטונאית של סולר לתחבורה | Fuel trading-wholesale of diesel fuel for transportation | | 10425 | מסחר בדלק-סוכנים ומפיצים קמעונאים של בנזין 95 | Fuel-agent trading and retail distributors of gasoline 95 | | 10426 | מסחר בדלק-סוכנים ומפיצים קמעונאים של סולר לתחבורה בתחנה | Fuel-agent trading and retail distributors of transport to transportation at the station | | 10427 | מסחר בדלק-סוכנים ומפיצים קמעונאים של סולר לתחבורה והסקה במיכליות | Fuel-agent trading and retail distributors of diesel and heating in tankers | | 10428 | סופרמרקטים | Supermarkets | | 10429 | סטקיות ומזנונים | Steaks and buffets | | 10430 | דוכני פלאפל | Falafel booths | | 10431 | פיצוחים | Nuts | | 10432 | סיטונאי - מוצרים לא עמידים | Wholesale - non -resistant products | | 10433 | מסחר סיטוני בפירות ובירקות | Wholesale trading in fruits and vegetables | | 10432 | סיטונאי - מוצרים לא עמידים | Wholesale - non -resistant products | | 10435 | סיטונאי - מוצרים לא עמידים: משחטות-מסחר בעופות והודים | Wholesale - non -durable products: poultry trading and Indian trading | | 10436 | סוחרי בקר וצאן | Beef and flock traders | | 10437 | סיטונאי-מוצרים עמידים | Wholesale-products resistant | | 10437 | סיטונאי-מוצרים עמידים | Wholesale-products resistant | | 10143 | מסחר בבדים | Trade in fabrics | | 10437 | סיטונאי-מוצרים עמידים | Wholesale-products resistant | | 10441 | בתי קולנוע | Theaters | | 10442 | סניטציה | Sanitation | | 10443 | ספק תוכן אינטרנט | Internet content provider | | 10444 | ספריות וידיאו | Video libraries | | 10445 | דיסקים | Discs | | 10446 | דמי חברות מועדון | Club Companion Fee | | 10447 | עמותות ואגודות | Associations and associations | | 10448 | עמותות חינוך | Education associations | | 10449 | מפלגות, בחירות | Parties, elections | | 10369 | עמותות לקהילה | Community associations | | 10451 | עמותות דת | Religious associations | | 10452 | עמותות מוסלמיות | Muslim associations | | 10453 | עמותות נוצריות | Christian associations | | 10454 | עמותות תרומות | Donations of donations | | 10455 | פירות וירקות | Fruits and Vegetables | | 10456 | מסחר קמעונאי בפירות וירקות | Retail trading in fruits and vegetables | | 10457 | מסחר קמעונאי בפירות וירקות-חנויות שכונתיות עממיות | Retail trade in fruits and vegetables-mummous neighborhood stores | | 10458 | מסחר קמעונאי בפירות וירקות-חנויות שכונתיות יוקרתיות | Retail trading in prestigious neighborhoods and vegetables | | 10459 | מסחר קמעונאי בפירות וירקות-חנויות ברחובות ראשיים בערים | Retail trading in fruits and vegetables on main streets in cities | | 10460 | בגדי עור | Leather clothes | | 10461 | מסחר קמעוני בתיקים ומזוודות-חנויות סוג 1 | Retail trading in bags and luggage-type 1 | | 10462 | מסחר קמעוני בתיקים ומזוודות-חנויות סוג 2 | Retail trading in bags and luggage-type 2 | | 10463 | מסחר קמעוני בתיקים ומזוודות-חנויות סוג 3 | Retail trading in bags and luggage-store type 3 | | 10464 | פרוות | Fur | | 10465 | פרחים ועציצים | Flowers and flower pots | | 10466 | מסחר קמעונאי בפרחים | Retail trading in flowers | | 10467 | ציוד לתינוק | Baby equipment | | 10468 | מכש.כתיבה | P.S. Writing | | 10469 | מסחר קמעוני במכשירי כתיבה | Retail trading on writing devices | | 10470 | מסחר קמעוני במכשירי כתיבה-חנויות מכשירי כתיבה וציוד משרדי שעיקר מכירותיהן לחברות ומוסדרות | Retail trading on writing devices-writing devices and office equipment whose main sales for companies and regulations | | 10471 | מסחר קמעוני במכשירי כתיבה-חנויות למכשירי כתיבה וציוד משרדי שעיקר מכירותיהן ללקוחות פרטיים | Retail trading on writing-stores for writing devices and office equipment whose main sales are private customers | | 10472 | מסחר קמעוני במכשירי כתיבה-חנויות למכשירי כתיבה (כולל מכשירי כתיבה בחנויות מעורבות) | Retail Trade on Writing Store Writing devices (including writing appliances in mixed stores) | | 10473 | ציוד משרדי | Office Supplies | | 10474 | מיכשור רפואי | Medical devices | | 10475 | צמר וסריגה | Wool and knitting | | 10476 | ציוד לגנים | Garden equipment | | 10477 | צעצועים | Toys | | 10478 | מסחר בצעצועים ומשחקים | Trade in toys and games | | 10479 | מסחר בצעצועים ומשחקים-חנויות ברמה א' | Trade in toys and Games-stores at level 1 | | 10480 | מסחר בצעצועים ומשחקים-חנויות ברמה ב' | Trade in toys and Games-Stores B | | 10481 | מסחר בצעצועים ומשחקים-חנויות ברמה ג' | Trade in toys and Games-Games Level C. | | 10482 | חנויות נוחות ופיצוציות | Convenient and explosive shops | | 10483 | קייטנה | Summer Camp | | 10484 | קייטרינג | Catering | | 10485 | קפה ותבלינים | Coffee and spices | | 10486 | מסחר קמעונאי בתבלינים, קטניות, פיצוחים ופירות יבשים | Retail trading in spices, legumes, crackers and dried fruits | | 10487 | מסחר קמעונאי בתבלינים, קטניות, פיצוחים ופירות יבשים-קניון | Retail trading in spices, legumes, crackers and dried fruits-malls | | 10488 | מסחר קמעונאי בתבלינים, קטניות, פיצוחים ופירות יבשים-רחוב ראשי | Retail trading in spices, legumes, crackers and dried fruits-main street | | 10489 | מסחר קמעונאי בתבלינים, קטניות, פיצוחים ופירות יבשים-שוק | Retail trade in spices, legumes, crackers and dried fruits-market | | 10490 | רהיטים | furniture | | 10491 | רהיטים-חנויות המוכרות מוצרים פשוטים | Furniture-stores selling simple products | | 10492 | רהיטים-חנויות המוכרות מוצרים ברמה בינונית | Furniture-stores familiar with medium-level products | | 10493 | רהיטים-חנויות המוכרות מוצרים ברמה גבוהה | Furniture-stores selling high-level products | | 10494 | רהיטים-חנויות יוקרתיות (מחיר לפריט) | Luxury store furniture (item for item) | | 10495 | חנויות ריהוט וציוד לתינוקות | Furniture and baby equipment | | 10496 | חנויות ריהוט וציוד לתינוקות-חנויות קטנות עממיות | Furniture stores and equipment for small popular stores | | 10497 | חנויות ריהוט וציוד לתינוקות-חנויות בינוניות | Furniture and Baby Equipment-Medium Stores | | 10498 | חנויות ריהוט וציוד לתינוקות-חנויות גדולות | Furniture and Big Baby-store equipment | | 10499 | חנויות ריהוט וציוד לתינוקות-חנויות רשת | Furniture stores and baby-store equipment | | 10500 | ייבוא רהיטים | Import furniture | | 10501 | ייבוא מטבחים | Import kitchens | | 10502 | ייבוא מטבחים-מטבחים פשוטים | Import Kitchens-Simple kitchens | | 10503 | ייבוא מטבחים-מטבחי יוקרה | Import kitchens-kitchens luxury | | 10504 | רהיטים-ייצור רהיטים מעץ מלא | Furniture-Manufacture of solid wood furniture | | 10505 | נגרות פלטות | Passover carpentry | | 10506 | מהנדסים | engineers | | 10507 | רו"ח | Breeze | | 10508 | רכישת ניירות ערך | Purchase securities | | 10509 | טיפולי בריאות לגוף | Health treatments to the body | | 10510 | רפואה אלטרנטיבית | Alternative Medicine | | 10511 | רשות השידור | IBA | | 10512 | רשתות מזון ארציות | Nursing food chains | | 10513 | תעשיית מזון קפוא מוכן | Frozen food industry ready | | 10514 | פרקטים | Parquets | | 10515 | קבלני ריצוף | Flooring contractors | | 10516 | שטיחים | Rugs | | 10516 | שטיחים | Rugs | | 10518 | שיווק ישיר | direct marketing | | 10519 | שירותי ייעוץ | consulting services | | 10520 | שירותי מלאכה לבית | Home Craft Services | | 10521 | שירותי רכב | Automotive Services | | 10522 | מוסכי פחחות וצביעת רכב | Bins and Car Determination | | 10523 | מוסכי פחחות וצביעת רכב-מוסך מורשה או מומחה | Tinted garages and a licensed vehicle-garage or expert | | 10524 | מוסכי פחחות וצביעת רכב-מוסך כללי | Tin Garages and General Vehicle Determination | | 10521 | שירותי רכב | Automotive Services | | 10526 | מינהל ציבורי כללי | General public administration | | 10527 | פיקוח על מתן שירותי בריאות, חינוך, תרבות ושירותים חברתיים אחרים, פרט ל | Supervision for providing health, education, culture and other social services, except | | 10528 | מינהל ציבורי לנמ"א | Public Administration for the NMA | | 10529 | ניהול ענייני החוץ | Foreign Affairs Management | | 10530 | פעילויות צבא והגנה | Army and Protection Activities | | 10531 | שמירה על הסדר הציבורי ועל ביטחון הציבור | Maintaining public order and public security | | 10532 | שירותים ממשלתיים | Government Services | | 10533 | שלטים | Signs | | 10534 | שמאים | Appraisers | | 10535 | שמאי ביטוח | Insurance Appraiser | | 10536 | בתי חולים ממשלתים | Government Hospitals | | 10537 | פסיכולוגים | Psychologists | | 10538 | רופאים | Doctors | | 10539 | שרותי אמבולנס | Ambulance services | | 10540 | מכשירי כתיבה וציוד משרדי | Writing and Office Equipment | | 10541 | תחנות דלק | gas stations | | 10542 | תיווך | Mediation | | 10543 | תיירות למרפא | Tourism to Medicine | | 10544 | תכשיטים ושעונים | Jewelry and watches | | 10545 | תכשיטים ושעונים-חנויות יוקרתיות מאוד | Very prestigious jewelry and watches | | 10546 | תכשיטים ושעונים-חנויות יוקרתיות | Luxury jewelry and watches | | 10547 | תכשיטים ושעונים-חנויות איכות טובה | Jewelry and watches-good quality stores | | 10548 | תכשיטים ושעונים-חנויות בינוניות | Jewelry jewelry and watches | | 10549 | תכשיטים ושעונים-חנויות קטנות | Jewelry jewelry and watches | | 10544 | תכשיטים ושעונים | Jewelry and watches | | 10551 | יוצקים בענף התכשיטים | Pour in the jewelry industry | | 10552 | תמרוקיות | Cosmetics | | 10553 | נופש ותיור | Vacation and tour | | 10554 | סוכני נסיעות | Travel Agents | | 10555 | כנסים | Conferences | | 10056 | תערוכות | Exhibitions | | 10557 | תקליטים | Records | | 10558 | ציוד טלפוני | Telephone equipment | | 10559 | תקשורת | communication | | 10560 | טלויזיה בכבלים | Cable TV | | 10561 | עיתונות | journalism | | 10562 | תרומות | Donations | | 10563 | אלומניום | Aluminum | | 10564 | אלומניום-ייצור והתקנה | Aluminum-production and installation | | 10565 | תריסים | Shutters | - [Individual Seller Types](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/individual-seller-types): Reference list of role codes for individuals linked to a seller: owner, signatory, director, executive and back office. # Individual Seller Types Code | Role ---|--- 1| Owner 2| Signatory 4| Director 8| Executive 16| Back Office - [Seller Incorporation Types (IL)](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/seller-incorporation-types-il): Reference list of Israeli business incorporation type codes, such as sole proprietorship, company, partnership and non-profit. # Seller Incorporation Type (IL) Code | Type in Hebrew | Type in English ---|---| --- 1| פרטי|Individual 2|עוסק מורשה |Sole Proprietorship 3|חברה בע"מ |Incorporated Company 4| שותפות|Partnership 5| עוסק פטור|Exempt Company 6| עמותה|Charity (Non Profit) 7|שותפות מוגבלת |Limited Partnership 8| חברה ציבורית|Publicly Traded Company 9| אגודה שיתופית|Shared Cooperative 10|חברה לתועלת הציבור (חל"צ) |Public Benefit Company 295|ועד בית| House Committee 296|עיריות ומועצות|Municipalities and councils - [VAS Types](https://docs-staging.payme.io/marketplaces-and-platforms/lists-statuses/vas-types): Reference list of value-added service (VAS) type codes, such as invoices, SMS, antifraud, marketplace and POS. # VAS Types | VAS Type | Description | |---------|------------------------| | 1 | Integration | | 2 | Payments | | 3 | Discount | | 4 | Merchandise | | 5 | Invoice | | 6 | Sms | | 7 | CreditMatch | | 8 | Antifraud | | 9 | Insurance | | 10 | Delivery | | 11 | Marketplace | | 12 | Development | | 13 | CreationPlans | | 14 | VaultsExternal | | 15 | AlternativePaymentMethod| | 16 | Loan | | 17 | MIDs | | 18 | MIDSwitcher | | 19 | ReleaseDate | | 20 | Settlements | | 21 | Email | | 22 | Catalog | | 23 | Customers | | 24 | MerchantRules | | 25 | InvoicingService | | 26 | KeepAdditionalService | | 27 | Pos | | vc_type | vc_type |