@zkp2p/providers 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,121 @@
1
+ {
2
+ "actionType": "transfer_mercado_pago",
3
+ "authLink": "https://www.mercadopago.com.ar/home",
4
+ "url": "https://www.mercadopago.com.ar/activities/detail/{{PAYMENT_ID}}?from={{URL_PARAMS_FROM}}",
5
+ "method": "GET",
6
+ "body": "",
7
+ "metadata": {
8
+ "platform": "mercadopago",
9
+ "urlRegex": "https://www.mercadopago.com.ar/home",
10
+ "method": "GET",
11
+ "fallbackUrlRegex": "",
12
+ "fallbackMethod": "",
13
+ "preprocessRegex": "<script\\s+[^>]*id=[\"']__PRELOADED_STATE__[\"'][^>]*>([\\s\\S]*?)</script>",
14
+ "transactionsExtraction": {
15
+ "transactionJsonPathListSelector": "$.pageState.mpHome.result.sections.activities.content.activities_container.results",
16
+ "transactionJsonPathSelectors": {
17
+ "recipient": "$.title",
18
+ "amount": "$.amount.fraction",
19
+ "date": "$.creationDate",
20
+ "paymentId": "$.id",
21
+ "currency": "$.amount.currency_id"
22
+ }
23
+ },
24
+ "proofMetadataSelectors": [
25
+ {
26
+ "type": "jsonPath",
27
+ "value": "$.pageState.mpHome.result.sections.activities.content.activities_container.results[{{INDEX}}].title"
28
+ },
29
+ {
30
+ "type": "jsonPath",
31
+ "value": "$.pageState.mpHome.result.sections.activities.content.activities_container.results[{{INDEX}}].amount.fraction"
32
+ },
33
+ {
34
+ "type": "jsonPath",
35
+ "value": "$.pageState.mpHome.result.sections.activities.content.activities_container.results[{{INDEX}}].id"
36
+ }
37
+ ]
38
+ },
39
+ "paramNames": [
40
+ "PAYMENT_ID",
41
+ "URL_PARAMS_FROM"
42
+ ],
43
+ "paramSelectors": [
44
+ {
45
+ "type": "jsonPath",
46
+ "value": "$.pageState.mpHome.result.sections.activities.content.activities_container.results[{{INDEX}}].id"
47
+ },
48
+ {
49
+ "type": "regex",
50
+ "value": "(mp-home)"
51
+ }
52
+ ],
53
+ "skipRequestHeaders": [
54
+ "Cookie",
55
+ "Accept-Encoding"
56
+ ],
57
+ "secretHeaders": [
58
+ "Cookie"
59
+ ],
60
+ "responseMatches": [
61
+ {
62
+ "type": "regex",
63
+ "value": "v2__detail\">(.*?)CVU: (?<recipientId>[0-9]+)</li>",
64
+ "hash": true
65
+ },
66
+ {
67
+ "type": "regex",
68
+ "value": "<span class=\"andes-money-amount__fraction\" aria-hidden=\"true\">(?<amt>[0-9.]+)</span><span aria-hidden=\"true\">,</span><span class=\"andes-money-amount__cents\" aria-hidden=\"true\">(?<cents>[0-9]+)</span>"
69
+ },
70
+ {
71
+ "type": "regex",
72
+ "value": "Total\",\"amount\":{\"currency_id\":\"(?<curr>[^\"]+)\""
73
+ },
74
+ {
75
+ "type": "regex",
76
+ "value": ",\"date\":\"(?<date>[^\"]+)\",\"sections\""
77
+ },
78
+ {
79
+ "type": "regex",
80
+ "value": "\"operationId\":(?<paymentId>[^,]+),\"activityName\":\"(?<paymentType>[^\"]+)\",\"activityStatus\":\"(?<paymentStatus>[^\"]+)\","
81
+ }
82
+ ],
83
+ "responseRedactions": [
84
+ {
85
+ "jsonPath": "",
86
+ "xPath": "",
87
+ "regex": "v2__detail\">(.*?)CVU: (.*?)</li>"
88
+ },
89
+ {
90
+ "jsonPath": "",
91
+ "xPath": "",
92
+ "regex": "<span class=\"andes-money-amount__fraction\" aria-hidden=\"true\">(.*?)<\/span><span aria-hidden=\"true\">,<\/span><span class=\"andes-money-amount__cents\" aria-hidden=\"true\">(.*?)<\/span>"
93
+ },
94
+ {
95
+ "jsonPath": "",
96
+ "xPath": "",
97
+ "regex": "\"Total\",\"amount\":{\"currency_id\":\"(.*?)\""
98
+ },
99
+ {
100
+ "jsonPath": "",
101
+ "xPath": "",
102
+ "regex": ",\"date\":\"(.*)\",\"sections\""
103
+ },
104
+ {
105
+ "jsonPath": "",
106
+ "xPath": "",
107
+ "regex": "\"operationId\":(.*?),\"activityName\":\"(.*?)\",\"activityStatus\":\"(.*?),"
108
+ }
109
+ ],
110
+ "mobile": {
111
+ "includeAdditionalCookieDomains": [
112
+ "mercadolibre.com",
113
+ "www.mercadolibre.com"
114
+ ],
115
+ "internal": {
116
+ "actionLink": "https://www.mercadopago.com.ar/money-out/transfer/",
117
+ "actionCompletedUrlRegex": "https://www.mercadopago.com.ar/money-out/transfer/congrats\\?data=\\S+",
118
+ "injectedJavaScript": "(function(){const style=document.createElement('style');style.textContent='.zkp2p-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;background:#007AFF;border-radius:4px;cursor:pointer;z-index:9999;display:flex;align-items:center;justify-content:center;color:white;font-weight:bold;font-size:12px;}.zkp2p-dropdown{position:absolute;background:#FFF;border:1px solid #E0E0E0;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:99999;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;font-size:14px;color:#333;width:auto;min-width:250px;}.zkp2p-dropdown-item{padding:12px 16px;cursor:pointer;}.zkp2p-dropdown-item:hover{background:#F5F5F5;}.zkp2p-dropdown-item:active{background:#E8E8E8;}.zkp2p-dropdown-label{color:#666;font-size:12px;margin-bottom:4px;}.zkp2p-dropdown-value{font-weight:500;color:#333;font-size:16px;}.zkp2p-toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#333;color:white;padding:10px 20px;border-radius:6px;z-index:999999;font-family:system-ui;}';document.head.appendChild(style);const copyToClipboard=function(text){const textArea=document.createElement('textarea');textArea.value=text;textArea.style.position='fixed';textArea.style.top='-9999px';document.body.appendChild(textArea);textArea.select();textArea.setSelectionRange(0,99999);document.execCommand('copy');document.body.removeChild(textArea);const toast=document.createElement('div');toast.className='zkp2p-toast';toast.textContent='Copied!';document.body.appendChild(toast);setTimeout(()=>toast.remove(),2000);};const createDropdown=function(input,label,value){const rect=input.getBoundingClientRect();const dropdown=document.createElement('div');dropdown.className='zkp2p-dropdown';dropdown.id='zkp2p-dropdown-'+Date.now();dropdown.style.position='absolute';dropdown.style.top=(rect.bottom+window.scrollY+4)+'px';dropdown.style.left=rect.left+'px';dropdown.style.display='block';const item=document.createElement('div');item.className='zkp2p-dropdown-item';item.innerHTML='<div class=\"zkp2p-dropdown-label\">'+label+'</div><div class=\"zkp2p-dropdown-value\">'+value+'</div>';item.addEventListener('click',function(){copyToClipboard(value);dropdown.remove();});dropdown.appendChild(item);document.body.appendChild(dropdown);setTimeout(()=>{document.addEventListener('click',function hideDropdown(e){if(!dropdown.contains(e.target)&&e.target!==input&&!e.target.classList.contains('zkp2p-icon')){dropdown.remove();document.removeEventListener('click',hideDropdown);}});},100);};const addIcon=function(input,label,value){const container=input.closest('.andes-amount-field__input-container')||input.parentElement;container.style.position='relative';const icon=document.createElement('div');icon.className='zkp2p-icon';icon.textContent='Z';icon.addEventListener('click',function(e){e.stopPropagation();const existing=document.querySelector('.zkp2p-dropdown');if(existing)existing.remove();createDropdown(input,label,value);});container.appendChild(icon);createDropdown(input,label,value);};const setupFields=function(){const cvuInput=document.querySelector('input[name=\"identification_account\"]');if(cvuInput&&!cvuInput.hasAttribute('data-zkp2p')){cvuInput.setAttribute('data-zkp2p','true');addIcon(cvuInput,'CVU for ZKP2P:','{{RECIPIENT_ID}}');}const amountInput=document.querySelector('#amount-field-input');if(amountInput&&!amountInput.hasAttribute('data-zkp2p')){amountInput.setAttribute('data-zkp2p','true');addIcon(amountInput,'Amount for ZKP2P:','{{AMOUNT}}');}};setTimeout(setupFields,1500);const observer=new MutationObserver(setupFields);observer.observe(document.body,{childList:true,subtree:true});})();"
119
+ }
120
+ }
121
+ }
@@ -0,0 +1,121 @@
1
+ {
2
+ "actionType": "transfer_mercado_pago",
3
+ "authLink": "https://www.mercadopago.com.ar/home",
4
+ "url": "https://www.mercadopago.com.ar/activities/detail/{{PAYMENT_ID}}?from={{URL_PARAMS_FROM}}",
5
+ "method": "GET",
6
+ "body": "",
7
+ "metadata": {
8
+ "platform": "mercadopago",
9
+ "urlRegex": "https://www.mercadopago.com.ar/home",
10
+ "method": "GET",
11
+ "fallbackUrlRegex": "",
12
+ "fallbackMethod": "",
13
+ "preprocessRegex": "<script\\s+[^>]*id=[\"']__PRELOADED_STATE__[\"'][^>]*>([\\s\\S]*?)</script>",
14
+ "transactionsExtraction": {
15
+ "transactionJsonPathListSelector": "$.pageState.mpHome.result.sections.activities.content.activities_container.results",
16
+ "transactionJsonPathSelectors": {
17
+ "recipient": "$.title",
18
+ "amount": "$.amount.fraction",
19
+ "date": "$.creationDate",
20
+ "paymentId": "$.id",
21
+ "currency": "$.amount.currency_id"
22
+ }
23
+ },
24
+ "proofMetadataSelectors": [
25
+ {
26
+ "type": "jsonPath",
27
+ "value": "$.pageState.mpHome.result.sections.activities.content.activities_container.results[{{INDEX}}].title"
28
+ },
29
+ {
30
+ "type": "jsonPath",
31
+ "value": "$.pageState.mpHome.result.sections.activities.content.activities_container.results[{{INDEX}}].amount.fraction"
32
+ },
33
+ {
34
+ "type": "jsonPath",
35
+ "value": "$.pageState.mpHome.result.sections.activities.content.activities_container.results[{{INDEX}}].id"
36
+ }
37
+ ]
38
+ },
39
+ "paramNames": [
40
+ "PAYMENT_ID",
41
+ "URL_PARAMS_FROM"
42
+ ],
43
+ "paramSelectors": [
44
+ {
45
+ "type": "jsonPath",
46
+ "value": "$.pageState.mpHome.result.sections.activities.content.activities_container.results[{{INDEX}}].id"
47
+ },
48
+ {
49
+ "type": "regex",
50
+ "value": "(mp-home)"
51
+ }
52
+ ],
53
+ "skipRequestHeaders": [
54
+ "Cookie",
55
+ "Accept-Encoding"
56
+ ],
57
+ "secretHeaders": [
58
+ "Cookie"
59
+ ],
60
+ "responseMatches": [
61
+ {
62
+ "type": "regex",
63
+ "value": "v2__detail\">(.*?)CVU: (?<recipientId>[0-9]+)</li>",
64
+ "hash": true
65
+ },
66
+ {
67
+ "type": "regex",
68
+ "value": "<span class=\"andes-money-amount__fraction\" aria-hidden=\"true\">(?<amt>[0-9.]+)</span><span aria-hidden=\"true\">,</span><span class=\"andes-money-amount__cents\" aria-hidden=\"true\">(?<cents>[0-9]+)</span>"
69
+ },
70
+ {
71
+ "type": "regex",
72
+ "value": "Total\",\"amount\":{\"currency_id\":\"(?<curr>[^\"]+)\""
73
+ },
74
+ {
75
+ "type": "regex",
76
+ "value": ",\"date\":\"(?<date>[^\"]+)\",\"sections\""
77
+ },
78
+ {
79
+ "type": "regex",
80
+ "value": "\"operationId\":(?<paymentId>[^,]+),\"activityName\":\"(?<paymentType>[^\"]+)\",\"activityStatus\":\"(?<paymentStatus>[^\"]+)\","
81
+ }
82
+ ],
83
+ "responseRedactions": [
84
+ {
85
+ "jsonPath": "",
86
+ "xPath": "",
87
+ "regex": "v2__detail\">(.*?)CVU: (.*?)</li>"
88
+ },
89
+ {
90
+ "jsonPath": "",
91
+ "xPath": "",
92
+ "regex": "<span class=\"andes-money-amount__fraction\" aria-hidden=\"true\">(.*?)<\/span><span aria-hidden=\"true\">,<\/span><span class=\"andes-money-amount__cents\" aria-hidden=\"true\">(.*?)<\/span>"
93
+ },
94
+ {
95
+ "jsonPath": "",
96
+ "xPath": "",
97
+ "regex": "\"Total\",\"amount\":{\"currency_id\":\"(.*?)\""
98
+ },
99
+ {
100
+ "jsonPath": "",
101
+ "xPath": "",
102
+ "regex": ",\"date\":\"(.*)\",\"sections\""
103
+ },
104
+ {
105
+ "jsonPath": "",
106
+ "xPath": "",
107
+ "regex": "\"operationId\":(.*?),\"activityName\":\"(.*?)\",\"activityStatus\":\"(.*?),"
108
+ }
109
+ ],
110
+ "mobile": {
111
+ "includeAdditionalCookieDomains": [
112
+ "mercadolibre.com",
113
+ "www.mercadolibre.com"
114
+ ],
115
+ "internal": {
116
+ "actionLink": "https://www.mercadopago.com.ar/money-out/transfer/",
117
+ "actionCompletedUrlRegex": "https://www.mercadopago.com.ar/money-out/transfer/congrats\\?data=\\S+",
118
+ "injectedJavaScript": "(function(){const style=document.createElement('style');style.textContent='.zkp2p-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;background:#007AFF;border-radius:4px;cursor:pointer;z-index:9999;display:flex;align-items:center;justify-content:center;color:white;font-weight:bold;font-size:12px;}.zkp2p-dropdown{position:absolute;background:#FFF;border:1px solid #E0E0E0;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:99999;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;font-size:14px;color:#333;width:auto;min-width:250px;}.zkp2p-dropdown-item{padding:12px 16px;cursor:pointer;}.zkp2p-dropdown-item:hover{background:#F5F5F5;}.zkp2p-dropdown-item:active{background:#E8E8E8;}.zkp2p-dropdown-label{color:#666;font-size:12px;margin-bottom:4px;}.zkp2p-dropdown-value{font-weight:500;color:#333;font-size:16px;}.zkp2p-toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#333;color:white;padding:10px 20px;border-radius:6px;z-index:999999;font-family:system-ui;}';document.head.appendChild(style);const copyToClipboard=function(text){const textArea=document.createElement('textarea');textArea.value=text;textArea.style.position='fixed';textArea.style.top='-9999px';document.body.appendChild(textArea);textArea.select();textArea.setSelectionRange(0,99999);document.execCommand('copy');document.body.removeChild(textArea);const toast=document.createElement('div');toast.className='zkp2p-toast';toast.textContent='Copied!';document.body.appendChild(toast);setTimeout(()=>toast.remove(),2000);};const createDropdown=function(input,label,value){const rect=input.getBoundingClientRect();const dropdown=document.createElement('div');dropdown.className='zkp2p-dropdown';dropdown.id='zkp2p-dropdown-'+Date.now();dropdown.style.position='absolute';dropdown.style.top=(rect.bottom+window.scrollY+4)+'px';dropdown.style.left=rect.left+'px';dropdown.style.display='block';const item=document.createElement('div');item.className='zkp2p-dropdown-item';item.innerHTML='<div class=\"zkp2p-dropdown-label\">'+label+'</div><div class=\"zkp2p-dropdown-value\">'+value+'</div>';item.addEventListener('click',function(){copyToClipboard(value);dropdown.remove();});dropdown.appendChild(item);document.body.appendChild(dropdown);setTimeout(()=>{document.addEventListener('click',function hideDropdown(e){if(!dropdown.contains(e.target)&&e.target!==input&&!e.target.classList.contains('zkp2p-icon')){dropdown.remove();document.removeEventListener('click',hideDropdown);}});},100);};const addIcon=function(input,label,value){const container=input.closest('.andes-amount-field__input-container')||input.parentElement;container.style.position='relative';const icon=document.createElement('div');icon.className='zkp2p-icon';icon.textContent='Z';icon.addEventListener('click',function(e){e.stopPropagation();const existing=document.querySelector('.zkp2p-dropdown');if(existing)existing.remove();createDropdown(input,label,value);});container.appendChild(icon);createDropdown(input,label,value);};const setupFields=function(){const cvuInput=document.querySelector('input[name=\"identification_account\"]');if(cvuInput&&!cvuInput.hasAttribute('data-zkp2p')){cvuInput.setAttribute('data-zkp2p','true');addIcon(cvuInput,'CVU for ZKP2P:','{{RECIPIENT_ID}}');}const amountInput=document.querySelector('#amount-field-input');if(amountInput&&!amountInput.hasAttribute('data-zkp2p')){amountInput.setAttribute('data-zkp2p','true');addIcon(amountInput,'Amount for ZKP2P:','{{AMOUNT}}');}};setTimeout(setupFields,1500);const observer=new MutationObserver(setupFields);observer.observe(document.body,{childList:true,subtree:true});})();"
119
+ }
120
+ }
121
+ }
@@ -0,0 +1,110 @@
1
+ {
2
+ "actionType": "transfer_monzo",
3
+ "authLink": "https://web.monzo.com/",
4
+ "url": "https://api.monzo.com/transactions/{{TX_ID}}",
5
+ "method": "GET",
6
+ "body": "",
7
+ "metadata": {
8
+ "platform": "monzo",
9
+ "urlRegex": "https://internal-api.monzo.com/minimal-banking/transactions\\?account_id=\\S+&limit=50",
10
+ "method": "GET",
11
+ "fallbackUrlRegex": "",
12
+ "fallbackMethod": "",
13
+ "preprocessRegex": "",
14
+ "transactionsExtraction": {
15
+ "transactionJsonPathListSelector": "$.transactions",
16
+ "transactionJsonPathSelectors": {
17
+ "recipient": "$.counterparty.user_id",
18
+ "recipientName": "$.counterparty.name",
19
+ "amount": "$.amount",
20
+ "date": "$.settled",
21
+ "paymentId": "$.id",
22
+ "currency": "$.currency"
23
+ }
24
+ },
25
+ "proofMetadataSelectors": [
26
+ {
27
+ "type": "jsonPath",
28
+ "value": "$.transactions[{{INDEX}}].amount"
29
+ },
30
+ {
31
+ "type": "jsonPath",
32
+ "value": "$.transactions[{{INDEX}}].id"
33
+ },
34
+ {
35
+ "type": "jsonPath",
36
+ "value": "$.transactions[{{INDEX}}].counterparty.user_id"
37
+ },
38
+ {
39
+ "type": "jsonPath",
40
+ "value": "$.transactions[{{INDEX}}].settled"
41
+ }
42
+ ]
43
+ },
44
+ "paramNames": [
45
+ "TX_ID"
46
+ ],
47
+ "paramSelectors": [
48
+ {
49
+ "type": "jsonPath",
50
+ "value": "$.transactions[{{INDEX}}].id"
51
+ }
52
+ ],
53
+ "skipRequestHeaders": [],
54
+ "secretHeaders": [
55
+ "authorization"
56
+ ],
57
+ "responseMatches": [
58
+ {
59
+ "type": "regex",
60
+ "value": "\"amount\":(?<amount>[0-9\\-]+)"
61
+ },
62
+ {
63
+ "type": "regex",
64
+ "value": "\"settled\":\"(?<completedDate>[^\"]+)\""
65
+ },
66
+ {
67
+ "type": "regex",
68
+ "value": "\"user_id\":\"(?<userId>[^\"]+)\"",
69
+ "hash": true
70
+ },
71
+ {
72
+ "type": "regex",
73
+ "value": "\"scheme\":\"p2p_payment\""
74
+ },
75
+ {
76
+ "type": "regex",
77
+ "value": "\"currency\":\"(?<currency>[^\"]+)\""
78
+ },
79
+ {
80
+ "type": "regex",
81
+ "value": "\"hold_decision_status\":\"decision_status\\.released\""
82
+ }
83
+ ],
84
+ "responseRedactions": [
85
+ {
86
+ "jsonPath": "$.transaction.amount",
87
+ "xPath": ""
88
+ },
89
+ {
90
+ "jsonPath": "$.transaction.settled",
91
+ "xPath": ""
92
+ },
93
+ {
94
+ "jsonPath": "$.transaction.counterparty.user_id",
95
+ "xPath": ""
96
+ },
97
+ {
98
+ "jsonPath": "$.transaction.scheme",
99
+ "xPath": ""
100
+ },
101
+ {
102
+ "jsonPath": "$.transaction.currency",
103
+ "xPath": ""
104
+ },
105
+ {
106
+ "jsonPath": "$.transaction.metadata.hold_decision_status",
107
+ "xPath": ""
108
+ }
109
+ ]
110
+ }
package/package.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@zkp2p/providers",
3
+ "version": "1.0.0",
4
+ "description": "Provider JSON templates for ZKP2P (data-only)",
5
+ "scripts": {
6
+ "start": "node index.js"
7
+ },
8
+ "files": [
9
+ "**/*.json",
10
+ "README.md",
11
+ "LICENSE"
12
+ ],
13
+ "sideEffects": false,
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "devDependencies": {
18
+ "cors": "^2.8.5",
19
+ "express": "^4.18.2"
20
+ },
21
+ "packageManager": "yarn@3.6.3+sha512.d432ab8b22b89cb8b46649ebaf196159b0c1870904224771d75fdf8b55490aaa5de4d9f028deb0425f1513bff7843e97b9d117103795a23b12d2e7c1cedcf50f"
22
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "actionType": "transfer_paypal",
3
+ "authLink": "https://www.paypal.com/myaccount/activities/filter/?q=ZnJlZV90ZXh0X3NlYXJjaD0mc3RhcnRfZGF0ZT0yMDI1LTAxLTAxJmVuZF9kYXRlPTIwMzAtMTItMzEmdHlwZT0mc3RhdHVzPSZjdXJyZW5jeT0mZmlsdGVyX2lkPSZpc3N1YW5jZV9wcm9kdWN0X25hbWU9JmFzc2V0X25hbWVzPSZhc3NldF9zeW1ib2xzPQ",
4
+ "url": "https://www.paypal.com/myaccount/activities/details/inline/{{PAYMENT_ID}}",
5
+ "method": "GET",
6
+ "body": "",
7
+ "metadata": {
8
+ "platform": "paypal",
9
+ "urlRegex": "https://www.paypal.com/myaccount/activities/filter/\\?q=ZnJlZV90ZXh0X3NlYXJjaD0mc3RhcnRfZGF0ZT0yMDI1LTAxLTAxJmVuZF9kYXRlPTIwMzAtMTItMzEmdHlwZT0mc3RhdHVzPSZjdXJyZW5jeT0mZmlsdGVyX2lkPSZpc3N1YW5jZV9wcm9kdWN0X25hbWU9JmFzc2V0X25hbWVzPSZhc3NldF9zeW1ib2xzPQ",
10
+ "method": "GET",
11
+ "fallbackUrlRegex": "",
12
+ "fallbackMethod": "",
13
+ "preprocessRegex": "",
14
+ "transactionsExtraction": {
15
+ "transactionJsonPathListSelector": "$.data.data.activity.transactions",
16
+ "transactionJsonPathSelectors": {
17
+ "recipient": "$.ftsSearchInfo.email",
18
+ "amount": "$.ftsSearchInfo.displayAmount",
19
+ "date": "$.date.rawDate.date",
20
+ "paymentId": "$.id",
21
+ "currency": "$.amounts.currencyCode",
22
+ "type": "$.type"
23
+ }
24
+ },
25
+ "proofMetadataSelectors": [
26
+ {
27
+ "type": "jsonPath",
28
+ "value": "$.data.data.activity.transactions[{{INDEX}}].id"
29
+ }
30
+ ]
31
+ },
32
+ "paramNames": [
33
+ "PAYMENT_ID"
34
+ ],
35
+ "paramSelectors": [
36
+ {
37
+ "type": "jsonPath",
38
+ "value": "$.data.data.activity.transactions[{{INDEX}}].id"
39
+ }
40
+ ],
41
+ "skipRequestHeaders": [
42
+ "Cookie",
43
+ "Accept-Encoding"
44
+ ],
45
+ "secretHeaders": [
46
+ "Cookie"
47
+ ],
48
+ "responseMatches": [
49
+ {
50
+ "type": "regex",
51
+ "value": "\"email\":\"(?<recvId>[^\"]+)\"",
52
+ "hash": true
53
+ },
54
+ {
55
+ "type": "regex",
56
+ "value": "\"isPersonal\":true"
57
+ },
58
+ {
59
+ "type": "regex",
60
+ "value": "\"value\":\"(?<amt>[^\"]+)\""
61
+ },
62
+ {
63
+ "type": "regex",
64
+ "value": "\"currencyCode\":\"(?<curr>[^\"]+)\""
65
+ },
66
+ {
67
+ "type": "regex",
68
+ "value": "\"status\":\"(?<status>[^\"]+)\""
69
+ },
70
+ {
71
+ "type": "regex",
72
+ "value": "\"primitiveTimeCreated\":\"(?<date>[^\"]+)\""
73
+ }
74
+ ],
75
+ "responseRedactions": [
76
+ {
77
+ "jsonPath": "$.data.p2pRedirect.repeatTxn.email",
78
+ "xPath": ""
79
+ },
80
+ {
81
+ "jsonPath": "$.data.p2pRedirect.repeatTxn.isPersonal",
82
+ "xPath": ""
83
+ },
84
+ {
85
+ "jsonPath": "$.data.amount.rawAmounts.gross.value",
86
+ "xPath": ""
87
+ },
88
+ {
89
+ "jsonPath": "$.data.amount.rawAmounts.gross.currencyCode",
90
+ "xPath": ""
91
+ },
92
+ {
93
+ "jsonPath": "$.data.status",
94
+ "xPath": ""
95
+ },
96
+ {
97
+ "jsonPath": "$.data.primitiveTimeCreated",
98
+ "xPath": ""
99
+ }
100
+ ]
101
+ }
package/providers.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "providers": [
3
+ { "id": "bankofamerica", "files": ["bankofamerica/transfer_zelle.json"] },
4
+ { "id": "cashapp", "files": ["cashapp/transfer_cashapp.json"] },
5
+ { "id": "chase", "files": ["chase/transfer_zelle.json"] },
6
+ { "id": "citi", "files": ["citi/transfer_zelle.json"] },
7
+ { "id": "idfc", "files": ["idfc/transfer_idfc.json"] },
8
+ { "id": "luxon", "files": ["luxon/transfer_luxon.json"] },
9
+ { "id": "mercadopago", "files": [
10
+ "mercadopago/transfer_mercado_pago.json",
11
+ "mercadopago/transfer_mercadopago.json"
12
+ ] },
13
+ { "id": "monzo", "files": ["monzo/transfer_monzo.json"] },
14
+ { "id": "paypal", "files": ["paypal/transfer_paypal.json"] },
15
+ { "id": "revolut", "files": ["revolut/transfer_revolut.json"] },
16
+ { "id": "royalbankcanada", "files": ["royalbankcanada/transfer_interac.json"] },
17
+ { "id": "usbank", "files": ["usbank/transfer_zelle.json"] },
18
+ { "id": "venmo", "files": ["venmo/transfer_venmo.json"] },
19
+ { "id": "wise", "files": ["wise/transfer_wise.json"] }
20
+ ]
21
+ }
22
+
@@ -0,0 +1,126 @@
1
+ {
2
+ "actionType": "transfer_revolut",
3
+ "authLink": "https://app.revolut.com/home",
4
+ "url": "https://app.revolut.com/api/retail/user/current/transactions/last?count=20",
5
+ "method": "GET",
6
+ "body": "",
7
+ "metadata": {
8
+ "metadataUrl": "https://app.revolut.com/api/retail/user/current/transactions/last?count=20",
9
+ "metadataUrlMethod": "GET",
10
+ "metadataUrlBody": "",
11
+ "platform": "revolut",
12
+ "urlRegex": "https://app.revolut.com/api/retail/user/current/transactions/last\\?count=20$",
13
+ "method": "GET",
14
+ "fallbackUrlRegex": "https://app.revolut.com/api/retail/user/current/transactions/last\\?count=20&\\S+",
15
+ "fallbackMethod": "GET",
16
+ "preprocessRegex": "",
17
+ "transactionsExtraction": {
18
+ "transactionJsonPathListSelector": "$",
19
+ "transactionJsonPathSelectors": {
20
+ "recipient": "$.recipient.username",
21
+ "amount": "$.amount",
22
+ "date": "$.completedDate",
23
+ "paymentId": "$.id",
24
+ "currency": "$.currency"
25
+ }
26
+ },
27
+ "proofMetadataSelectors": [
28
+ {
29
+ "type": "jsonPath",
30
+ "value": "$.[{{INDEX}}].amount"
31
+ },
32
+ {
33
+ "type": "jsonPath",
34
+ "value": "$.[{{INDEX}}].currency"
35
+ },
36
+ {
37
+ "type": "jsonPath",
38
+ "value": "$.[{{INDEX}}].recipient.username"
39
+ },
40
+ {
41
+ "type": "jsonPath",
42
+ "value": "$.[{{INDEX}}].completedDate"
43
+ },
44
+ {
45
+ "type": "jsonPath",
46
+ "value": "$.[{{INDEX}}].state"
47
+ },
48
+ {
49
+ "type": "jsonPath",
50
+ "value": "$.[{{INDEX}}].id"
51
+ }
52
+ ]
53
+ },
54
+ "paramNames": [],
55
+ "paramSelectors": [],
56
+ "skipRequestHeaders": [
57
+ "x-device-id",
58
+ "Cookie"
59
+ ],
60
+ "secretHeaders": [
61
+ "x-device-id",
62
+ "Cookie"
63
+ ],
64
+ "responseMatches": [
65
+ {
66
+ "type": "regex",
67
+ "value": "\"amount\":(?<amount>[0-9\\-]+)"
68
+ },
69
+ {
70
+ "type": "regex",
71
+ "value": "\"completedDate\":(?<completedDate>[0-9]+)"
72
+ },
73
+ {
74
+ "type": "regex",
75
+ "value": "\"currency\":\"(?<currency>[^\"]+)\""
76
+ },
77
+ {
78
+ "type": "regex",
79
+ "value": "\"id\":\"(?<id>[^\"]+)\""
80
+ },
81
+ {
82
+ "type": "regex",
83
+ "value": "\"state\":\"(?<state>[^\"]+)\""
84
+ },
85
+ {
86
+ "type": "regex",
87
+ "value": "\"username\":\"(?<username>[^\"]+)\"",
88
+ "hash": true
89
+ }
90
+ ],
91
+ "responseRedactions": [
92
+ {
93
+ "jsonPath": "$.[{{INDEX}}].amount",
94
+ "xPath": ""
95
+ },
96
+ {
97
+ "jsonPath": "$.[{{INDEX}}].completedDate",
98
+ "xPath": ""
99
+ },
100
+ {
101
+ "jsonPath": "$.[{{INDEX}}].currency",
102
+ "xPath": ""
103
+ },
104
+ {
105
+ "jsonPath": "$.[{{INDEX}}].id",
106
+ "xPath": ""
107
+ },
108
+ {
109
+ "jsonPath": "$.[{{INDEX}}].recipient.username",
110
+ "xPath": ""
111
+ },
112
+ {
113
+ "jsonPath": "$.[{{INDEX}}].state",
114
+ "xPath": ""
115
+ }
116
+ ],
117
+ "mobile": {
118
+ "includeAdditionalCookieDomains": [],
119
+ "useExternalAction": true,
120
+ "external": {
121
+ "actionLink": "https://revolut.me/{{RECIPIENT_ID}}",
122
+ "appStoreLink": "https://apps.apple.com/us/app/revolut/id370619147",
123
+ "playStoreLink": "https://play.google.com/store/apps/details?id=com.revolut.revolut"
124
+ }
125
+ }
126
+ }