remittances
Reconciles a batch of bank-settled remittances against donations previously created in the ASF platform. Each remittance entry references a bank transaction identifier and the donation references it covers. Accepted requests return 202 Accepted and are processed asynchronously; downstream errors are reported by ASF out-of-band.
HTTP request
Section titled “HTTP request”POST /remittancesAuthentication
Section titled “Authentication”client_id and client_secret headers. See Authentication.
Parameters
Section titled “Parameters”Header
Section titled “Header”| Parameter | Required | Type | Description |
|---|---|---|---|
X-Correlation-ID | Yes | uuid | Fresh UUID per request. |
| Field | Required | Type | Description |
|---|---|---|---|
source | Yes | Source | Partner channel + fundraiser identifiers. |
source.channel | Yes | SourceChannel | Partner platform making the request. |
source.fundraiserId | Yes | string | ASF Member Number |
remittances | Yes | Remittance[] | One entry per bank transaction. |
remittances[].bankReferenceId | Yes | string | Bank-issued reference for the settled transaction. |
remittances[].amount | Yes | number | Settled amount in AUD. |
remittances[].donationIds | Yes | string[] | Donation reference ids covered by this remittance entry. |
Returns
Section titled “Returns”SuccessEnvelope (status 202) with data.items:
| Field | Type | Description |
|---|---|---|
status | string | Request Accepted. |
Sample
Section titled “Sample”import osimport uuidimport requests
BASE_URL = "https://sit.api.asf.org.au/fundraisers/api/v1"
body = { "source": { "channel": "XYZ Platform", "fundraiserId": "ASF123456", }, "remittances": [ { "bankReferenceId": "123456789", "amount": 1500.00, "donationIds": ["0000468-000788", "0000468-000789", "0000468-000790"], }, { "bankReferenceId": "1222222", "amount": 500.00, "donationIds": ["0000468-000791"], }, ],}
response = requests.post( f"{BASE_URL}/remittances", json=body, headers={ "client_id": os.environ["ASF_CLIENT_ID"], "client_secret": os.environ["ASF_CLIENT_SECRET"], "X-Correlation-ID": str(uuid.uuid4()), }, timeout=10,)response.raise_for_status()
print(response.json()["data"]["items"]["status"]) # "Request Accepted"import { randomUUID } from 'node:crypto';
const BASE_URL = 'https://sit.api.asf.org.au/fundraisers/api/v1';
const body = { source: { channel: 'XYZ Platform', fundraiserId: 'ASF123456', }, remittances: [ { bankReferenceId: '123456789', amount: 1500.0, donationIds: ['0000468-000788', '0000468-000789', '0000468-000790'], }, { bankReferenceId: '1222222', amount: 500.0, donationIds: ['0000468-000791'], }, ],};
const response = await fetch(`${BASE_URL}/remittances`, { method: 'POST', headers: { client_id: process.env.ASF_CLIENT_ID!, client_secret: process.env.ASF_CLIENT_SECRET!, 'X-Correlation-ID': randomUUID(), 'Content-Type': 'application/json', }, body: JSON.stringify(body),});if (!response.ok) throw new Error(`${response.status} ${await response.text()}`);
const result = await response.json();console.log(result.data.items.status); // "Request Accepted"<?php$baseUrl = 'https://sit.api.asf.org.au/fundraisers/api/v1';$correlationId = bin2hex(random_bytes(16));
$body = [ 'source' => [ 'channel' => 'XYZ Platform', 'fundraiserId' => 'ASF123456', ], 'remittances' => [ [ 'bankReferenceId' => 'NAB WPSC', 'amount' => 1500.00, 'donationIds' => ['0000468-000788', '0000468-000789', '0000468-000790'], ], [ 'bankReferenceId' => 'NAB East Gully CC', 'amount' => 50.00, 'donationIds' => ['0000468-000791'], ], ],];
$ch = curl_init("$baseUrl/remittances");curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => json_encode($body), CURLOPT_HTTPHEADER => [ 'client_id: ' . getenv('ASF_CLIENT_ID'), 'client_secret: ' . getenv('ASF_CLIENT_SECRET'), 'X-Correlation-ID: ' . $correlationId, 'Content-Type: application/json', ],]);
$response = curl_exec($ch);$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);curl_close($ch);if ($status >= 400) throw new Exception("HTTP $status: $response");
echo json_decode($response, true)['data']['items']['status']; // "Request Accepted"Example response
Section titled “Example response”{ "apiVersion": "1.0.0", "correlationId": "210c68180-2ac6-11ee-b000-111", "method": "/remittance", "data": { "items": { "status": "Request Accepted" } }}Errors
Section titled “Errors”| Status | Code | When it fires |
|---|---|---|
401 | — | Basic credentials or client_id/client_secret are invalid. |
406 | FUNDRAISER:REMITTANCE POST | At least one referenced fundraiser is not enrolled with ASF. |
429 | — | Request quota exhausted. |
500 | FUNDRAISER:UNKNOWN | Unhandled server error. Retry with backoff. |
503 | — | Server temporarily unavailable. |