curl --request POST \
--url https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id} \
--header 'Content-Type: application/json' \
--header 'X-Platform-ID: <x-platform-id>' \
--header 'X-Signature: <x-signature>' \
--data '
{
"bank_nick_name": "Personal Checking"
}
'import requests
url = "https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}"
payload = { "bank_nick_name": "Personal Checking" }
headers = {
"X-Platform-ID": "<x-platform-id>",
"X-Signature": "<x-signature>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Platform-ID': '<x-platform-id>',
'X-Signature': '<x-signature>',
'Content-Type': 'application/json'
},
body: JSON.stringify({bank_nick_name: 'Personal Checking'})
};
fetch('https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'bank_nick_name' => 'Personal Checking'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Platform-ID: <x-platform-id>",
"X-Signature: <x-signature>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}"
payload := strings.NewReader("{\n \"bank_nick_name\": \"Personal Checking\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Platform-ID", "<x-platform-id>")
req.Header.Add("X-Signature", "<x-signature>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}")
.header("X-Platform-ID", "<x-platform-id>")
.header("X-Signature", "<x-signature>")
.header("Content-Type", "application/json")
.body("{\n \"bank_nick_name\": \"Personal Checking\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Platform-ID"] = '<x-platform-id>'
request["X-Signature"] = '<x-signature>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bank_nick_name\": \"Personal Checking\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Operation completed.",
"data": {
"account_id": "f47ac10b-****-****-****-0e02b2c3d479",
"bank_nick_name": "Personal Checking",
"account_type": "PAYWINT_SAVINGS",
"checkbook_user_id": "4f32b9e1-6f4a-4d5a-a495-2f7fdf4d4dd1",
"created_at": "2025-08-07T14:32:00Z"
},
"queryGeneratedTime": 1718006400
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Open Paywint Bank Account
Creates a new Paywint bank account for an eligible user.
This endpoint now supports two Paywint bank account types:
Account Types
- paywint_savings - Requires only KYC approval
- paywint_business - Requires both KYC and KYB approval
A nickname must be provided for the new account, and the system validates that:
- The bank nickname does not already exist for the user
- The user has not exceeded their allowed Paywint bank account limit
Eligibility Criteria
-
For paywint_savings:
- User’s KYC must be approved
-
For paywint_business:
- User’s KYC must be approved
- User’s KYB must be approved
curl --request POST \
--url https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id} \
--header 'Content-Type: application/json' \
--header 'X-Platform-ID: <x-platform-id>' \
--header 'X-Signature: <x-signature>' \
--data '
{
"bank_nick_name": "Personal Checking"
}
'import requests
url = "https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}"
payload = { "bank_nick_name": "Personal Checking" }
headers = {
"X-Platform-ID": "<x-platform-id>",
"X-Signature": "<x-signature>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Platform-ID': '<x-platform-id>',
'X-Signature': '<x-signature>',
'Content-Type': 'application/json'
},
body: JSON.stringify({bank_nick_name: 'Personal Checking'})
};
fetch('https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'bank_nick_name' => 'Personal Checking'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Platform-ID: <x-platform-id>",
"X-Signature: <x-signature>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}"
payload := strings.NewReader("{\n \"bank_nick_name\": \"Personal Checking\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Platform-ID", "<x-platform-id>")
req.Header.Add("X-Signature", "<x-signature>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}")
.header("X-Platform-ID", "<x-platform-id>")
.header("X-Signature", "<x-signature>")
.header("Content-Type", "application/json")
.body("{\n \"bank_nick_name\": \"Personal Checking\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.paywint.com/api/platform/accounts/open-pw-bank-account/{user_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Platform-ID"] = '<x-platform-id>'
request["X-Signature"] = '<x-signature>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bank_nick_name\": \"Personal Checking\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Operation completed.",
"data": {
"account_id": "f47ac10b-****-****-****-0e02b2c3d479",
"bank_nick_name": "Personal Checking",
"account_type": "PAYWINT_SAVINGS",
"checkbook_user_id": "4f32b9e1-6f4a-4d5a-a495-2f7fdf4d4dd1",
"created_at": "2025-08-07T14:32:00Z"
},
"queryGeneratedTime": 1718006400
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Headers
Unique platform identifier (UUID). You receive this during onboarding. Must be sent with every API request.
HMAC-SHA256 request signature for authentication. Use your platform secret key to compute it as: METHOD + PATH + QUERY + BODY_HASH.
Path Parameters
Unique identifier (UUID) of the user
Body
Unique nickname to easily identify the bank account.
"Personal Checking"
Response
Successful Response
Indicates whether the request was processed successfully.
true
A short, human-readable message describing the result of the request.
"Operation completed."
The main response payload, if applicable
Show child attributes
Show child attributes
The Unix timestamp (in seconds) indicating when the response was generated.
1718006400

