Confirmation Status
The paymentConfirmation field provides the status of the payment landing in the client account. Webhooks can be received
for PaymentConfirmation updates by adding it to the PaymentRequest node subscription.
A Stitch intermediary account is required to use the paymentConfirmation field. For clients without a Stitch account, it
will appear as null for all paymentRequests.
The following table outlines the possible paymentConfirmation statuses:
| Status | Description |
|---|---|
| null | The PaymentConfirmation will be null on any paymentRequest that is not completed |
| PaymentPending | The PaymentRequest has been completed, but the payment has not yet been received into the Stitch intermediary account |
| PaymentReceived | The payment was received into the Stitch intermediary account |
| PaymentUnsettled | The payment was not received into the Stitch intermediary account after 7 days |
Here is an example of a paymentInitiationRequest query including paymentConfirmation:
Webhooks can also be received for payment confirmation updates by subscribe to the payment.confirmation event type. An
example is as follows:
The payment.confirmation webhook will be dispatched for each of the following status updates:
PaymentReceivedPaymentUnsettled
Example Payload
{
"data": {
"client": {
"paymentInitiationRequests": {
"node": {
"__typename": "PaymentInitiationRequest",
"amount": {
"currency": "ZAR",
"quantity": "1"
},
"bankBeneficiaries": [
{
"__typename": "BankBeneficiary",
"accountNumber": "1234567890",
"bankAccountNumber": "1234567890",
"bankId": "nedbank",
"name": "FizzBuzz Co."
}
],
"beneficiaries": [
{
"__typename": "BankBeneficiary",
"accountNumber": "1234567890",
"bankAccountNumber": "1234567890",
"bankId": "nedbank",
"name": "FizzBuzz Co."
}
],
"beneficiaryReference": "KombuchaFizz",
"cancellationReason": null,
"created": "2022-10-11T09:52:13.312Z",
"createdAt": "2022-10-11T09:52:13.312Z",
"currency": "ZAR",
"events": [],
"externalReference": "79261d16-c53b-48eb-9019-dc9cfb6c5126",
"failureReason": null,
"id": "cGF5cmVxLzk2YjUyODU1LTBkMzQtNDI0MS04YmM2LWE4ODBlMDQ1ZGQzOQ==",
"payerConstraints": null,
"payerReference": "Joe-Fizz-01",
"paymentConfirmation": {
"__typename": "PaymentReceived",
"date": "2022-10-11T10:47:13.283Z",
"estimatedSettlement": "2022-10-11T10:47:13.283Z",
"received": "2022-10-11T10:47:13.283Z"
},
"paymentMethods": [
{
"cash": {
"atm": {
"enabled": true
}
}
},
{
"eft": {
"enabled": true
}
}
],
"paymentRequestPayerConstraintRelationship": null,
"quantity": "1",
"refunds": [],
"state": {
"__typename": "PaymentInitiationRequestCompleted",
"amount": {
"currency": "ZAR",
"quantity": 1
},
"beneficiary": {
"__typename": "BankBeneficiary",
"accountNumber": "1234567890",
"bankAccountNumber": "1234567890",
"bankId": "nedbank",
"name": "FizzBuzz Co."
},
"date": "2022-10-11T09:52:53.114Z",
"id": "96b52855-0d34-4241-8bc6-a880e045dd39",
"payer": {
"__typename": "PaymentInitiationBankAccountPayer",
"accountName": "Current account",
"accountNumber": "4104754941",
"accountType": "current",
"bankId": "absa"
},
"proofOfPayment": null
},
"updated": "2022-10-11T09:52:53.128Z",
"updatedAt": "2022-10-11T09:52:53.128Z",
"url": "https://secure-local.stitchmoney.com/connect/payment-request/96b52855-0d34-4241-8bc6-a880e045dd39",
"userReference": "Joe-Fizz-01"
}
}
}
}
}
Simulating Payment Confirmations
In order to simulate receiving a payment confirmation for a test client, the testClientCreatePaymentConfirmation mutation
can be used. This will change the status of the paymentConfirmation field to PaymentReceived.