@tapsilat/n8n-nodes-tapsilat 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.
- package/LICENSE.md +21 -0
- package/README.md +145 -0
- package/dist/credentials/TapsilatApi.credentials.d.ts +9 -0
- package/dist/credentials/TapsilatApi.credentials.js +45 -0
- package/dist/nodes/Tapsilat/Tapsilat.node.d.ts +5 -0
- package/dist/nodes/Tapsilat/Tapsilat.node.js +1179 -0
- package/dist/nodes/Tapsilat/tapsilat.svg +12 -0
- package/package.json +72 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025-2026 Tapsilat
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# n8n-nodes-tapsilat
|
|
2
|
+
|
|
3
|
+
This is an n8n community node for [Tapsilat](https://tapsilat.com) - a payment processing platform for Turkey.
|
|
4
|
+
|
|
5
|
+
It provides seamless integration with Tapsilat's payment APIs, allowing you to automate payment workflows including orders, subscriptions, refunds, and more.
|
|
6
|
+
|
|
7
|
+
[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
|
|
12
|
+
|
|
13
|
+
### Using npm
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install n8n-nodes-tapsilat
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Using n8n Community Nodes
|
|
20
|
+
|
|
21
|
+
1. Go to **Settings > Community Nodes**
|
|
22
|
+
2. Select **Install**
|
|
23
|
+
3. Enter `n8n-nodes-tapsilat` and confirm
|
|
24
|
+
|
|
25
|
+
## Credentials
|
|
26
|
+
|
|
27
|
+
You'll need a Tapsilat API key to use this node:
|
|
28
|
+
|
|
29
|
+
1. Create an account at [Tapsilat Dashboard](https://panel.tapsilat.dev)
|
|
30
|
+
2. Navigate to API settings
|
|
31
|
+
3. Generate a new API key
|
|
32
|
+
4. Copy the Bearer Token
|
|
33
|
+
|
|
34
|
+
In n8n:
|
|
35
|
+
1. Go to **Credentials > Add Credentials**
|
|
36
|
+
2. Select **Tapsilat API**
|
|
37
|
+
3. Paste your Bearer Token
|
|
38
|
+
4. Optionally adjust the Base URL (default: `https://panel.tapsilat.dev/api/v1`)
|
|
39
|
+
|
|
40
|
+
## Operations
|
|
41
|
+
|
|
42
|
+
### Order
|
|
43
|
+
|
|
44
|
+
| Operation | Description |
|
|
45
|
+
|-----------|-------------|
|
|
46
|
+
| Create | Create a new payment order |
|
|
47
|
+
| Get | Get an order by reference ID |
|
|
48
|
+
| Get Status | Get the status of an order |
|
|
49
|
+
| Get Many | Get multiple orders with pagination |
|
|
50
|
+
| Cancel | Cancel an existing order |
|
|
51
|
+
| Refund | Process a partial refund |
|
|
52
|
+
| Refund All | Process a full refund |
|
|
53
|
+
| Terminate | Terminate an order |
|
|
54
|
+
| Get Payment Details | Get payment details for an order |
|
|
55
|
+
| Get Transactions | Get transaction history |
|
|
56
|
+
| Get Checkout URL | Get the checkout URL |
|
|
57
|
+
| Manual Callback | Trigger manual callback |
|
|
58
|
+
|
|
59
|
+
### Payment Term
|
|
60
|
+
|
|
61
|
+
| Operation | Description |
|
|
62
|
+
|-----------|-------------|
|
|
63
|
+
| Create | Create a payment term for an order |
|
|
64
|
+
| Get | Get a payment term |
|
|
65
|
+
| Update | Update a payment term |
|
|
66
|
+
| Delete | Delete a payment term |
|
|
67
|
+
| Refund | Refund a payment term |
|
|
68
|
+
| Terminate | Terminate a payment term |
|
|
69
|
+
|
|
70
|
+
### Subscription
|
|
71
|
+
|
|
72
|
+
| Operation | Description |
|
|
73
|
+
|-----------|-------------|
|
|
74
|
+
| Create | Create a new subscription |
|
|
75
|
+
| Get | Get a subscription by reference ID |
|
|
76
|
+
| Get Many | Get multiple subscriptions |
|
|
77
|
+
| Cancel | Cancel a subscription |
|
|
78
|
+
| Redirect | Get redirect URL for subscription |
|
|
79
|
+
|
|
80
|
+
### Organization
|
|
81
|
+
|
|
82
|
+
| Operation | Description |
|
|
83
|
+
|-----------|-------------|
|
|
84
|
+
| Get Settings | Get organization settings |
|
|
85
|
+
|
|
86
|
+
### Health
|
|
87
|
+
|
|
88
|
+
| Operation | Description |
|
|
89
|
+
|-----------|-------------|
|
|
90
|
+
| Check | Check API health status |
|
|
91
|
+
|
|
92
|
+
## Usage Examples
|
|
93
|
+
|
|
94
|
+
### Create an Order
|
|
95
|
+
|
|
96
|
+
1. Add the **Tapsilat** node to your workflow
|
|
97
|
+
2. Select **Order** as Resource
|
|
98
|
+
3. Select **Create** as Operation
|
|
99
|
+
4. Fill in the required fields:
|
|
100
|
+
- Amount: `100.00`
|
|
101
|
+
- Currency: `TRY`
|
|
102
|
+
- Locale: `tr`
|
|
103
|
+
- Buyer Name: `John`
|
|
104
|
+
- Buyer Surname: `Doe`
|
|
105
|
+
- Buyer Email: `john@example.com`
|
|
106
|
+
- Buyer Phone: `5551234567`
|
|
107
|
+
5. Execute the node
|
|
108
|
+
|
|
109
|
+
### Process a Refund
|
|
110
|
+
|
|
111
|
+
1. Add the **Tapsilat** node to your workflow
|
|
112
|
+
2. Select **Order** as Resource
|
|
113
|
+
3. Select **Refund** as Operation
|
|
114
|
+
4. Enter the Reference ID of the order
|
|
115
|
+
5. Enter the refund amount
|
|
116
|
+
6. Optionally add a reason
|
|
117
|
+
|
|
118
|
+
## Development
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Clone the repository
|
|
122
|
+
git clone https://github.com/tapsilat/tapsilat-n8n-node.git
|
|
123
|
+
|
|
124
|
+
# Install dependencies
|
|
125
|
+
pnpm install
|
|
126
|
+
|
|
127
|
+
# Build
|
|
128
|
+
pnpm run build
|
|
129
|
+
|
|
130
|
+
# Run tests
|
|
131
|
+
pnpm test
|
|
132
|
+
|
|
133
|
+
# Link for local testing
|
|
134
|
+
pnpm link
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Resources
|
|
138
|
+
|
|
139
|
+
* [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
|
|
140
|
+
* [Tapsilat Documentation](https://docs.tapsilat.dev)
|
|
141
|
+
* [Tapsilat SDK](https://github.com/tapsilat/tapsilat-js)
|
|
142
|
+
|
|
143
|
+
## License
|
|
144
|
+
|
|
145
|
+
[MIT](LICENSE.md)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class TapsilatApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
properties: INodeProperties[];
|
|
7
|
+
authenticate: IAuthenticateGeneric;
|
|
8
|
+
test: ICredentialTestRequest;
|
|
9
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TapsilatApi = void 0;
|
|
4
|
+
class TapsilatApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'tapsilatApi';
|
|
7
|
+
this.displayName = 'Tapsilat API';
|
|
8
|
+
this.documentationUrl = 'https://github.com/tapsilat/tapsilat-js';
|
|
9
|
+
this.properties = [
|
|
10
|
+
{
|
|
11
|
+
displayName: 'Bearer Token',
|
|
12
|
+
name: 'bearerToken',
|
|
13
|
+
type: 'string',
|
|
14
|
+
typeOptions: { password: true },
|
|
15
|
+
default: '',
|
|
16
|
+
required: true,
|
|
17
|
+
description: 'The API Bearer Token for Tapsilat. Get it from your Tapsilat Dashboard → Settings → API Keys.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
displayName: 'Base URL',
|
|
21
|
+
name: 'baseUrl',
|
|
22
|
+
type: 'string',
|
|
23
|
+
default: 'https://panel.tapsilat.dev/api/v1',
|
|
24
|
+
required: true,
|
|
25
|
+
description: 'The base URL for the Tapsilat API',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
this.authenticate = {
|
|
29
|
+
type: 'generic',
|
|
30
|
+
properties: {
|
|
31
|
+
headers: {
|
|
32
|
+
Authorization: '={{"Bearer " + $credentials.bearerToken}}',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
this.test = {
|
|
37
|
+
request: {
|
|
38
|
+
baseURL: '={{$credentials.baseUrl}}',
|
|
39
|
+
url: '/health',
|
|
40
|
+
method: 'GET',
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.TapsilatApi = TapsilatApi;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class Tapsilat implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|