curl --request PUT \
--url https://dev.noyax.com/services/noyax_api/api/v1/finance/credit-card-collections/{creditCardCollectionId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-CompanyID: <x-companyid>' \
--header 'X-UserID: <x-userid>' \
--data '
{
"VoucherNumber": "Next",
"Date": "2026-09-24T16:02:00",
"BankAccountCode": "TEST POS",
"Description": "<string>",
"SharingCode": "<string>",
"Lines": [
{
"CustomerCode": "C-0001",
"Amount": 800,
"ExchangeRate": 1,
"PosChargeDate": "2026-09-24T16:03:00",
"RepaymentPlanName": "<string>",
"Description": "<string>",
"CustomerAmount": 123,
"CustomerCurrencyCode": "<string>",
"CustomerExchangeRate": 123
}
]
}
'using RestSharp;
var options = new RestClientOptions("https://dev.noyax.com/services/noyax_api/api/v1/finance/credit-card-collections/{creditCardCollectionId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("X-UserID", "<x-userid>");
request.AddHeader("X-CompanyID", "<x-companyid>");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"VoucherNumber\": \"Next\",\n \"Date\": \"2026-09-24T16:02:00\",\n \"BankAccountCode\": \"TEST POS\",\n \"Description\": \"<string>\",\n \"SharingCode\": \"<string>\",\n \"Lines\": [\n {\n \"CustomerCode\": \"C-0001\",\n \"Amount\": 800,\n \"ExchangeRate\": 1,\n \"PosChargeDate\": \"2026-09-24T16:03:00\",\n \"RepaymentPlanName\": \"<string>\",\n \"Description\": \"<string>\",\n \"CustomerAmount\": 123,\n \"CustomerCurrencyCode\": \"<string>\",\n \"CustomerExchangeRate\": 123\n }\n ]\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
const options = {
method: 'PUT',
headers: {
'X-UserID': '<x-userid>',
'X-CompanyID': '<x-companyid>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
VoucherNumber: 'Next',
Date: '2026-09-24T16:02:00',
BankAccountCode: 'TEST POS',
Description: '<string>',
SharingCode: '<string>',
Lines: [
{
CustomerCode: 'C-0001',
Amount: 800,
ExchangeRate: 1,
PosChargeDate: '2026-09-24T16:03:00',
RepaymentPlanName: '<string>',
Description: '<string>',
CustomerAmount: 123,
CustomerCurrencyCode: '<string>',
CustomerExchangeRate: 123
}
]
})
};
fetch('https://dev.noyax.com/services/noyax_api/api/v1/finance/credit-card-collections/{creditCardCollectionId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://dev.noyax.com/services/noyax_api/api/v1/finance/credit-card-collections/{creditCardCollectionId}"
payload = {
"VoucherNumber": "Next",
"Date": "2026-09-24T16:02:00",
"BankAccountCode": "TEST POS",
"Description": "<string>",
"SharingCode": "<string>",
"Lines": [
{
"CustomerCode": "C-0001",
"Amount": 800,
"ExchangeRate": 1,
"PosChargeDate": "2026-09-24T16:03:00",
"RepaymentPlanName": "<string>",
"Description": "<string>",
"CustomerAmount": 123,
"CustomerCurrencyCode": "<string>",
"CustomerExchangeRate": 123
}
]
}
headers = {
"X-UserID": "<x-userid>",
"X-CompanyID": "<x-companyid>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text){
"Success": true,
"ResultCode": "0000",
"Data": {
"Id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"VoucherNumber": "<string>",
"Date": "2023-11-07T05:31:56Z",
"BankAccountCode": "<string>",
"BankAccountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"CurrencyCode": "<string>",
"CurrencyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ExchangeRate": 123,
"Amount": 123,
"Description": "<string>",
"SharingCode": "<string>",
"SharingCodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"IsPosted": true,
"IsRepaid": true,
"CreateDate": "2023-11-07T05:31:56Z",
"ModifyDate": "2023-11-07T05:31:56Z",
"Lines": [
{
"CustomerName": "<string>",
"Valor": "2023-11-07T05:31:56Z",
"CustomerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"RepaymentPlanId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"CustomerCurrencyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"CustomerCode": "C-0001",
"Amount": 800,
"ExchangeRate": 1,
"PosChargeDate": "2026-09-24T16:03:00",
"RepaymentPlanName": "<string>",
"Description": "<string>",
"CustomerAmount": 123,
"CustomerCurrencyCode": "<string>",
"CustomerExchangeRate": 123
}
]
},
"Message": "<string>"
}{
"Success": false,
"ResultCode": "8709",
"Message": "The voucher has already been settled by a bank repayment voucher and can no longer be updated.",
"Errors": [
{
"Code": "8709",
"Message": "The voucher has already been settled by a bank repayment voucher and can no longer be updated."
}
]
}{
"Success": false,
"ResultCode": "0102",
"Message": "Token has expired. Obtain a new token using the refresh token.",
"Errors": [
{
"Code": "0102",
"Message": "Token has expired. Obtain a new token using the refresh token."
}
]
}{
"Success": false,
"ResultCode": "0110",
"Message": "You do not have permission for this operation.",
"Errors": [
{
"Code": "0110",
"Message": "You do not have permission for this operation."
}
]
}{
"Success": false,
"ResultCode": "8700",
"Message": "Credit card collection not found.",
"Errors": [
{
"Code": "8700",
"Message": "Credit card collection not found."
}
]
}{
"Success": false,
"ResultCode": "0120",
"Message": "Daily request limit (10000) exceeded.",
"Errors": [
{
"Code": "0120",
"Message": "Daily request limit (10000) exceeded."
}
]
}Update credit card collection
Replaces all fields of the voucher and its lines.
curl --request PUT \
--url https://dev.noyax.com/services/noyax_api/api/v1/finance/credit-card-collections/{creditCardCollectionId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-CompanyID: <x-companyid>' \
--header 'X-UserID: <x-userid>' \
--data '
{
"VoucherNumber": "Next",
"Date": "2026-09-24T16:02:00",
"BankAccountCode": "TEST POS",
"Description": "<string>",
"SharingCode": "<string>",
"Lines": [
{
"CustomerCode": "C-0001",
"Amount": 800,
"ExchangeRate": 1,
"PosChargeDate": "2026-09-24T16:03:00",
"RepaymentPlanName": "<string>",
"Description": "<string>",
"CustomerAmount": 123,
"CustomerCurrencyCode": "<string>",
"CustomerExchangeRate": 123
}
]
}
'using RestSharp;
var options = new RestClientOptions("https://dev.noyax.com/services/noyax_api/api/v1/finance/credit-card-collections/{creditCardCollectionId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("X-UserID", "<x-userid>");
request.AddHeader("X-CompanyID", "<x-companyid>");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"VoucherNumber\": \"Next\",\n \"Date\": \"2026-09-24T16:02:00\",\n \"BankAccountCode\": \"TEST POS\",\n \"Description\": \"<string>\",\n \"SharingCode\": \"<string>\",\n \"Lines\": [\n {\n \"CustomerCode\": \"C-0001\",\n \"Amount\": 800,\n \"ExchangeRate\": 1,\n \"PosChargeDate\": \"2026-09-24T16:03:00\",\n \"RepaymentPlanName\": \"<string>\",\n \"Description\": \"<string>\",\n \"CustomerAmount\": 123,\n \"CustomerCurrencyCode\": \"<string>\",\n \"CustomerExchangeRate\": 123\n }\n ]\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
const options = {
method: 'PUT',
headers: {
'X-UserID': '<x-userid>',
'X-CompanyID': '<x-companyid>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
VoucherNumber: 'Next',
Date: '2026-09-24T16:02:00',
BankAccountCode: 'TEST POS',
Description: '<string>',
SharingCode: '<string>',
Lines: [
{
CustomerCode: 'C-0001',
Amount: 800,
ExchangeRate: 1,
PosChargeDate: '2026-09-24T16:03:00',
RepaymentPlanName: '<string>',
Description: '<string>',
CustomerAmount: 123,
CustomerCurrencyCode: '<string>',
CustomerExchangeRate: 123
}
]
})
};
fetch('https://dev.noyax.com/services/noyax_api/api/v1/finance/credit-card-collections/{creditCardCollectionId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://dev.noyax.com/services/noyax_api/api/v1/finance/credit-card-collections/{creditCardCollectionId}"
payload = {
"VoucherNumber": "Next",
"Date": "2026-09-24T16:02:00",
"BankAccountCode": "TEST POS",
"Description": "<string>",
"SharingCode": "<string>",
"Lines": [
{
"CustomerCode": "C-0001",
"Amount": 800,
"ExchangeRate": 1,
"PosChargeDate": "2026-09-24T16:03:00",
"RepaymentPlanName": "<string>",
"Description": "<string>",
"CustomerAmount": 123,
"CustomerCurrencyCode": "<string>",
"CustomerExchangeRate": 123
}
]
}
headers = {
"X-UserID": "<x-userid>",
"X-CompanyID": "<x-companyid>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text){
"Success": true,
"ResultCode": "0000",
"Data": {
"Id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"VoucherNumber": "<string>",
"Date": "2023-11-07T05:31:56Z",
"BankAccountCode": "<string>",
"BankAccountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"CurrencyCode": "<string>",
"CurrencyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ExchangeRate": 123,
"Amount": 123,
"Description": "<string>",
"SharingCode": "<string>",
"SharingCodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"IsPosted": true,
"IsRepaid": true,
"CreateDate": "2023-11-07T05:31:56Z",
"ModifyDate": "2023-11-07T05:31:56Z",
"Lines": [
{
"CustomerName": "<string>",
"Valor": "2023-11-07T05:31:56Z",
"CustomerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"RepaymentPlanId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"CustomerCurrencyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"CustomerCode": "C-0001",
"Amount": 800,
"ExchangeRate": 1,
"PosChargeDate": "2026-09-24T16:03:00",
"RepaymentPlanName": "<string>",
"Description": "<string>",
"CustomerAmount": 123,
"CustomerCurrencyCode": "<string>",
"CustomerExchangeRate": 123
}
]
},
"Message": "<string>"
}{
"Success": false,
"ResultCode": "8709",
"Message": "The voucher has already been settled by a bank repayment voucher and can no longer be updated.",
"Errors": [
{
"Code": "8709",
"Message": "The voucher has already been settled by a bank repayment voucher and can no longer be updated."
}
]
}{
"Success": false,
"ResultCode": "0102",
"Message": "Token has expired. Obtain a new token using the refresh token.",
"Errors": [
{
"Code": "0102",
"Message": "Token has expired. Obtain a new token using the refresh token."
}
]
}{
"Success": false,
"ResultCode": "0110",
"Message": "You do not have permission for this operation.",
"Errors": [
{
"Code": "0110",
"Message": "You do not have permission for this operation."
}
]
}{
"Success": false,
"ResultCode": "8700",
"Message": "Credit card collection not found.",
"Errors": [
{
"Code": "8700",
"Message": "Credit card collection not found."
}
]
}{
"Success": false,
"ResultCode": "0120",
"Message": "Daily request limit (10000) exceeded.",
"Errors": [
{
"Code": "0120",
"Message": "Daily request limit (10000) exceeded."
}
]
}PATCH changes only the fields you send.
VoucherNumber cannot be "Next". A posted voucher, or one already settled by a bank repayment voucher, cannot be updated. See the overview page for line identity on update and the closed-record lock.
Error codes
Codes this endpoint can return. The general errors that apply to every endpoint (authentication, permissions, request headers, daily limit) are not repeated here.| Code | HTTP | Meaning |
|---|---|---|
0002 | 400 | Request body could not be read (malformed JSON, wrong field type) |
0003 | 400 | A field exceeds its maximum length (the message names the field and the limit) |
0580 | 400 | A value given as text (a code or a name) matches more than one record; add the detail that tells them apart (for example City for a district, Country for a city) |
8700 | 404 | Credit card collection not found |
8701 | 400 | VoucherNumber is required |
8702 | 400 | VoucherNumber is already used in the company (among all bank voucher types) |
8703 | 400 | VoucherNumber cannot be “Next” on update |
8704 | 400 | Date is required |
8705 | 400 | BankAccountCode is required |
8706 | 400 | BankAccountCode was not found |
8707 | 400 | At least one line is required |
8708 | 400 | The voucher has been posted to accounting and can no longer be updated or deleted |
8709 | 400 | The voucher has been settled by a bank repayment voucher and can no longer be updated or deleted |
8710 | 400 | SharingCode is not one of the user’s sharing codes |
8800 | 400 | Line CustomerCode is required |
8801 | 400 | Customer not found for the line |
8802 | 400 | Line Amount must be greater than 0 |
8803 | 400 | Line ExchangeRate (or CustomerExchangeRate) is required and must be greater than 0 |
8804 | 400 | Line PosChargeDate is required |
8805 | 400 | Line RepaymentPlanName was not found |
8806 | 400 | Line CustomerCurrencyCode was not found |
8807 | 400 | Line CustomerAmount x CustomerExchangeRate does not equal Amount x ExchangeRate |
8808 | 400 | Line CustomerAmount and CustomerCurrencyCode must be sent together |
8809 | 400 | The line’s customer record has been closed, operation cancelled |
8810 | 400 | A payment plan has been created for the line’s customer record, operation cancelled |
Authorizations
Access token obtained from the Noyax auth service with your API key.
Headers
ID of the Noyax user the request is made on behalf of. Written to the audit fields of created, updated and deleted records.
x >= 1ID of the company. The user must be assigned to this company. All reads and writes are limited to this company.
x >= 1ID of the accounting period. Optional for customer endpoints; if sent, it is written to created records.
x >= 1Path Parameters
Credit card collection ID.
Body
Required. Voucher number, unique within the company among all bank vouchers. Send "Next" on create to generate it from the company's bank voucher number series. At most 20 characters.
"Next"
Required. Voucher date. If a time is sent it is stored as the voucher time, otherwise the current time is used.
"2026-09-24T16:02:00"
Required. Bank account name (Name from GET /api/v1/finance/bank-accounts). All lines are recorded against this account.
"TEST POS"
Description. At most 1000 characters.
Sharing code that limits who can see the voucher. Empty means visible to everyone; otherwise it must be one of the user's sharing codes.
Required, at least one line.
Show child attributes
Show child attributes
Response
OK
Whether the operation succeeded.
true
"0000" on success. On failure, the code of the first error; all errors are listed in Errors.
"0000"
Response data. Null when Success is false.
Show child attributes
Show child attributes
Error message when Success is false. Messages of all errors are joined into a single text.