Payments between CLA and CLI

Payments between CLA and CLI Overview:

This page provides examples of GraphQL queries and mutations for initiating payments between Client Accounts and Client Linked Accounts (CLAs) in the ANZ Cash Management Central (ACMC) system.

Overview of CLA Payment Initiation

The ACMC system supports initiating payments between Client Accounts and CLAs in both directions:

Payments from Client Account to CLA: Can be initiated using two methods:

  • Using Payment Type ‘CLA Payment’
  • Using any Payment Type and specifying BSB and account number of the CLA

Payments from CLA to Client Account: Can be initiated using two methods:

  • Using ‘CLA Payment Request’ function within ACMC
  • Accessing the CLA via an appropriate ANZ Electronic Banking Channel, selecting any Payment Type, and specifying the Client Account’s BSB and account number

The following GraphQL operations allow you to initiate and manage these CLA-related payments within the ACMC system.

Table of Contents

  1. Initiate Payment from Client Account to CLA
  2. Initiate CLA Payment Request
  3. Query CLA Payment Status

Initiate Payment from Client Account to CLA

Mutation: doEncrypted (action: payment)

This mutation initiates a payment from a client account to a CLA.

mutation ($input: EncryptedInput!) {
    doEncrypted(i: $input) {
        commandId
    }
}

Variables:

{
    "input": {
        "encryptedPayload": {
            "action": "payment",
            "recipient": {
                "customer-linked-account": {
                    "id": "Q3VzdG9tZXJMaW5rZWRBY2NvdW50OmEwODQxNzcyN2E4ZjNkODEyYTViMDY4ZDRjZjU4YTRiMmY5NWE5ZTg1OGU4YThlOTNmMWQ3MDkyNThmZjMzZmI="
                }
            },
            "sender": {
                "account": {
                    "id": "QWNjb3VudDo1OTNmYThlMGFiNzQ4NDRmNzU0Y2M0ZGQ4MTA2ZTc5ZTEzYjhjNjgzMzc1NDBmNGMyNzc2OTRmZjhkNWRmYjVh"
                }
            },
            "amount": {
                "value": "5.00",
                "currency": "AUD"
            },
            "value-date": "2024-10-08",
            "reference": "Client Account to CLA"
        }
    }
}

Initiate CLA Payment Request

Mutation: doEncrypted (action: payment-request)

This mutation initiates a payment request from a CLA to a client account.

mutation ($input: EncryptedInput!) {
    doEncrypted(i: $input) {
        commandId
    }
}

Variables:

{
    "input": {
        "encryptedPayload": {
            "action": "payment-request",
            "customer-linked-account": {
                "id": "Q3VzdG9tZXJMaW5rZWRBY2NvdW50OmEwODQxNzcyN2E4ZjNkODEyYTViMDY4ZDRjZjU4YTRiMmY5NWE5ZTg1OGU4YThlOTNmMWQ3MDkyNThmZjMzZmI="
            },
            "requester": {
                "account": {
                    "id": "QWNjb3VudDo1OTNmYThlMGFiNzQ4NDRmNzU0Y2M0ZGQ4MTA2ZTc5ZTEzYjhjNjgzMzc1NDBmNGMyNzc2OTRmZjhkNWRmYjVh"
                }
            },
            "amount": {
                "value": "5.25",
                "currency": "AUD"
            },
            "value-date": "2024-10-08",
            "reference": "CLA to Client Account"
        }
    }
}

Query CLA Payment Status

Query: node

This query retrieves the status of a specific CLA payment or payment request.

query QueryCommand($id: ID!) {
    node(id: $id) {
        __typename
        ... on EncryptedCommand {
            id
            state
            invalid {
                field
                reason
            }
            unencryptedCommand {
                id
                createdTimestamp
                ... on MakeNppPaymentCommand {
                    action
                    payment {
                        amount {
                            creditDebit
                            value
                            currency
                        }
                        createdTimestamp
                        recipient {
                            accountNumber
                            name
                        }
                        status
                        reason
                        paymentMethod
                        transactions {
                            edges {
                                node {
                                    id
                                    state
                                    valueDate
                                }
                            }
                        }
                    }
                    invalid {
                        field
                        reason
                        code
                    }
                }
            }
        }
    }
}

Variables:

{
    "id": "Q29tbWFuZDplYzczNjljZC1lZTgxLTQ3MzMtODlmYS0xYTU0YzZjYjBhNzA="
}

Response:

{
	"data": {
		"node": {
			"__typename": "EncryptedCommand",
			"id": "Q29tbWFuZDplYzczNjljZC1lZTgxLTQ3MzMtODlmYS0xYTU0YzZjYjBhNzA=",
			"state": "SUCCESSFUL",
			"invalid": [],
			"unencryptedCommand": {
				"id": "Q29tbWFuZDpiMDA5NTQ2ZjFhZjc1MGFjODNjZTgzZmE2OGYyZDMyNDdkMmIxMjdiZWExMWIzYzlmYjYzMzQ2NzUxNDIyYWQ5",
				"createdTimestamp": "2024-10-08T05:00:46.333Z",
				"action": "MAKE-NPP-PAYMENT",
				"payment": {
					"amount": {
						"creditDebit": "DEBIT",
						"value": "5.00",
						"currency": "AUD"
					},
					"createdTimestamp": "2024-10-08T05:00:51.300Z",
					"recipient": {
						"accountNumber": "189524201",
						"name": "Test CLA"
					},
					"status": "completed",
					"reason": "",
					"paymentMethod": "npp",
					"transactions": {
						"edges": [
							{
								"node": {
									"id": "VHJhbnNhY3Rpb246MjE3YzAzOWJhZDI0NGNhODQwOGIxNTE5N2EwZWNhY2M2MjU5Y2UxMmI4ZmRmYjY3NWM1YjQzNWQ2ZmYwMTc3ZQ==",
									"state": "SUCCESSFUL",
									"valueDate": "2024-10-08"
								}
							}
						]
					}
				},
				"invalid": []
			}
		}
	}
}

Response Fields

Field Type Description
data.node INTERFACE The root object representing the queried node
data.node.id SCALAR! Unique identifier for the encrypted command
data.node.state ENUM! Current state of the command (e.g., “SUCCESSFUL”)
data.node.invalid OBJECT! List of validation errors (empty in this case)
unencryptedCommand INTERFACE Decrypted details of the command
unencryptedCommand.id SCALAR! Unique identifier for the unencrypted command
unencryptedCommand.createdTimestamp SCALAR Timestamp when the command was created
unencryptedCommand.action SCALAR! Type of action performed (e.g., “MAKE-NPP-PAYMENT”)
payment OBJECT Details of the payment
payment.amount OBJECT! Amount details of the payment
payment.amount.creditDebit ENUM! Indicates if it’s a credit or debit transaction
payment.amount.value SCALAR! The monetary value of the transaction
payment.amount.currency SCALAR! The currency code (e.g., “AUD”)
payment.createdTimestamp SCALAR! Timestamp when the payment was created
payment.recipient OBJECT Details of the payment recipient
payment.recipient.accountNumber SCALA! Account number of the recipient
payment.recipient.name SCALAR Name of the recipient
payment.status SCALAR Current status of the payment (e.g., “completed”)
payment.reason SCALAR Reason for the payment status (empty in this case)
payment.paymentMethod SCALAR Method used for the payment (e.g., “npp”)
payment.transactions [INTERFACE!]! List of transactions associated with this payment
payment.transactions.edges[].node.id SCALAR! Unique identifier for the transaction
payment.transactions.edges[].node.state ENUM! Current state of the transaction
payment.transactions.edges[].node.valueDate SCALAR! The value date of the transaction
unencryptedCommand.invalid [OBJECT]! List of validation errors for the unencrypted command (empty in this case)