diff --git a/dist/api/customers/deactivate_authorization/requests.js b/dist/api/customers/deactivate_authorization/requests.js deleted file mode 100644 index bbbc4b9..0000000 --- a/dist/api/customers/deactivate_authorization/requests.js +++ /dev/null @@ -1,74 +0,0 @@ -const sh = `#!/bin/sh -url="https://api.paystack.co/customer/deactivate_authorization" -authorization="Authorization: Bearer YOUR_SECRET_KEY" -content_type="Content-Type: application/json" -data='{ - "authorization_code": "AUTH_72btv547" -}' - -curl "$url" -H "$authorization" -H "$content_type" -d "$data" -X POST` - -const js = `const https = require('https') - -const params = JSON.stringify({ - "authorization_code": "AUTH_72btv547" -}) - -const options = { - hostname: 'api.paystack.co', - port: 443, - path: '/customer/deactivate_authorization', - method: 'POST', - headers: { - Authorization: 'Bearer SECRET_KEY', - 'Content-Type': 'application/json' - } -} - -const req = https.request(options, res => { - let data = '' - - res.on('data', (chunk) => { - data += chunk - }); - - res.on('end', () => { - console.log(JSON.parse(data)) - }) -}).on('error', error => { - console.error(error) -}) - -req.write(params) -req.end()` - -const php = ` "AUTH_72btv547" - ]; - - $fields_string = http_build_query($fields); - - //open connection - $ch = curl_init(); - - //set the url, number of POST vars, POST data - curl_setopt($ch,CURLOPT_URL, $url); - curl_setopt($ch,CURLOPT_POST, true); - curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); - curl_setopt($ch, CURLOPT_HTTPHEADER, array( - "Authorization: Bearer SECRET_KEY", - "Cache-Control: no-cache", - )); - - //So that curl_exec returns the contents of the cURL; rather than echoing it - curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); - - //execute post - $result = curl_exec($ch); - echo $result; -?>` - -export {sh, js, php} \ No newline at end of file diff --git a/dist/api/customers/deactivate_authorization/response.json b/dist/api/customers/deactivate_authorization/response.json deleted file mode 100644 index 3c3dace..0000000 --- a/dist/api/customers/deactivate_authorization/response.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "200": { - "description": "200 Ok", - "data": { - "status": true, - "message": "Authorization has been deactivated" - } - }, - "404": { - "description": "404 Not Found", - "data": { - "status": false, - "message": "Authorization code not found." - } - } -} diff --git a/dist/api/virtual-terminal/add-split-code/requests.js b/dist/api/virtual-terminal/add-split-code/requests.js new file mode 100644 index 0000000..257af92 --- /dev/null +++ b/dist/api/virtual-terminal/add-split-code/requests.js @@ -0,0 +1,77 @@ +const sh = `#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/split_code" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ + "split_code": "SPL_98WF13Zu8w5" +}' + +curl "$url" -H "$authorization" -H "$content_type" -X PUT -d "$data"` + +const js = `const https = require('https') + +const params = JSON.stringify({ +"split_code": "SPL_98WF13Zu8w5" +}) + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/split_code', +method: 'PUT', +headers: { + Authorization: 'Bearer SECRET_KEY', + 'Content-Type': 'application/json', +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.write(params) +req.end()` + +const php = ` "SPL_98WF13Zu8w5" +); + +curl_setopt_array($curl, array( +CURLOPT_URL => "https://api.paystack.co/virtual_terminal/:code/split", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "PUT", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?>` + +export {sh, js, php} \ No newline at end of file diff --git a/dist/api/virtual-terminal/add-split-code/response.json b/dist/api/virtual-terminal/add-split-code/response.json new file mode 100644 index 0000000..a3c1e8e --- /dev/null +++ b/dist/api/virtual-terminal/add-split-code/response.json @@ -0,0 +1,59 @@ +{ + "200": { + "description": "200 Ok", + "data": { + "status": true, + "message": "Split code assigned", + "data": { + "id": 3025782, + "name": "Dynamic Split at 1729681745076", + "type": "flat", + "currency": "ZAR", + "integration": 530700, + "domain": "test", + "split_code": "SPL_HBaFCbbiyI", + "active": true, + "bearer_type": "subaccount", + "bearer_subaccount": 854043, + "createdAt": "2024-10-23T11:09:05.000Z", + "updatedAt": "2024-10-23T11:09:05.000Z", + "is_dynamic": true, + "subaccounts": [ + { + "subaccount": { + "id": 523210, + "subaccount_code": "ACCT_r56edei4okmllle", + "business_name": "ABC Ventures", + "description": "ABC Ventures", + "primary_contact_name": null, + "primary_contact_email": null, + "primary_contact_phone": null, + "metadata": null, + "settlement_bank": "African Bank Limited", + "currency": "ZAR", + "account_number": "00000000000" + }, + "share": 1600 + }, + { + "subaccount": { + "id": 854043, + "subaccount_code": "ACCT_n8m5vz2itt8y0f1", + "business_name": "Best Logistics", + "description": "Best Logistics", + "primary_contact_name": null, + "primary_contact_email": null, + "primary_contact_phone": null, + "metadata": null, + "settlement_bank": "Capitec Bank Limited", + "currency": "ZAR", + "account_number": "1051366984" + }, + "share": 98400 + } + ], + "total_subaccounts": 2 + } + } + } +} \ No newline at end of file diff --git a/dist/api/virtual-terminal/assign-destination/requests.js b/dist/api/virtual-terminal/assign-destination/requests.js new file mode 100644 index 0000000..c31eb76 --- /dev/null +++ b/dist/api/virtual-terminal/assign-destination/requests.js @@ -0,0 +1,87 @@ +const sh = `#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/destination/assign" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ + "destinations": [ + { + "target": "+2341234567890", + "name": "Another one" + } + ] +}' + +curl "$url" -H "$authorization" -H "$content_type" -X POST -d "$data"` + +const js = `const https = require('https') + +const params = JSON.stringify({ + "destinations": [ + { + "target": "+2341234567890", + "name": "Another one" + } + ] +}) + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/destination/assign', +method: 'POST', +headers: { + Authorization: 'Bearer SECRET_KEY', + 'Content-Type': 'application/json', +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.write(params) +req.end()` + +const php = ` "example_destination" +); + +curl_setopt_array($curl, array( +CURLOPT_URL => "https://api.paystack.co/virtual_terminal/:code/destination/assign", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "POST", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?>` + +export {sh, js, php} \ No newline at end of file diff --git a/dist/api/virtual-terminal/assign-destination/response.json b/dist/api/virtual-terminal/assign-destination/response.json new file mode 100644 index 0000000..c7437f1 --- /dev/null +++ b/dist/api/virtual-terminal/assign-destination/response.json @@ -0,0 +1,20 @@ +{ + "200": { + "description": "200 Ok", + "data": { + "status": true, + "message": "Destinations assigned successfully", + "data": [ + { + "integration": 530700, + "target": "2341234567890", + "name": "Another one", + "type": "whatsapp", + "id": 27934, + "createdAt": "2025-02-04T13:26:35.278Z", + "updatedAt": "2025-02-04T13:26:35.278Z" + } + ] + } + } +} diff --git a/dist/api/virtual-terminal/create/requests.js b/dist/api/virtual-terminal/create/requests.js new file mode 100644 index 0000000..a179b8f --- /dev/null +++ b/dist/api/virtual-terminal/create/requests.js @@ -0,0 +1,103 @@ +const sh = `#!/bin/sh +url="https://api.paystack.co/virtual_terminal" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ +"name": "Sample Terminal", +"destinations": [ + { + "target": "+27639022319", + "name": "Phone Destination" + } +] +}' + +curl "$url" \ +-H "$authorization" \ +-H "$content_type" \ +-X POST \ +-d "$data" + +` + +const js = `const https = require("https"); + +const params = JSON.stringify({ + name: "Sample Terminal", + destinations: [ + { + target: "+27639022319", + name: "Phone Destination", + }, + ], +}); + +const options = { + hostname: "api.paystack.co", + port: 443, + path: "/virtual_terminal", + method: "POST", + headers: { + Authorization: "Bearer SECRET_KEY", + "Content-Type": "application/json", + }, +}; + +const req = https.request(options, (res) => { + let data = ""; + + res.on("data", (chunk) => { + data += chunk; + }); + + res.on("end", () => { + console.log(JSON.parse(data)); + }); +}); + +req.on("error", (error) => { + console.error(error); +}); + +req.write(params); +req.end(); +` + +const php = ` "Sample Terminal", +"destinations" => array( + array( + "target" => "+27639022319", + "name" => "Phone Destination" + ) +) +); + +curl_setopt_array($curl, array( +CURLOPT_URL => "https://api.paystack.co/virtual_terminal", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "POST", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?> +` + +export {sh, js, php} \ No newline at end of file diff --git a/dist/api/virtual-terminal/create/response.json b/dist/api/virtual-terminal/create/response.json new file mode 100644 index 0000000..55cb663 --- /dev/null +++ b/dist/api/virtual-terminal/create/response.json @@ -0,0 +1,25 @@ +{ + "200": { + "status": true, + "message": "Virtual Terminal created", + "data": { + "id": 27691, + "name": "Sample Terminal", + "integration": 530700, + "domain": "test", + "code": "VT_LJK5892Z", + "paymentMethods": [], + "active": true, + "metadata": null, + "destinations": [ + { + "target": "+27639022319", + "type": "whatsapp", + "name": "Phone Destination" + } + ], + "currency": "ZAR" + } + } + +} \ No newline at end of file diff --git a/dist/api/virtual-terminal/deactivate/requests.js b/dist/api/virtual-terminal/deactivate/requests.js new file mode 100644 index 0000000..77a70e8 --- /dev/null +++ b/dist/api/virtual-terminal/deactivate/requests.js @@ -0,0 +1,63 @@ +const sh = `#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/deactivate" +authorization="Authorization: Bearer SECRET_KEY" + +curl "$url" \ +-H "$authorization" \ +-X PUT` + +const js = `const https = require('https') + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/deactivate', +method: 'PUT', +headers: { + Authorization: 'Bearer SECRET_KEY' +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.end()` + +const php = ` "https://api.paystack.co/virtual_terminal/:code/deactivate", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "PUT", +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?>` + +export {sh, js, php} \ No newline at end of file diff --git a/dist/api/virtual-terminal/deactivate/response.json b/dist/api/virtual-terminal/deactivate/response.json new file mode 100644 index 0000000..e1c90cc --- /dev/null +++ b/dist/api/virtual-terminal/deactivate/response.json @@ -0,0 +1,6 @@ +{ + "200": { + "description": "200 Ok", + "data": { "status": true, "message": "Terminal set to inactive" } + } +} diff --git a/dist/api/virtual-terminal/fetch/requests.js b/dist/api/virtual-terminal/fetch/requests.js new file mode 100644 index 0000000..2499c28 --- /dev/null +++ b/dist/api/virtual-terminal/fetch/requests.js @@ -0,0 +1,63 @@ +const sh = `#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code" +authorization="Authorization: Bearer SECRET_KEY" + +curl "$url" \ +-H "$authorization" \ +-X GET` + +const js = `const https = require('https') + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code', +method: 'GET', +headers: { + Authorization: 'Bearer SECRET_KEY' +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.end()` + +const php = ` "https://api.paystack.co/virtual_terminal/:code", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "GET", +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?>` + +export {sh, js, php} \ No newline at end of file diff --git a/dist/api/virtual-terminal/fetch/response.json b/dist/api/virtual-terminal/fetch/response.json new file mode 100644 index 0000000..7330cb9 --- /dev/null +++ b/dist/api/virtual-terminal/fetch/response.json @@ -0,0 +1,26 @@ +{ + "200": { + "status": true, + "message": "Virtual Terminal retrieved", + "data": { + "id": 27691, + "code": "VT_MCK5292Z", + "name": "Sample Terminal", + "integration": 730720, + "domain": "test", + "paymentMethods": [], + "active": true, + "created_at": "2025-02-04T12:56:56.000Z", + "connect_account_id": null, + "destinations": [ + { + "target": "+27639091249", + "type": "whatsapp", + "name": "Sales Point #1", + "created_at": "2025-02-04T12:56:56.000Z" + } + ], + "currency": "ZAR" + } + } +} diff --git a/dist/api/virtual-terminal/list-transactions/requests.js b/dist/api/virtual-terminal/list-transactions/requests.js new file mode 100644 index 0000000..16fcab9 --- /dev/null +++ b/dist/api/virtual-terminal/list-transactions/requests.js @@ -0,0 +1,67 @@ +const sh = `#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/transactions" +authorization="Authorization: Bearer SECRET_KEY" + +curl "$url" \ +-H "$authorization" \ +-X GET + +` + +const js = `const https = require('https') + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/transactions?perPage=50&page=1', +method: 'GET', +headers: { + Authorization: 'Bearer SECRET_KEY' +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.end() + +` + +const php = ` "https://api.paystack.co/virtual_terminal/:code/transactions", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "GET", +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?>` + +export {sh, js, php} \ No newline at end of file diff --git a/dist/api/virtual-terminal/list-transactions/response.json b/dist/api/virtual-terminal/list-transactions/response.json new file mode 100644 index 0000000..64a976e --- /dev/null +++ b/dist/api/virtual-terminal/list-transactions/response.json @@ -0,0 +1,9 @@ +{ + "200": { + "status": false, + "message": "Access not permitted using app key provided", + "meta": { "nextStep": "Try again later" }, + "type": "api_error", + "code": "unknown" + } +} diff --git a/dist/api/virtual-terminal/list/requests.js b/dist/api/virtual-terminal/list/requests.js new file mode 100644 index 0000000..c768d86 --- /dev/null +++ b/dist/api/virtual-terminal/list/requests.js @@ -0,0 +1,63 @@ +const sh = `#!/bin/sh +url="https://api.paystack.co/virtual_terminal" +authorization="Authorization: Bearer SECRET_KEY" + +curl "$url" \ +-H "$authorization" \ +-X GET` + +const js = `const https = require('https') + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal', +method: 'GET', +headers: { + Authorization: 'Bearer SECRET_KEY' +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.end()` + +const php = ` "https://api.paystack.co/virtual_terminal", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "GET", +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?>` + +export {sh, js, php} \ No newline at end of file diff --git a/dist/api/virtual-terminal/list/response.json b/dist/api/virtual-terminal/list/response.json new file mode 100644 index 0000000..9133d80 --- /dev/null +++ b/dist/api/virtual-terminal/list/response.json @@ -0,0 +1,31 @@ +{ + "200": { + "status": true, + "message": "Virtual Terminals retrieved", + "data": [ + { + "id": 26740, + "code": "VT_SOUAPKJZ", + "name": "Sales Point #3", + "integration": 530790, + "domain": "test", + "paymentMethods": [], + "active": true, + "created_at": "2025-01-16T14:09:11.000Z", + "currency": "ZAR" + }, + { + "id": 26592, + "code": "VT_NG3LPU2I", + "name": "Sales Point #4", + "integration": 530790, + "domain": "test", + "paymentMethods": [], + "active": true, + "created_at": "2025-01-14T16:35:58.000Z", + "currency": "ZAR" + } + ], + "meta": { "next": null, "previous": null, "perPage": 50 } + } +} \ No newline at end of file diff --git a/dist/api/virtual-terminal/remove-split-code/requests.js b/dist/api/virtual-terminal/remove-split-code/requests.js new file mode 100644 index 0000000..673080e --- /dev/null +++ b/dist/api/virtual-terminal/remove-split-code/requests.js @@ -0,0 +1,77 @@ +const sh = `#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/split_code" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ + "split_code": "SPL_98WF13Zu8w5" +}' + +curl "$url" -H "$authorization" -H "$content_type" -X DELETE -d "$data"` + +const js = `const https = require('https') + +const params = JSON.stringify({ +"split_code": "SPL_98WF13Zu8w5" +}) + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/split_code', +method: 'DELETE', +headers: { + Authorization: 'Bearer SECRET_KEY', + 'Content-Type': 'application/json', +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.write(params) +req.end()` + +const php = ` "SPL_98WF13Zu8w5" +); + +curl_setopt_array($curl, array( +CURLOPT_URL => "https://api.paystack.co/virtual_terminal/:code/split", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "DELETE", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?>` + +export {sh, js, php} \ No newline at end of file diff --git a/dist/api/virtual-terminal/remove-split-code/response.json b/dist/api/virtual-terminal/remove-split-code/response.json new file mode 100644 index 0000000..34bbf40 --- /dev/null +++ b/dist/api/virtual-terminal/remove-split-code/response.json @@ -0,0 +1,11 @@ +{ + "400": { + "status": false, + "message": "Payment method does not exist", + "meta": { + "nextStep": "Ensure that you're passing the correct reference for the requested resource that exists on this integration" + }, + "type": "validation_error", + "code": "not_found" + } +} \ No newline at end of file diff --git a/dist/api/virtual-terminal/transaction-summary/requests.js b/dist/api/virtual-terminal/transaction-summary/requests.js new file mode 100644 index 0000000..049e63b --- /dev/null +++ b/dist/api/virtual-terminal/transaction-summary/requests.js @@ -0,0 +1,67 @@ +const sh = `#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/transaction_summary" +authorization="Authorization: Bearer SECRET_KEY" + +curl "$url" \ +-H "$authorization" \ +-X GET + +` + +const js = `const https = require('https') + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/transaction_summary', +method: 'GET', +headers: { + Authorization: 'Bearer SECRET_KEY' +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.end() + +` + +const php = ` "https://api.paystack.co/virtual_terminal/:code/transactions/summary", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "GET", +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?>` + +export {sh, js, php} \ No newline at end of file diff --git a/dist/api/virtual-terminal/transaction-summary/response.json b/dist/api/virtual-terminal/transaction-summary/response.json new file mode 100644 index 0000000..64a976e --- /dev/null +++ b/dist/api/virtual-terminal/transaction-summary/response.json @@ -0,0 +1,9 @@ +{ + "200": { + "status": false, + "message": "Access not permitted using app key provided", + "meta": { "nextStep": "Try again later" }, + "type": "api_error", + "code": "unknown" + } +} diff --git a/dist/api/virtual-terminal/unassign-destination/requests.js b/dist/api/virtual-terminal/unassign-destination/requests.js new file mode 100644 index 0000000..68b4e0f --- /dev/null +++ b/dist/api/virtual-terminal/unassign-destination/requests.js @@ -0,0 +1,76 @@ +const sh = `#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/destination/unassign" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ + "targets": ["+2348123456789"] +}' +curl "$url" -H "$authorization" -H "$content_type" -X POST -d "$data"` + +const js = `const https = require('https') + +const params = JSON.stringify({ + "targets": ["+2348123456789"] +}) + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/destination/unassign', +method: 'POST', +headers: { + Authorization: 'Bearer SECRET_KEY', + 'Content-Type': 'application/json', +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.write(params) +req.end()` + +const php = ` "https://api.paystack.co/virtual_terminal/:code/destination/unassign", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "POST", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?>` + +export {sh, js, php} \ No newline at end of file diff --git a/dist/api/virtual-terminal/unassign-destination/response.json b/dist/api/virtual-terminal/unassign-destination/response.json new file mode 100644 index 0000000..787b1fe --- /dev/null +++ b/dist/api/virtual-terminal/unassign-destination/response.json @@ -0,0 +1,6 @@ +{ + "200": { + "description": "200 Ok", + "data": { "status": true, "message": "Destination deleted successfully" } + } +} diff --git a/dist/api/virtual-terminal/update/requests.js b/dist/api/virtual-terminal/update/requests.js new file mode 100644 index 0000000..678ca5d --- /dev/null +++ b/dist/api/virtual-terminal/update/requests.js @@ -0,0 +1,78 @@ +const sh = `#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ + "name": "New terminal name" +}' + +curl "$url" -H "$authorization" -H "$content_type" -X PUT -d "$data"` + +const js = `const https = require('https') + +const params = JSON.stringify({ + "name": "New terminal name" +}) + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code', +method: 'PUT', +headers: { + Authorization: 'Bearer SECRET_KEY', + 'Content-Type': 'application/json', + 'Content-Length': Buffer.byteLength(params) +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.write(params) +req.end()` + +const php = ` "https://api.paystack.co/virtual_terminal/:code", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "PUT", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?>` + +export {sh, js, php} \ No newline at end of file diff --git a/dist/api/virtual-terminal/update/response.json b/dist/api/virtual-terminal/update/response.json new file mode 100644 index 0000000..b4ba671 --- /dev/null +++ b/dist/api/virtual-terminal/update/response.json @@ -0,0 +1,19 @@ +{ + "400": { + "status": false, + "message": "\"name\" is required", + "meta": { "nextStep": "Provide all required paramsĀ " }, + "type": "validation_error", + "code": "missing_params" + }, + "404": { + "description": "404 Not Found", + "data": { + "status": false, + "message": "Virtual Terminal not assigned", + "meta": { "nextStep": "Try again later" }, + "type": "api_error", + "code": "unknown" + } + } +} diff --git a/dist/doc/terminal/virtual-terminal/create-virtual-terminal.js b/dist/doc/terminal/virtual-terminal/create-virtual-terminal.js new file mode 100644 index 0000000..d2814d2 --- /dev/null +++ b/dist/doc/terminal/virtual-terminal/create-virtual-terminal.js @@ -0,0 +1,117 @@ +const js = `const https = require('https'); + +const params = JSON.stringify({ + name: "Sales Point #1", + destinations: [ + { target: "+2347081234567" } + ] +}); + +const options = { + hostname: 'api.paystack.co', + port: 443, + path: '/virtual_terminal', + method: 'POST', + headers: { + Authorization: 'Bearer YOUR_SECRET_KEY', + 'Content-Type': 'application/json' + } +}; + +const req = https.request(options, res => { + let data = ''; + + res.on('data', chunk => { + data += chunk; + }); + + res.on('end', () => { + console.log(JSON.parse(data)); + }); +}).on('error', error => { + console.error(error); +}); + +req.write(params); +req.end(); +` + +const php = ` "Sales Point #1", + "destinations" => [ + ["target" => "+2347081234567"] + ] + ]; + + $fields_string = json_encode($fields); + + //open connection + $ch = curl_init(); + + //set the url, number of POST vars, POST data + curl_setopt($ch,CURLOPT_URL, $url); + curl_setopt($ch,CURLOPT_POST, true); + curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); + curl_setopt($ch, CURLOPT_HTTPHEADER, array( + "Authorization: Bearer YOUR_SECRET_KEY", + "Content-Type: application/json", + )); + + //So that curl_exec returns the contents of the cURL; rather than echoing it + curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); + + //execute post + $result = curl_exec($ch); + echo $result; +?> +` + +const sh = `curl "https://api.paystack.co/virtual_terminal" +-H "Authorization: Bearer YOUR_SECRET_KEY" +-H "Content-Type: application/json" +-d '{ + "name": "Sales Point #1", + "destinations": [ + {"target": "+2347081234567"} + ] +}' +-X POST` + +const json = `{ + "status": true, + "message": "Virtual Terminal created", + "data": { + "id": 26677, + "name": "Sales Point #1", + "integration": 353514, + "domain": "live", + "code": "VT_L837PT5K", + "paymentMethods": [ + { + "dedicated_nuban_id": 26196910, + "type": "dedicated_nuban", + "account_number": "9964842038", + "account_name": "Paystack Demo/Sales Point #1", + "bank": "Paystack-Titan" + } + ], + "active": true, + "metadata": { + "testing": "metadata" + }, + "destinations": [ + { + "target": "2348183742921", + "type": "whatsapp", + "name": null + } + ], + "currency": "NGN" + } + } + ` + +export {js, php, sh, json} \ No newline at end of file diff --git a/dist/doc/terminal/virtual-terminal/payment-methods.js b/dist/doc/terminal/virtual-terminal/payment-methods.js new file mode 100644 index 0000000..b1225b2 --- /dev/null +++ b/dist/doc/terminal/virtual-terminal/payment-methods.js @@ -0,0 +1,37 @@ +const gh_payment_method = `{ + "paymentMethods": [ + { + "type": "mobile_money_ussd", + "account_number": "*415*1548#" + } + ] +} +` + +const ke_payment_method = `{ + "paymentMethods": [ + { + "paystack_paybill_id": 25120781, + "type": "paystack_paybill", + "account_number": "93223", + "account_name": "PAYSTACK - Paystack Demo", + "bank": "M-Pesa Kenya" + } + ] +} +` + +const ng_payment_method = `{ + "paymentMethods": [ + { + "dedicated_nuban_id": 26196910, + "type": "dedicated_nuban", + "account_number": "9964842038", + "account_name": "Paystack Demo/Sales Point #1", + "bank": "Paystack-Titan" + } + ] + } + ` + +export {gh_payment_method, ke_payment_method, ng_payment_method} \ No newline at end of file diff --git a/src/api/virtual-terminal/add-split-code/config.yml b/src/api/virtual-terminal/add-split-code/config.yml new file mode 100644 index 0000000..add6911 --- /dev/null +++ b/src/api/virtual-terminal/add-split-code/config.yml @@ -0,0 +1,4 @@ +languages: + - sh + - js + - php \ No newline at end of file diff --git a/src/api/virtual-terminal/add-split-code/index.js b/src/api/virtual-terminal/add-split-code/index.js new file mode 100644 index 0000000..dba6654 --- /dev/null +++ b/src/api/virtual-terminal/add-split-code/index.js @@ -0,0 +1,35 @@ +const https = require('https') + +const params = JSON.stringify({ +"split_code": "SPL_98WF13Zu8w5" +}) + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/split_code', +method: 'PUT', +headers: { + Authorization: 'Bearer SECRET_KEY', + 'Content-Type': 'application/json', +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.write(params) +req.end() \ No newline at end of file diff --git a/src/api/virtual-terminal/add-split-code/index.php b/src/api/virtual-terminal/add-split-code/index.php new file mode 100644 index 0000000..97d46ac --- /dev/null +++ b/src/api/virtual-terminal/add-split-code/index.php @@ -0,0 +1,29 @@ + "SPL_98WF13Zu8w5" +); + +curl_setopt_array($curl, array( +CURLOPT_URL => "https://api.paystack.co/virtual_terminal/:code/split", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "PUT", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?> \ No newline at end of file diff --git a/src/api/virtual-terminal/add-split-code/index.sh b/src/api/virtual-terminal/add-split-code/index.sh new file mode 100644 index 0000000..1e44950 --- /dev/null +++ b/src/api/virtual-terminal/add-split-code/index.sh @@ -0,0 +1,9 @@ +#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/split_code" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ + "split_code": "SPL_98WF13Zu8w5" +}' + +curl "$url" -H "$authorization" -H "$content_type" -X PUT -d "$data" \ No newline at end of file diff --git a/src/api/virtual-terminal/add-split-code/response.json b/src/api/virtual-terminal/add-split-code/response.json new file mode 100644 index 0000000..a3c1e8e --- /dev/null +++ b/src/api/virtual-terminal/add-split-code/response.json @@ -0,0 +1,59 @@ +{ + "200": { + "description": "200 Ok", + "data": { + "status": true, + "message": "Split code assigned", + "data": { + "id": 3025782, + "name": "Dynamic Split at 1729681745076", + "type": "flat", + "currency": "ZAR", + "integration": 530700, + "domain": "test", + "split_code": "SPL_HBaFCbbiyI", + "active": true, + "bearer_type": "subaccount", + "bearer_subaccount": 854043, + "createdAt": "2024-10-23T11:09:05.000Z", + "updatedAt": "2024-10-23T11:09:05.000Z", + "is_dynamic": true, + "subaccounts": [ + { + "subaccount": { + "id": 523210, + "subaccount_code": "ACCT_r56edei4okmllle", + "business_name": "ABC Ventures", + "description": "ABC Ventures", + "primary_contact_name": null, + "primary_contact_email": null, + "primary_contact_phone": null, + "metadata": null, + "settlement_bank": "African Bank Limited", + "currency": "ZAR", + "account_number": "00000000000" + }, + "share": 1600 + }, + { + "subaccount": { + "id": 854043, + "subaccount_code": "ACCT_n8m5vz2itt8y0f1", + "business_name": "Best Logistics", + "description": "Best Logistics", + "primary_contact_name": null, + "primary_contact_email": null, + "primary_contact_phone": null, + "metadata": null, + "settlement_bank": "Capitec Bank Limited", + "currency": "ZAR", + "account_number": "1051366984" + }, + "share": 98400 + } + ], + "total_subaccounts": 2 + } + } + } +} \ No newline at end of file diff --git a/src/api/virtual-terminal/assign-destination/config.yml b/src/api/virtual-terminal/assign-destination/config.yml new file mode 100644 index 0000000..add6911 --- /dev/null +++ b/src/api/virtual-terminal/assign-destination/config.yml @@ -0,0 +1,4 @@ +languages: + - sh + - js + - php \ No newline at end of file diff --git a/src/api/virtual-terminal/assign-destination/index.js b/src/api/virtual-terminal/assign-destination/index.js new file mode 100644 index 0000000..a311528 --- /dev/null +++ b/src/api/virtual-terminal/assign-destination/index.js @@ -0,0 +1,40 @@ +const https = require('https') + +const params = JSON.stringify({ + "destinations": [ + { + "target": "+2341234567890", + "name": "Another one" + } + ] +}) + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/destination/assign', +method: 'POST', +headers: { + Authorization: 'Bearer SECRET_KEY', + 'Content-Type': 'application/json', +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.write(params) +req.end() \ No newline at end of file diff --git a/src/api/virtual-terminal/assign-destination/index.php b/src/api/virtual-terminal/assign-destination/index.php new file mode 100644 index 0000000..230f643 --- /dev/null +++ b/src/api/virtual-terminal/assign-destination/index.php @@ -0,0 +1,29 @@ + "example_destination" +); + +curl_setopt_array($curl, array( +CURLOPT_URL => "https://api.paystack.co/virtual_terminal/:code/destination/assign", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "POST", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?> \ No newline at end of file diff --git a/src/api/virtual-terminal/assign-destination/index.sh b/src/api/virtual-terminal/assign-destination/index.sh new file mode 100644 index 0000000..861ed5f --- /dev/null +++ b/src/api/virtual-terminal/assign-destination/index.sh @@ -0,0 +1,14 @@ +#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/destination/assign" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ + "destinations": [ + { + "target": "+2341234567890", + "name": "Another one" + } + ] +}' + +curl "$url" -H "$authorization" -H "$content_type" -X POST -d "$data" \ No newline at end of file diff --git a/src/api/virtual-terminal/assign-destination/response.json b/src/api/virtual-terminal/assign-destination/response.json new file mode 100644 index 0000000..c7437f1 --- /dev/null +++ b/src/api/virtual-terminal/assign-destination/response.json @@ -0,0 +1,20 @@ +{ + "200": { + "description": "200 Ok", + "data": { + "status": true, + "message": "Destinations assigned successfully", + "data": [ + { + "integration": 530700, + "target": "2341234567890", + "name": "Another one", + "type": "whatsapp", + "id": 27934, + "createdAt": "2025-02-04T13:26:35.278Z", + "updatedAt": "2025-02-04T13:26:35.278Z" + } + ] + } + } +} diff --git a/src/api/virtual-terminal/create/config.yml b/src/api/virtual-terminal/create/config.yml new file mode 100644 index 0000000..19be4db --- /dev/null +++ b/src/api/virtual-terminal/create/config.yml @@ -0,0 +1,4 @@ +languages: + - sh + - js + - php diff --git a/src/api/virtual-terminal/create/index.js b/src/api/virtual-terminal/create/index.js new file mode 100644 index 0000000..81ac3f5 --- /dev/null +++ b/src/api/virtual-terminal/create/index.js @@ -0,0 +1,41 @@ +const https = require("https"); + +const params = JSON.stringify({ + name: "Sample Terminal", + destinations: [ + { + target: "+27639022319", + name: "Phone Destination", + }, + ], +}); + +const options = { + hostname: "api.paystack.co", + port: 443, + path: "/virtual_terminal", + method: "POST", + headers: { + Authorization: "Bearer SECRET_KEY", + "Content-Type": "application/json", + }, +}; + +const req = https.request(options, (res) => { + let data = ""; + + res.on("data", (chunk) => { + data += chunk; + }); + + res.on("end", () => { + console.log(JSON.parse(data)); + }); +}); + +req.on("error", (error) => { + console.error(error); +}); + +req.write(params); +req.end(); diff --git a/src/api/virtual-terminal/create/index.php b/src/api/virtual-terminal/create/index.php new file mode 100644 index 0000000..f91e8db --- /dev/null +++ b/src/api/virtual-terminal/create/index.php @@ -0,0 +1,35 @@ + "Sample Terminal", +"destinations" => array( + array( + "target" => "+27639022319", + "name" => "Phone Destination" + ) +) +); + +curl_setopt_array($curl, array( +CURLOPT_URL => "https://api.paystack.co/virtual_terminal", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "POST", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?> diff --git a/src/api/virtual-terminal/create/index.sh b/src/api/virtual-terminal/create/index.sh new file mode 100644 index 0000000..9a870f8 --- /dev/null +++ b/src/api/virtual-terminal/create/index.sh @@ -0,0 +1,20 @@ +#!/bin/sh +url="https://api.paystack.co/virtual_terminal" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ +"name": "Sample Terminal", +"destinations": [ + { + "target": "+27639022319", + "name": "Phone Destination" + } +] +}' + +curl "$url" \ +-H "$authorization" \ +-H "$content_type" \ +-X POST \ +-d "$data" + diff --git a/src/api/virtual-terminal/create/response.json b/src/api/virtual-terminal/create/response.json new file mode 100644 index 0000000..55cb663 --- /dev/null +++ b/src/api/virtual-terminal/create/response.json @@ -0,0 +1,25 @@ +{ + "200": { + "status": true, + "message": "Virtual Terminal created", + "data": { + "id": 27691, + "name": "Sample Terminal", + "integration": 530700, + "domain": "test", + "code": "VT_LJK5892Z", + "paymentMethods": [], + "active": true, + "metadata": null, + "destinations": [ + { + "target": "+27639022319", + "type": "whatsapp", + "name": "Phone Destination" + } + ], + "currency": "ZAR" + } + } + +} \ No newline at end of file diff --git a/src/api/virtual-terminal/deactivate/config.yml b/src/api/virtual-terminal/deactivate/config.yml new file mode 100644 index 0000000..add6911 --- /dev/null +++ b/src/api/virtual-terminal/deactivate/config.yml @@ -0,0 +1,4 @@ +languages: + - sh + - js + - php \ No newline at end of file diff --git a/src/api/virtual-terminal/deactivate/index.js b/src/api/virtual-terminal/deactivate/index.js new file mode 100644 index 0000000..3faf261 --- /dev/null +++ b/src/api/virtual-terminal/deactivate/index.js @@ -0,0 +1,29 @@ +const https = require('https') + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/deactivate', +method: 'PUT', +headers: { + Authorization: 'Bearer SECRET_KEY' +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.end() \ No newline at end of file diff --git a/src/api/virtual-terminal/deactivate/index.php b/src/api/virtual-terminal/deactivate/index.php new file mode 100644 index 0000000..c661151 --- /dev/null +++ b/src/api/virtual-terminal/deactivate/index.php @@ -0,0 +1,23 @@ + "https://api.paystack.co/virtual_terminal/:code/deactivate", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "PUT", +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?> \ No newline at end of file diff --git a/src/api/virtual-terminal/deactivate/index.sh b/src/api/virtual-terminal/deactivate/index.sh new file mode 100644 index 0000000..ccc4d78 --- /dev/null +++ b/src/api/virtual-terminal/deactivate/index.sh @@ -0,0 +1,7 @@ +#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/deactivate" +authorization="Authorization: Bearer SECRET_KEY" + +curl "$url" \ +-H "$authorization" \ +-X PUT \ No newline at end of file diff --git a/src/api/virtual-terminal/deactivate/response.json b/src/api/virtual-terminal/deactivate/response.json new file mode 100644 index 0000000..e1c90cc --- /dev/null +++ b/src/api/virtual-terminal/deactivate/response.json @@ -0,0 +1,6 @@ +{ + "200": { + "description": "200 Ok", + "data": { "status": true, "message": "Terminal set to inactive" } + } +} diff --git a/src/api/virtual-terminal/fetch/config.yml b/src/api/virtual-terminal/fetch/config.yml new file mode 100644 index 0000000..19be4db --- /dev/null +++ b/src/api/virtual-terminal/fetch/config.yml @@ -0,0 +1,4 @@ +languages: + - sh + - js + - php diff --git a/src/api/virtual-terminal/fetch/index.js b/src/api/virtual-terminal/fetch/index.js new file mode 100644 index 0000000..1cad9e3 --- /dev/null +++ b/src/api/virtual-terminal/fetch/index.js @@ -0,0 +1,29 @@ +const https = require('https') + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code', +method: 'GET', +headers: { + Authorization: 'Bearer SECRET_KEY' +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.end() \ No newline at end of file diff --git a/src/api/virtual-terminal/fetch/index.php b/src/api/virtual-terminal/fetch/index.php new file mode 100644 index 0000000..1225dc3 --- /dev/null +++ b/src/api/virtual-terminal/fetch/index.php @@ -0,0 +1,23 @@ + "https://api.paystack.co/virtual_terminal/:code", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "GET", +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?> \ No newline at end of file diff --git a/src/api/virtual-terminal/fetch/index.sh b/src/api/virtual-terminal/fetch/index.sh new file mode 100644 index 0000000..501f750 --- /dev/null +++ b/src/api/virtual-terminal/fetch/index.sh @@ -0,0 +1,7 @@ +#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code" +authorization="Authorization: Bearer SECRET_KEY" + +curl "$url" \ +-H "$authorization" \ +-X GET \ No newline at end of file diff --git a/src/api/virtual-terminal/fetch/response.json b/src/api/virtual-terminal/fetch/response.json new file mode 100644 index 0000000..7330cb9 --- /dev/null +++ b/src/api/virtual-terminal/fetch/response.json @@ -0,0 +1,26 @@ +{ + "200": { + "status": true, + "message": "Virtual Terminal retrieved", + "data": { + "id": 27691, + "code": "VT_MCK5292Z", + "name": "Sample Terminal", + "integration": 730720, + "domain": "test", + "paymentMethods": [], + "active": true, + "created_at": "2025-02-04T12:56:56.000Z", + "connect_account_id": null, + "destinations": [ + { + "target": "+27639091249", + "type": "whatsapp", + "name": "Sales Point #1", + "created_at": "2025-02-04T12:56:56.000Z" + } + ], + "currency": "ZAR" + } + } +} diff --git a/src/api/virtual-terminal/list/config.yml b/src/api/virtual-terminal/list/config.yml new file mode 100644 index 0000000..add6911 --- /dev/null +++ b/src/api/virtual-terminal/list/config.yml @@ -0,0 +1,4 @@ +languages: + - sh + - js + - php \ No newline at end of file diff --git a/src/api/virtual-terminal/list/index.js b/src/api/virtual-terminal/list/index.js new file mode 100644 index 0000000..a595a8b --- /dev/null +++ b/src/api/virtual-terminal/list/index.js @@ -0,0 +1,29 @@ +const https = require('https') + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal', +method: 'GET', +headers: { + Authorization: 'Bearer SECRET_KEY' +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.end() \ No newline at end of file diff --git a/src/api/virtual-terminal/list/index.php b/src/api/virtual-terminal/list/index.php new file mode 100644 index 0000000..81259cd --- /dev/null +++ b/src/api/virtual-terminal/list/index.php @@ -0,0 +1,23 @@ + "https://api.paystack.co/virtual_terminal", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "GET", +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?> \ No newline at end of file diff --git a/src/api/virtual-terminal/list/index.sh b/src/api/virtual-terminal/list/index.sh new file mode 100644 index 0000000..a8fd551 --- /dev/null +++ b/src/api/virtual-terminal/list/index.sh @@ -0,0 +1,7 @@ +#!/bin/sh +url="https://api.paystack.co/virtual_terminal" +authorization="Authorization: Bearer SECRET_KEY" + +curl "$url" \ +-H "$authorization" \ +-X GET \ No newline at end of file diff --git a/src/api/virtual-terminal/list/response.json b/src/api/virtual-terminal/list/response.json new file mode 100644 index 0000000..9133d80 --- /dev/null +++ b/src/api/virtual-terminal/list/response.json @@ -0,0 +1,31 @@ +{ + "200": { + "status": true, + "message": "Virtual Terminals retrieved", + "data": [ + { + "id": 26740, + "code": "VT_SOUAPKJZ", + "name": "Sales Point #3", + "integration": 530790, + "domain": "test", + "paymentMethods": [], + "active": true, + "created_at": "2025-01-16T14:09:11.000Z", + "currency": "ZAR" + }, + { + "id": 26592, + "code": "VT_NG3LPU2I", + "name": "Sales Point #4", + "integration": 530790, + "domain": "test", + "paymentMethods": [], + "active": true, + "created_at": "2025-01-14T16:35:58.000Z", + "currency": "ZAR" + } + ], + "meta": { "next": null, "previous": null, "perPage": 50 } + } +} \ No newline at end of file diff --git a/src/api/virtual-terminal/remove-split-code/config.yml b/src/api/virtual-terminal/remove-split-code/config.yml new file mode 100644 index 0000000..add6911 --- /dev/null +++ b/src/api/virtual-terminal/remove-split-code/config.yml @@ -0,0 +1,4 @@ +languages: + - sh + - js + - php \ No newline at end of file diff --git a/src/api/virtual-terminal/remove-split-code/index.js b/src/api/virtual-terminal/remove-split-code/index.js new file mode 100644 index 0000000..aa660a4 --- /dev/null +++ b/src/api/virtual-terminal/remove-split-code/index.js @@ -0,0 +1,35 @@ +const https = require('https') + +const params = JSON.stringify({ +"split_code": "SPL_98WF13Zu8w5" +}) + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/split_code', +method: 'DELETE', +headers: { + Authorization: 'Bearer SECRET_KEY', + 'Content-Type': 'application/json', +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.write(params) +req.end() \ No newline at end of file diff --git a/src/api/virtual-terminal/remove-split-code/index.php b/src/api/virtual-terminal/remove-split-code/index.php new file mode 100644 index 0000000..ce1c7b2 --- /dev/null +++ b/src/api/virtual-terminal/remove-split-code/index.php @@ -0,0 +1,29 @@ + "SPL_98WF13Zu8w5" +); + +curl_setopt_array($curl, array( +CURLOPT_URL => "https://api.paystack.co/virtual_terminal/:code/split", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "DELETE", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?> \ No newline at end of file diff --git a/src/api/virtual-terminal/remove-split-code/index.sh b/src/api/virtual-terminal/remove-split-code/index.sh new file mode 100644 index 0000000..a1e097e --- /dev/null +++ b/src/api/virtual-terminal/remove-split-code/index.sh @@ -0,0 +1,9 @@ +#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/split_code" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ + "split_code": "SPL_98WF13Zu8w5" +}' + +curl "$url" -H "$authorization" -H "$content_type" -X DELETE -d "$data" \ No newline at end of file diff --git a/src/api/virtual-terminal/remove-split-code/response.json b/src/api/virtual-terminal/remove-split-code/response.json new file mode 100644 index 0000000..34bbf40 --- /dev/null +++ b/src/api/virtual-terminal/remove-split-code/response.json @@ -0,0 +1,11 @@ +{ + "400": { + "status": false, + "message": "Payment method does not exist", + "meta": { + "nextStep": "Ensure that you're passing the correct reference for the requested resource that exists on this integration" + }, + "type": "validation_error", + "code": "not_found" + } +} \ No newline at end of file diff --git a/src/api/virtual-terminal/unassign-destination/config.yml b/src/api/virtual-terminal/unassign-destination/config.yml new file mode 100644 index 0000000..add6911 --- /dev/null +++ b/src/api/virtual-terminal/unassign-destination/config.yml @@ -0,0 +1,4 @@ +languages: + - sh + - js + - php \ No newline at end of file diff --git a/src/api/virtual-terminal/unassign-destination/index.js b/src/api/virtual-terminal/unassign-destination/index.js new file mode 100644 index 0000000..0f38cd6 --- /dev/null +++ b/src/api/virtual-terminal/unassign-destination/index.js @@ -0,0 +1,35 @@ +const https = require('https') + +const params = JSON.stringify({ + "targets": ["+2348123456789"] +}) + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code/destination/unassign', +method: 'POST', +headers: { + Authorization: 'Bearer SECRET_KEY', + 'Content-Type': 'application/json', +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.write(params) +req.end() \ No newline at end of file diff --git a/src/api/virtual-terminal/unassign-destination/index.php b/src/api/virtual-terminal/unassign-destination/index.php new file mode 100644 index 0000000..66f2102 --- /dev/null +++ b/src/api/virtual-terminal/unassign-destination/index.php @@ -0,0 +1,29 @@ + "https://api.paystack.co/virtual_terminal/:code/destination/unassign", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "POST", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?> \ No newline at end of file diff --git a/src/api/virtual-terminal/unassign-destination/index.sh b/src/api/virtual-terminal/unassign-destination/index.sh new file mode 100644 index 0000000..50902fb --- /dev/null +++ b/src/api/virtual-terminal/unassign-destination/index.sh @@ -0,0 +1,8 @@ +#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code/destination/unassign" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ + "targets": ["+2348123456789"] +}' +curl "$url" -H "$authorization" -H "$content_type" -X POST -d "$data" \ No newline at end of file diff --git a/src/api/virtual-terminal/unassign-destination/response.json b/src/api/virtual-terminal/unassign-destination/response.json new file mode 100644 index 0000000..787b1fe --- /dev/null +++ b/src/api/virtual-terminal/unassign-destination/response.json @@ -0,0 +1,6 @@ +{ + "200": { + "description": "200 Ok", + "data": { "status": true, "message": "Destination deleted successfully" } + } +} diff --git a/src/api/virtual-terminal/update/config.yml b/src/api/virtual-terminal/update/config.yml new file mode 100644 index 0000000..add6911 --- /dev/null +++ b/src/api/virtual-terminal/update/config.yml @@ -0,0 +1,4 @@ +languages: + - sh + - js + - php \ No newline at end of file diff --git a/src/api/virtual-terminal/update/index.js b/src/api/virtual-terminal/update/index.js new file mode 100644 index 0000000..556ab60 --- /dev/null +++ b/src/api/virtual-terminal/update/index.js @@ -0,0 +1,36 @@ +const https = require('https') + +const params = JSON.stringify({ + "name": "New terminal name" +}) + +const options = { +hostname: 'api.paystack.co', +port: 443, +path: '/virtual_terminal/:code', +method: 'PUT', +headers: { + Authorization: 'Bearer SECRET_KEY', + 'Content-Type': 'application/json', + 'Content-Length': Buffer.byteLength(params) +} +} + +const req = https.request(options, res => { +let data = '' + +res.on('data', (chunk) => { + data += chunk +}) + +res.on('end', () => { + console.log(JSON.parse(data)) +}) +}) + +req.on('error', error => { +console.error(error) +}) + +req.write(params) +req.end() \ No newline at end of file diff --git a/src/api/virtual-terminal/update/index.php b/src/api/virtual-terminal/update/index.php new file mode 100644 index 0000000..cd17fd1 --- /dev/null +++ b/src/api/virtual-terminal/update/index.php @@ -0,0 +1,29 @@ + "https://api.paystack.co/virtual_terminal/:code", +CURLOPT_RETURNTRANSFER => true, +CURLOPT_CUSTOMREQUEST => "PUT", +CURLOPT_POSTFIELDS => json_encode($data), +CURLOPT_HTTPHEADER => array( + "Authorization: Bearer SECRET_KEY", + "Content-Type: application/json", + "Cache-Control: no-cache" +), +)); + +$response = curl_exec($curl); +$err = curl_error($curl); +curl_close($curl); + +if ($err) { +echo "cURL Error #:" . $err; +} else { +echo $response; +} +?> \ No newline at end of file diff --git a/src/api/virtual-terminal/update/index.sh b/src/api/virtual-terminal/update/index.sh new file mode 100644 index 0000000..7197f62 --- /dev/null +++ b/src/api/virtual-terminal/update/index.sh @@ -0,0 +1,9 @@ +#!/bin/sh +url="https://api.paystack.co/virtual_terminal/:code" +authorization="Authorization: Bearer SECRET_KEY" +content_type="Content-Type: application/json" +data='{ + "name": "New terminal name" +}' + +curl "$url" -H "$authorization" -H "$content_type" -X PUT -d "$data" \ No newline at end of file diff --git a/src/api/virtual-terminal/update/response.json b/src/api/virtual-terminal/update/response.json new file mode 100644 index 0000000..b4ba671 --- /dev/null +++ b/src/api/virtual-terminal/update/response.json @@ -0,0 +1,19 @@ +{ + "400": { + "status": false, + "message": "\"name\" is required", + "meta": { "nextStep": "Provide all required paramsĀ " }, + "type": "validation_error", + "code": "missing_params" + }, + "404": { + "description": "404 Not Found", + "data": { + "status": false, + "message": "Virtual Terminal not assigned", + "meta": { "nextStep": "Try again later" }, + "type": "api_error", + "code": "unknown" + } + } +} diff --git a/src/doc/terminal/virtual-terminal/create-virtual-terminal/config.yml b/src/doc/terminal/virtual-terminal/create-virtual-terminal/config.yml new file mode 100644 index 0000000..52e5803 --- /dev/null +++ b/src/doc/terminal/virtual-terminal/create-virtual-terminal/config.yml @@ -0,0 +1,5 @@ +languages: + - js + - php + - sh + - json diff --git a/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.js b/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.js new file mode 100644 index 0000000..e6553c5 --- /dev/null +++ b/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.js @@ -0,0 +1,36 @@ +const https = require('https'); + +const params = JSON.stringify({ + name: "Sales Point #1", + destinations: [ + { target: "+2347081234567" } + ] +}); + +const options = { + hostname: 'api.paystack.co', + port: 443, + path: '/virtual_terminal', + method: 'POST', + headers: { + Authorization: 'Bearer YOUR_SECRET_KEY', + 'Content-Type': 'application/json' + } +}; + +const req = https.request(options, res => { + let data = ''; + + res.on('data', chunk => { + data += chunk; + }); + + res.on('end', () => { + console.log(JSON.parse(data)); + }); +}).on('error', error => { + console.error(error); +}); + +req.write(params); +req.end(); diff --git a/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.json b/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.json new file mode 100644 index 0000000..fb11e97 --- /dev/null +++ b/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.json @@ -0,0 +1,33 @@ +{ + "status": true, + "message": "Virtual Terminal created", + "data": { + "id": 26677, + "name": "Sales Point #1", + "integration": 353514, + "domain": "live", + "code": "VT_L837PT5K", + "paymentMethods": [ + { + "dedicated_nuban_id": 26196910, + "type": "dedicated_nuban", + "account_number": "9964842038", + "account_name": "Paystack Demo/Sales Point #1", + "bank": "Paystack-Titan" + } + ], + "active": true, + "metadata": { + "testing": "metadata" + }, + "destinations": [ + { + "target": "2348183742921", + "type": "whatsapp", + "name": null + } + ], + "currency": "NGN" + } + } + \ No newline at end of file diff --git a/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.php b/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.php new file mode 100644 index 0000000..670de0c --- /dev/null +++ b/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.php @@ -0,0 +1,31 @@ + "Sales Point #1", + "destinations" => [ + ["target" => "+2347081234567"] + ] + ]; + + $fields_string = json_encode($fields); + + //open connection + $ch = curl_init(); + + //set the url, number of POST vars, POST data + curl_setopt($ch,CURLOPT_URL, $url); + curl_setopt($ch,CURLOPT_POST, true); + curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); + curl_setopt($ch, CURLOPT_HTTPHEADER, array( + "Authorization: Bearer YOUR_SECRET_KEY", + "Content-Type: application/json", + )); + + //So that curl_exec returns the contents of the cURL; rather than echoing it + curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); + + //execute post + $result = curl_exec($ch); + echo $result; +?> diff --git a/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.sh b/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.sh new file mode 100644 index 0000000..c7f79f4 --- /dev/null +++ b/src/doc/terminal/virtual-terminal/create-virtual-terminal/index.sh @@ -0,0 +1,10 @@ +curl "https://api.paystack.co/virtual_terminal" +-H "Authorization: Bearer YOUR_SECRET_KEY" +-H "Content-Type: application/json" +-d '{ + "name": "Sales Point #1", + "destinations": [ + {"target": "+2347081234567"} + ] +}' +-X POST \ No newline at end of file diff --git a/src/doc/terminal/virtual-terminal/payment-methods/config.yml b/src/doc/terminal/virtual-terminal/payment-methods/config.yml new file mode 100644 index 0000000..fb1f2c5 --- /dev/null +++ b/src/doc/terminal/virtual-terminal/payment-methods/config.yml @@ -0,0 +1,3 @@ +type: single-lang +languages: + - json diff --git a/src/doc/terminal/virtual-terminal/payment-methods/gh-payment-method.json b/src/doc/terminal/virtual-terminal/payment-methods/gh-payment-method.json new file mode 100644 index 0000000..5925d3b --- /dev/null +++ b/src/doc/terminal/virtual-terminal/payment-methods/gh-payment-method.json @@ -0,0 +1,8 @@ +{ + "paymentMethods": [ + { + "type": "mobile_money_ussd", + "account_number": "*415*1548#" + } + ] +} diff --git a/src/doc/terminal/virtual-terminal/payment-methods/ke-payment-method.json b/src/doc/terminal/virtual-terminal/payment-methods/ke-payment-method.json new file mode 100644 index 0000000..3d333a4 --- /dev/null +++ b/src/doc/terminal/virtual-terminal/payment-methods/ke-payment-method.json @@ -0,0 +1,11 @@ +{ + "paymentMethods": [ + { + "paystack_paybill_id": 25120781, + "type": "paystack_paybill", + "account_number": "93223", + "account_name": "PAYSTACK - Paystack Demo", + "bank": "M-Pesa Kenya" + } + ] +} diff --git a/src/doc/terminal/virtual-terminal/payment-methods/ng-payment-method.json b/src/doc/terminal/virtual-terminal/payment-methods/ng-payment-method.json new file mode 100644 index 0000000..5703d07 --- /dev/null +++ b/src/doc/terminal/virtual-terminal/payment-methods/ng-payment-method.json @@ -0,0 +1,12 @@ +{ + "paymentMethods": [ + { + "dedicated_nuban_id": 26196910, + "type": "dedicated_nuban", + "account_number": "9964842038", + "account_name": "Paystack Demo/Sales Point #1", + "bank": "Paystack-Titan" + } + ] + } + \ No newline at end of file