Sorry, you need to enable JavaScript to visit this website.

2 Request Payment Consent ID

Action

Using the Payment access token you received in the previous call, proceed to make a payment consent call to receive a Consent ID using the endpoint and values below.

TPP can read the account details of the user in case of refund requested by customer by setting "ReadRefundAccount" to Yes/No during Create Intent.Also during Authorisation if customer provides consent to see the refund accound details only then TPP will be able to see the account information during Payment Submission.

UltimateDebtor Object is optional if passed then we use the ID Number/Profile from request and prepopulate it on the landing page when redirected to Customer.If ITA is enabled then customer is allowed to go through ITA or else APIM redirect them to NedbankID usename and password authentication.


Method POST
Endpoint https://api.nedbank.co.za/apimarket/sandbox/open-banking/v3.1/pisp/domestic-payment-consents
Request
Headers
Header Value Description
Content-Type application/json The data type being sent to the endpoint.
x-fapi-financial-id OB/2017/001 Financial ID.
Accept application/json content type
x-idempotency-key <RANDOM INTEGER> Random integer. Must be unique for every call
Authorization Bearer <ACCESS_TOKEN> The access token you received from the previous call. Replace <ACCESS_TOKEN> with the access token you received.
x-ibm-client-id <YOUR CLIENT ID> The client ID you received when creating the app on the portal.
x-ibm-client-secret <YOUR CLIENT SECRET> The client secret you received when creating the app on the portal.

Body JSON
                            
{
    "Data": {
        "ReadRefundAccount": "Yes",
        "Initiation": {
            "InstructionIdentification": "REPLACE WITH RANDOM UNIQUE STRING",
            "EndToEndIdentification": "REPLACE WITH RANDOM UNIQUE STRING",
            "InstructedAmount": {
                "Amount": "55.60",
                "Currency": "ZAR"
            },
            "CreditorAccount": {
                "SchemeName": "SortCodeAccountNumber",
                "Identification": "1987651009427726",
                "Name": "ACME Inc",
                "SecondaryIdentification": "1009427726"
            },
            "UltimateDebtor": {
                "SchemeName": "IdentityCardNumber",
                "Identification": "1234567890",
                "Name": "REPLACE WITH ACCOUNT NAME",
                "ContactDetails": {
                   "MobileNumber": "+2712345678"
                }
            },
            "RemittanceInformation": {
                "Unstructured": "Instant EFT - {Merchant Name/Transaction Descrption}",
                "Reference": "REPLACE WITH VALUE UPTO 30 CHARS"
            }
        }
    },
    "Risk": {
        "PaymentContextCode": "EcommerceMerchantInitiatedPayment",
        "ContractPresentInidicator": false,
        "PaymentPurposeCode": "EPAY",
        "BeneficiaryPrepopulatedIndicator": false,
        "BeneficiaryAccountType": "Business",
        "MerchantCustomerIdentification": "1234567891",
        "DeliveryAddress": {
            "AddressLine": [
                "25 Queen Victoria Street",
                "Acacia Lodge"
            ],
            "StreetName": "Kromdraai Road",
            "BuildingNumber": "25",
            "PostCode": "7872",
            "TownName": "Hout Bay",
            "CountrySubDivision": "Gauteng",
            "Country": "ZA"
        }
    }
}
                            
                            

SchemeName values for {$UltimateDebtor} object are IdentityCardNumber and Profile.

If SchemeName is IdentityCardNumber then value for Identification is RSA IdNumber.

If SchemeName is Proile then value for Identification is CustomerProfileIdentifier from previous successful transaction.

Unstructured field refers to Transaction Description of Customer.

Reference field refers to Transaction Description of TPP.

Response JSON
                    
{
    "Data": {
        "ConsentId": "01HCY05JA2ENJQ2GQXQH0NSG5S",
        "Status": "AwaitingAuthorisation",
        "CreationDateTime": "2022-12-28T05:09:46+00:00",
        "StatusUpdateDateTime": "2022-12-28T05:09:46+00:00",
        "ReadRefundAccount": "Yes",
        "Initiation": {
            "InstructionIdentification": "abc112",
            "EndToEndIdentification": "def123",
            "InstructedAmount": {
                "Amount": "55.60",
                "Currency": "ZAR"
            },
            "CreditorAccount": {
                "SchemeName": "SortCodeAccountNumber",
                "Identification": "1987651009427726",
                "Name": "ACME Inc",
                "SecondaryIdentification": "1009427726"
            },
            "RemittanceInformation": {
                "Reference": "ba5a937d",
                "Unstructured": "Instant EFT - Test"
            }
        }
    },
    "Risk": {
        "PaymentContextCode": "EcommerceMerchantInitiatedPayment",
        "MerchantCustomerIdentification": "1234567891",
        "ContractPresentInidicator": false,
        "BeneficiaryPrepopulatedIndicator": false,
        "PaymentPurposeCode": "EPAY",
        "BeneficiaryAccountType": "Business",
        "DeliveryAddress": {
            "AddressLine": [
                "25 Queen Victoria Street",
                "Acacia Lodge"
            ],
            "StreetName": "Kromdraai Road",
            "BuildingNumber": "25",
            "PostCode": "7872",
            "TownName": "Hout Bay",
            "CountrySubDivision": "Gauteng",
            "Country": "ZA"
        }
    },
    "Links": {
        "Self": "https://api.nedbank.co.za/apimarket/sandbox/open-banking/v3.1/pisp/domestic-payment-consents/01HCY05JA2ENJQ2GQXQH0NSG5S",
        "SCARedirectURL": "https://api.nedbank.co.za/apimarket/sandbox/nboauth/oauth20/authorize?response_type=code&scope=openid%2Cpayments&redirect_uri=https%3A%2F%2Fgoogle.com&client_id=100abe8e-9eb0-4efe-93ac-e8976e0b47bf&intentid=01HCY05JA2ENJQ2GQXQH0NSG5S&itype=payments&state=abc112"
    },
    "Meta": {}
}   
                    
                    

You now have a ConsentID. Take note of it as you are going to use it in the next call.