Skip to main content

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.

note

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:

StatusDescription
nullThe PaymentConfirmation will be null on any paymentRequest that is not completed
PaymentPendingThe PaymentRequest has been completed, but the payment has not yet been received into the Stitch intermediary account
PaymentReceivedThe payment was received into the Stitch intermediary account
PaymentUnsettledThe 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:

  • PaymentReceived
  • PaymentUnsettled
Example Payload
{
"data": {
"client": {
"paymentInitiationRequests": {
"node": {
"__typename": "PaymentInitiationRequest",
"amount": {
"currency": "ZAR",
"quantity": "1"
},
"bankBeneficiaries": [
{
"__typename": "BankBeneficiary",
"accountNumber": "1223273660",
"bankAccountNumber": "1223273660",
"bankId": "nedbank",
"name": "FizzBuzz Co."
}
],
"beneficiaries": [
{
"__typename": "BankBeneficiary",
"accountNumber": "1223273660",
"bankAccountNumber": "1223273660",
"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": "1223273660",
"bankAccountNumber": "1223273660",
"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.