curl --request POST \
--url https://rest.staging.nickel.com/nickelBanking/checkDeposits/{checkDepositId}/apply \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"paymentLinkId": "cmq7ab3cd000gsf02e5f6g7h8",
"amountCents": 100000,
"externalReferenceId": "apply_8f3a2c"
}
'import requests
url = "https://rest.staging.nickel.com/nickelBanking/checkDeposits/{checkDepositId}/apply"
payload = {
"paymentLinkId": "cmq7ab3cd000gsf02e5f6g7h8",
"amountCents": 100000,
"externalReferenceId": "apply_8f3a2c"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
paymentLinkId: 'cmq7ab3cd000gsf02e5f6g7h8',
amountCents: 100000,
externalReferenceId: 'apply_8f3a2c'
})
};
fetch('https://rest.staging.nickel.com/nickelBanking/checkDeposits/{checkDepositId}/apply', 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/nickelBanking/checkDeposits/{checkDepositId}/apply",
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([
'paymentLinkId' => 'cmq7ab3cd000gsf02e5f6g7h8',
'amountCents' => 100000,
'externalReferenceId' => 'apply_8f3a2c'
]),
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/nickelBanking/checkDeposits/{checkDepositId}/apply"
payload := strings.NewReader("{\n \"paymentLinkId\": \"cmq7ab3cd000gsf02e5f6g7h8\",\n \"amountCents\": 100000,\n \"externalReferenceId\": \"apply_8f3a2c\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://rest.staging.nickel.com/nickelBanking/checkDeposits/{checkDepositId}/apply")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"paymentLinkId\": \"cmq7ab3cd000gsf02e5f6g7h8\",\n \"amountCents\": 100000,\n \"externalReferenceId\": \"apply_8f3a2c\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.staging.nickel.com/nickelBanking/checkDeposits/{checkDepositId}/apply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"paymentLinkId\": \"cmq7ab3cd000gsf02e5f6g7h8\",\n \"amountCents\": 100000,\n \"externalReferenceId\": \"apply_8f3a2c\"\n}"
response = http.request(request)
puts response.read_body{
"externalPayment": {
"id": "cmr9zx1bq000gsf02h1d5w4t8",
"amountCents": 2500,
"paidAt": "2026-08-30",
"voided": false,
"externalReferenceId": "txn_8f3a2c",
"nickelBankingTransferId": null
},
"paymentLink": {
"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"
},
"nickelBalanceDetails": {
"nickname": "Operating",
"accountNumberLastFour": "6789",
"spendableCents": 125000
},
"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,
"externalReferenceId": "txn_8f3a2c",
"nickelBankingTransferId": null
}
],
"debitMemos": [
{
"id": "cmrb2k7w1000hsf02q8d9x3vn",
"amountCents": 3500,
"description": "Returned check fee",
"voided": false,
"createdAt": "2023-11-07T05:31:56Z",
"externalReferenceId": "DM-1042"
}
],
"debitMemoAmountCents": 0,
"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>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Apply a check deposit to a payment link
Applies money from a check you deposited into Nickel Banking to one of your payment links, marking it paid for that amount. The money is already in your account, so nothing moves: the application appears in the link’s externalPayments with nickelBankingTransferId set, and in the deposit’s applications. Undo it with Void an external payment.
A deposit can be applied while it is still PROCESSING. If the bank later returns or rejects the check, Nickel voids its applications and the payment links reopen.
Send an externalReferenceId to make the call safe to retry: a repeat with the same reference on the same payment link returns the application it made instead of applying the deposit again.
curl --request POST \
--url https://rest.staging.nickel.com/nickelBanking/checkDeposits/{checkDepositId}/apply \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"paymentLinkId": "cmq7ab3cd000gsf02e5f6g7h8",
"amountCents": 100000,
"externalReferenceId": "apply_8f3a2c"
}
'import requests
url = "https://rest.staging.nickel.com/nickelBanking/checkDeposits/{checkDepositId}/apply"
payload = {
"paymentLinkId": "cmq7ab3cd000gsf02e5f6g7h8",
"amountCents": 100000,
"externalReferenceId": "apply_8f3a2c"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
paymentLinkId: 'cmq7ab3cd000gsf02e5f6g7h8',
amountCents: 100000,
externalReferenceId: 'apply_8f3a2c'
})
};
fetch('https://rest.staging.nickel.com/nickelBanking/checkDeposits/{checkDepositId}/apply', 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/nickelBanking/checkDeposits/{checkDepositId}/apply",
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([
'paymentLinkId' => 'cmq7ab3cd000gsf02e5f6g7h8',
'amountCents' => 100000,
'externalReferenceId' => 'apply_8f3a2c'
]),
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/nickelBanking/checkDeposits/{checkDepositId}/apply"
payload := strings.NewReader("{\n \"paymentLinkId\": \"cmq7ab3cd000gsf02e5f6g7h8\",\n \"amountCents\": 100000,\n \"externalReferenceId\": \"apply_8f3a2c\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://rest.staging.nickel.com/nickelBanking/checkDeposits/{checkDepositId}/apply")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"paymentLinkId\": \"cmq7ab3cd000gsf02e5f6g7h8\",\n \"amountCents\": 100000,\n \"externalReferenceId\": \"apply_8f3a2c\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.staging.nickel.com/nickelBanking/checkDeposits/{checkDepositId}/apply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"paymentLinkId\": \"cmq7ab3cd000gsf02e5f6g7h8\",\n \"amountCents\": 100000,\n \"externalReferenceId\": \"apply_8f3a2c\"\n}"
response = http.request(request)
puts response.read_body{
"externalPayment": {
"id": "cmr9zx1bq000gsf02h1d5w4t8",
"amountCents": 2500,
"paidAt": "2026-08-30",
"voided": false,
"externalReferenceId": "txn_8f3a2c",
"nickelBankingTransferId": null
},
"paymentLink": {
"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"
},
"nickelBalanceDetails": {
"nickname": "Operating",
"accountNumberLastFour": "6789",
"spendableCents": 125000
},
"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,
"externalReferenceId": "txn_8f3a2c",
"nickelBankingTransferId": null
}
],
"debitMemos": [
{
"id": "cmrb2k7w1000hsf02q8d9x3vn",
"amountCents": 3500,
"description": "Returned check fee",
"voided": false,
"createdAt": "2023-11-07T05:31:56Z",
"externalReferenceId": "DM-1042"
}
],
"debitMemoAmountCents": 0,
"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>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The deposit's id from List check deposits or Deposit a check.
Body
The payment link the check pays.
"cmq7ab3cd000gsf02e5f6g7h8"
Cents to apply. Defaults to the smaller of the deposit's unappliedAmountCents and what the payment link has left to pay.
x >= 1100000
Your own id for this application. A repeat with the same id on the same payment link returns the existing application instead of applying the deposit again, and one that differs from it (another amount, another deposit, or money received outside Nickel) is a 409. Voiding the application frees the id.
255"apply_8f3a2c"
