Credit note reconciliations

List, create, update, and delete credit note reconciliations that link an invoice to a credit note.

   
SDK service client.CreditNoteReconciliations (CreditNoteReconciliationsService)
FreeAgent docs dev.freeagent.com/docs/credit_note_reconciliations
Sample app /credit-note-reconciliations (list), /credit-note-reconciliations/detail (CRUD)

Invoice and credit note links: see Linked resources. Sales cluster patterns: see Sales entity map. Related: Invoices, Credit notes.

Methods

ListAsync

Task<IReadOnlyList<CreditNoteReconciliation>> ListAsync(
    DateTimeOffset? updatedSince = null,
    DateOnly? fromDate = null,
    DateOnly? toDate = null,
    CancellationToken cancellationToken = default)
Parameter Type Required Default Wire
updatedSince DateTimeOffset? No null updated_since
fromDate DateOnly? No null from_date
toDate DateOnly? No null to_date
cancellationToken CancellationToken No default -

HTTP: GET /v2/credit_note_reconciliations

This endpoint returns the full collection in one response (no pagination parameters).

Sample:

var reconciliations = await client.CreditNoteReconciliations.ListAsync(
    fromDate: new DateOnly(2024, 1, 1));

GetCreditNoteReconciliationAsync

Task<CreditNoteReconciliation> GetCreditNoteReconciliationAsync(
    long creditNoteReconciliationId,
    CancellationToken cancellationToken = default)

Task<CreditNoteReconciliation> GetCreditNoteReconciliationAsync(
    long creditNoteReconciliationId,
    CreditNoteReconciliationGetOptions? options,
    CancellationToken cancellationToken = default)
Parameter Type Required Default Wire
creditNoteReconciliationId long Yes - path :id
options CreditNoteReconciliationGetOptions? No null -
cancellationToken CancellationToken No default -

HTTP: GET /v2/credit_note_reconciliations/:id

When options.IncludeInvoice or options.IncludeCreditNote is true, the SDK fetches the linked resource if the response contains only a URI.

Sample:

var reconciliation = await client.CreditNoteReconciliations.GetCreditNoteReconciliationAsync(
    123,
    new CreditNoteReconciliationGetOptions
    {
        IncludeInvoice = true,
        IncludeCreditNote = true
    });

CreateCreditNoteReconciliationAsync

Task<CreditNoteReconciliation> CreateCreditNoteReconciliationAsync(
    CreateCreditNoteReconciliationRequest request,
    CancellationToken cancellationToken = default)
Parameter Type Required Default Wire
request CreateCreditNoteReconciliationRequest Yes - credit_note_reconciliation envelope
cancellationToken CancellationToken No default -

HTTP: POST /v2/credit_note_reconciliations

Sample:

using FreeAgent.Client.Models.CreditNoteReconciliations;

var created = await client.CreditNoteReconciliations.CreateCreditNoteReconciliationAsync(
    CreateCreditNoteReconciliationRequest.Create(
        grossValue: 100m,
        invoiceId: 1,
        creditNoteId: 2,
        datedOn: new DateOnly(2024, 3, 18)));

UpdateCreditNoteReconciliationAsync

Task<CreditNoteReconciliation> UpdateCreditNoteReconciliationAsync(
    long creditNoteReconciliationId,
    UpdateCreditNoteReconciliationRequest request,
    CancellationToken cancellationToken = default)
Parameter Type Required Default Wire
creditNoteReconciliationId long Yes - path :id
request UpdateCreditNoteReconciliationRequest Yes - credit_note_reconciliation envelope
cancellationToken CancellationToken No default -

HTTP: PUT /v2/credit_note_reconciliations/:id

Sample:

var updated = await client.CreditNoteReconciliations.UpdateCreditNoteReconciliationAsync(
    123,
    UpdateCreditNoteReconciliationRequest.Create(grossValue: 50m));

DeleteCreditNoteReconciliationAsync

Task DeleteCreditNoteReconciliationAsync(
    long creditNoteReconciliationId,
    CancellationToken cancellationToken = default)
Parameter Type Required Default Wire
creditNoteReconciliationId long Yes - path :id
cancellationToken CancellationToken No default -

HTTP: DELETE /v2/credit_note_reconciliations/:id

CreditNoteReconciliationGetOptions

Property Type Purpose
IncludeInvoice bool Fetch linked invoice when the response contains only an invoice URI
IncludeCreditNote bool Fetch linked credit note when the response contains only a credit note URI

CreditNoteReconciliation model

Key properties:

Property Type Wire name Notes
GrossValue decimal? gross_value Required on create
DatedOn DateOnly? dated_on  
ExchangeRate decimal? exchange_rate  
Currency CurrencyCode? currency  
InvoiceId long? - Parsed from invoice link
CreditNoteId long? - Parsed from credit_note link
Invoice Invoice? - Hydrated invoice
CreditNote CreditNote? - Hydrated credit note
CreatedAt DateTimeOffset? created_at Read-only
UpdatedAt DateTimeOffset? updated_at Read-only
Url string url  

Write requests

CreateCreditNoteReconciliationRequest.Create(...) requires grossValue, invoiceId, and creditNoteId.

UpdateCreditNoteReconciliationRequest.Create(...) accepts optional fields; only supplied values are serialised.

CreditNoteReconciliationReference

Use client.Urls.CreditNoteReconciliation(id) or CreditNoteReconciliationReference.ForEnvironment(environment, id) to build environment-correct reconciliation URIs.

Errors

Failures throw FreeAgentApiException.


Copyright © Mark Heydon. Distributed under the MIT licence.

This site uses Just the Docs, a documentation theme for Jekyll.