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:
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
.