curl --request DELETE \
--url https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id} \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id}"
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>"
}
response = requests.delete(url, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {'API-Key': '<api-key>', 'API-Sign': '<api-key>', 'API-Nonce': '<api-key>'}
};
fetch('https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_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.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id}")
.header("API-Key", "<api-key>")
.header("API-Sign", "<api-key>")
.header("API-Nonce", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["API-Key"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"bank_link_id": "bal_5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b",
"method_id": "3f9a1c2e-8b7d-4e6f-9a1b-2c3d4e5f6a7b",
"status": "unlinked",
"institution": {
"name": "Pacific Trust Bank"
},
"account_links": [
{
"account_link_id": "al_7c2b8d19-4e35-4a71-b0c6-1d8f5e9a2b34",
"account_last4": "4242",
"status": "removed",
"eligibility_status": "ineligible"
}
],
"accounts_eligibility_status": "ineligible"
}
}{
"error": {
"type": "validation_error",
"status": 400,
"instance": "req_123",
"code": "bad_request"
}
}{
"error": {
"type": "authentication_error",
"status": 401,
"instance": "req_123",
"code": "unauthenticated"
}
}{
"error": {
"type": "authorization_error",
"status": 403,
"instance": "req_123",
"code": "forbidden"
}
}{
"error": {
"type": "not_found_error",
"status": 404,
"instance": "req_123",
"code": "bank_link_not_found"
}
}{
"error": {
"type": "conflict_error",
"status": 409,
"instance": "req_123",
"code": "bank_link_provider_rejected"
}
}{
"error": {
"type": "rate_limit_error",
"status": 429,
"instance": "req_123",
"code": "resource_exhausted"
}
}{
"error": {
"type": "internal_error",
"status": 500,
"instance": "req_123",
"code": "internal"
}
}{
"error": {
"type": "api_error",
"status": 501,
"instance": "req_123",
"code": "unimplemented"
}
}{
"error": {
"type": "service_error",
"status": 503,
"instance": "req_123",
"code": "unavailable"
}
}{
"error": {
"type": "service_error",
"status": 504,
"instance": "req_123",
"code": "deadline_exceeded"
}
}Unlink bank link
Severs the whole Bank Link: the link becomes unlinked and every Account Link is soft-removed. Unlinked links disappear from get/list and are rejected for new money movement; Account Link ids remain referenceable by history. Repeating the call returns the same final snapshot. Unlinking a link that never finished activating cancels its pending session and returns that same unlinked snapshot. A link busy with an in-flight provider operation (activation, reconnect, or an earlier unlink attempt) returns Unavailable; retry shortly. Unlinking also severs the provider-side connection; if the provider refuses (for example, transactions are still settling) the link is not unlinked — it keeps its current status — and the call returns bank_link_provider_rejected. If the provider outcome is unknown (for example, the provider was unreachable) the call also returns Unavailable and the link stays busy until the pending attempt expires; retry after that to finish the unlink.
curl --request DELETE \
--url https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id} \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id}"
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>"
}
response = requests.delete(url, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {'API-Key': '<api-key>', 'API-Sign': '<api-key>', 'API-Nonce': '<api-key>'}
};
fetch('https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_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.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id}")
.header("API-Key", "<api-key>")
.header("API-Sign", "<api-key>")
.header("API-Nonce", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/accounts/{account_id}/funds/bank-links/{bank_link_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["API-Key"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"bank_link_id": "bal_5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b",
"method_id": "3f9a1c2e-8b7d-4e6f-9a1b-2c3d4e5f6a7b",
"status": "unlinked",
"institution": {
"name": "Pacific Trust Bank"
},
"account_links": [
{
"account_link_id": "al_7c2b8d19-4e35-4a71-b0c6-1d8f5e9a2b34",
"account_last4": "4242",
"status": "removed",
"eligibility_status": "ineligible"
}
],
"accounts_eligibility_status": "ineligible"
}
}{
"error": {
"type": "validation_error",
"status": 400,
"instance": "req_123",
"code": "bad_request"
}
}{
"error": {
"type": "authentication_error",
"status": 401,
"instance": "req_123",
"code": "unauthenticated"
}
}{
"error": {
"type": "authorization_error",
"status": 403,
"instance": "req_123",
"code": "forbidden"
}
}{
"error": {
"type": "not_found_error",
"status": 404,
"instance": "req_123",
"code": "bank_link_not_found"
}
}{
"error": {
"type": "conflict_error",
"status": 409,
"instance": "req_123",
"code": "bank_link_provider_rejected"
}
}{
"error": {
"type": "rate_limit_error",
"status": 429,
"instance": "req_123",
"code": "resource_exhausted"
}
}{
"error": {
"type": "internal_error",
"status": 500,
"instance": "req_123",
"code": "internal"
}
}{
"error": {
"type": "api_error",
"status": 501,
"instance": "req_123",
"code": "unimplemented"
}
}{
"error": {
"type": "service_error",
"status": 503,
"instance": "req_123",
"code": "unavailable"
}
}{
"error": {
"type": "service_error",
"status": 504,
"instance": "req_123",
"code": "deadline_exceeded"
}
}Authorizations
Your public API key. Identifies the partner making the request.
HMAC signature over the request, computed with your private key.
Monotonically increasing nonce included in the request signature.
Path Parameters
Globally unique public identifier for an account.
14 - 42Public bank-link id, an opaque handle.
4 - 128Response
Successful response
Final snapshot: unlinked, with every Account Link removed.
Show child attributes
Show child attributes