curl --request PUT \
--url https://rest.staging.nickel.com/paymentLink/{paymentLinkId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"requestedAmountCents": 12055,
"name": "INV-123",
"dueDate": "2023-12-25",
"feePassthroughPercent": 100,
"creditCardEnabled": true,
"achEnabled": true,
"amountEditable": false
}
'import requests
url = "https://rest.staging.nickel.com/paymentLink/{paymentLinkId}"
payload = {
"requestedAmountCents": 12055,
"name": "INV-123",
"dueDate": "2023-12-25",
"feePassthroughPercent": 100,
"creditCardEnabled": True,
"achEnabled": True,
"amountEditable": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requestedAmountCents: 12055,
name: 'INV-123',
dueDate: '2023-12-25',
feePassthroughPercent: 100,
creditCardEnabled: true,
achEnabled: true,
amountEditable: false
})
};
fetch('https://rest.staging.nickel.com/paymentLink/{paymentLinkId}', 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://rest.staging.nickel.com/paymentLink/{paymentLinkId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'requestedAmountCents' => 12055,
'name' => 'INV-123',
'dueDate' => '2023-12-25',
'feePassthroughPercent' => 100,
'creditCardEnabled' => true,
'achEnabled' => true,
'amountEditable' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://rest.staging.nickel.com/paymentLink/{paymentLinkId}"
payload := strings.NewReader("{\n \"requestedAmountCents\": 12055,\n \"name\": \"INV-123\",\n \"dueDate\": \"2023-12-25\",\n \"feePassthroughPercent\": 100,\n \"creditCardEnabled\": true,\n \"achEnabled\": true,\n \"amountEditable\": false\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://rest.staging.nickel.com/paymentLink/{paymentLinkId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"requestedAmountCents\": 12055,\n \"name\": \"INV-123\",\n \"dueDate\": \"2023-12-25\",\n \"feePassthroughPercent\": 100,\n \"creditCardEnabled\": true,\n \"achEnabled\": true,\n \"amountEditable\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.staging.nickel.com/paymentLink/{paymentLinkId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"requestedAmountCents\": 12055,\n \"name\": \"INV-123\",\n \"dueDate\": \"2023-12-25\",\n \"feePassthroughPercent\": 100,\n \"creditCardEnabled\": true,\n \"achEnabled\": true,\n \"amountEditable\": false\n}"
response = http.request(request)
puts response.read_body{
"id": "clkqzo2y1000cx9tfohoiodq1",
"requestedAmountCents": 12055,
"name": "INV-123",
"status": "ACTIVE",
"payments": [
{
"id": "<string>",
"status": "SUCCEEDED",
"fees": [
{
"type": "CREDIT_CARD_FEE",
"amountInCents": 290
}
],
"amountInCents": 10000,
"chargedAmountInCents": 10290,
"platformFeeInCents": 290,
"paymentLinkId": "<string>",
"paymentMethod": {
"id": "<string>",
"type": "ACH",
"achDetails": {
"bankName": "JP Morgan Chase",
"routingNumber": "<string>",
"accountNumberLastFour": "<string>"
},
"cardDetails": {
"brand": "visa",
"last4": "<string>",
"holderName": "<string>",
"expMonth": "2",
"expYear": "2030"
},
"billingDetails": {
"name": "<string>",
"companyName": "<string>",
"street": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>",
"email": "<string>"
}
},
"disbursement": {
"id": "<string>",
"status": "PENDING",
"amountInCents": 10000,
"bankName": "JP Morgan Chase",
"accountNumberLastFour": "<string>",
"paymentIds": [
"clkqzo2y1000cx9tfohoiodq1"
],
"createdAt": "2023-12-25",
"paidAt": "2023-12-25"
},
"refunds": [
{
"id": "<string>",
"amountCents": 515,
"refundDate": "2023-11-07T05:31:56Z",
"voided": true
}
],
"createdAt": 123,
"estimatedDisbursementDate": "<string>"
}
],
"externalPayments": [
{
"id": "cmr9zx1bq000gsf02h1d5w4t8",
"amountCents": 2500,
"paidAt": "2026-08-30",
"voided": false
}
],
"url": "https://nickel.nickelpayments.com/pay/Ahndhz",
"completedAmountCents": 123,
"dueDate": "2023-12-25",
"customerId": "<string>",
"feePassthroughPercent": 100,
"creditCardEnabled": true,
"achEnabled": true,
"amountEditable": false
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Update an existing payment link
curl --request PUT \
--url https://rest.staging.nickel.com/paymentLink/{paymentLinkId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"requestedAmountCents": 12055,
"name": "INV-123",
"dueDate": "2023-12-25",
"feePassthroughPercent": 100,
"creditCardEnabled": true,
"achEnabled": true,
"amountEditable": false
}
'import requests
url = "https://rest.staging.nickel.com/paymentLink/{paymentLinkId}"
payload = {
"requestedAmountCents": 12055,
"name": "INV-123",
"dueDate": "2023-12-25",
"feePassthroughPercent": 100,
"creditCardEnabled": True,
"achEnabled": True,
"amountEditable": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requestedAmountCents: 12055,
name: 'INV-123',
dueDate: '2023-12-25',
feePassthroughPercent: 100,
creditCardEnabled: true,
achEnabled: true,
amountEditable: false
})
};
fetch('https://rest.staging.nickel.com/paymentLink/{paymentLinkId}', 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://rest.staging.nickel.com/paymentLink/{paymentLinkId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'requestedAmountCents' => 12055,
'name' => 'INV-123',
'dueDate' => '2023-12-25',
'feePassthroughPercent' => 100,
'creditCardEnabled' => true,
'achEnabled' => true,
'amountEditable' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://rest.staging.nickel.com/paymentLink/{paymentLinkId}"
payload := strings.NewReader("{\n \"requestedAmountCents\": 12055,\n \"name\": \"INV-123\",\n \"dueDate\": \"2023-12-25\",\n \"feePassthroughPercent\": 100,\n \"creditCardEnabled\": true,\n \"achEnabled\": true,\n \"amountEditable\": false\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://rest.staging.nickel.com/paymentLink/{paymentLinkId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"requestedAmountCents\": 12055,\n \"name\": \"INV-123\",\n \"dueDate\": \"2023-12-25\",\n \"feePassthroughPercent\": 100,\n \"creditCardEnabled\": true,\n \"achEnabled\": true,\n \"amountEditable\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.staging.nickel.com/paymentLink/{paymentLinkId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"requestedAmountCents\": 12055,\n \"name\": \"INV-123\",\n \"dueDate\": \"2023-12-25\",\n \"feePassthroughPercent\": 100,\n \"creditCardEnabled\": true,\n \"achEnabled\": true,\n \"amountEditable\": false\n}"
response = http.request(request)
puts response.read_body{
"id": "clkqzo2y1000cx9tfohoiodq1",
"requestedAmountCents": 12055,
"name": "INV-123",
"status": "ACTIVE",
"payments": [
{
"id": "<string>",
"status": "SUCCEEDED",
"fees": [
{
"type": "CREDIT_CARD_FEE",
"amountInCents": 290
}
],
"amountInCents": 10000,
"chargedAmountInCents": 10290,
"platformFeeInCents": 290,
"paymentLinkId": "<string>",
"paymentMethod": {
"id": "<string>",
"type": "ACH",
"achDetails": {
"bankName": "JP Morgan Chase",
"routingNumber": "<string>",
"accountNumberLastFour": "<string>"
},
"cardDetails": {
"brand": "visa",
"last4": "<string>",
"holderName": "<string>",
"expMonth": "2",
"expYear": "2030"
},
"billingDetails": {
"name": "<string>",
"companyName": "<string>",
"street": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>",
"email": "<string>"
}
},
"disbursement": {
"id": "<string>",
"status": "PENDING",
"amountInCents": 10000,
"bankName": "JP Morgan Chase",
"accountNumberLastFour": "<string>",
"paymentIds": [
"clkqzo2y1000cx9tfohoiodq1"
],
"createdAt": "2023-12-25",
"paidAt": "2023-12-25"
},
"refunds": [
{
"id": "<string>",
"amountCents": 515,
"refundDate": "2023-11-07T05:31:56Z",
"voided": true
}
],
"createdAt": 123,
"estimatedDisbursementDate": "<string>"
}
],
"externalPayments": [
{
"id": "cmr9zx1bq000gsf02h1d5w4t8",
"amountCents": 2500,
"paidAt": "2026-08-30",
"voided": false
}
],
"url": "https://nickel.nickelpayments.com/pay/Ahndhz",
"completedAmountCents": 123,
"dueDate": "2023-12-25",
"customerId": "<string>",
"feePassthroughPercent": 100,
"creditCardEnabled": true,
"achEnabled": true,
"amountEditable": false
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID of paymentLink to return
Body
Update an existing payment link
12055
"INV-123"
Percent (0-100) of the card processing fee passed through to the payer for this payment link. Set to null to clear the per-link override so the link inherits the customer/organization setting. Omit to leave unchanged.
0 <= x <= 100100
Whether the payer can pay this link by credit card. Set to false to disable card payments for this link. Omit to leave unchanged.
true
Whether the payer can pay this link by ACH/bank transfer. Set to false to disable ACH payments for this link. Omit to leave unchanged.
true
Whether the payer can edit the payment amount at checkout. Omit to leave unchanged.
false
Response
Successful operation
"clkqzo2y1000cx9tfohoiodq1"
12055
"INV-123"
"ACTIVE"
Show child attributes
Show child attributes
Live payments recorded against this link outside Nickel (a mailed check, cash). Voided records are omitted. They count toward completedAmountCents alongside payments.
Show child attributes
Show child attributes
"https://nickel.nickelpayments.com/pay/Ahndhz"
ID of the customer the payment link belongs to. Omitted for links created in the dashboard without a customer.
Percent (0-100) of the card processing fee passed through to the payer for this payment link. null means no per-link override (the customer/organization setting applies).
100
Whether the payer can pay this link by credit card. null means no per-link override (the organization setting applies).
true
Whether the payer can pay this link by ACH/bank transfer. null means no per-link override (the organization setting applies).
true
Whether the payer can edit the payment amount at checkout.
false
