Skip to main content

API Integrations

The Payen PACE REST API provides the facility to create individual payments and query their status. This section will describe the steps involved to submit secure requests to the API and handle any responses.

Message Flow


  1. The Merchant submits a POST request with a PmiPaymentCreateReqDTO message body and calculated digest header.
  2. Payen PACE will validate the PmiPaymentCreateReqDTO, ensuring compliance with format, regional, and payment-specific criteria.
  3. The Merchant will receive a PmiPaymentCreateRspDTO, indicating successful payment creation or details of any validation issues.
info

If the payment creation fails validation, the process will end at this point. If any PmiPaymentStatus other than PENDING is returned, then no payment will exist in Payen PACE and no callbacks will be sent.

  1. Once a payment has been successfully created it will undergo Payen PACE workflows and be dispatched to a suitable payment platform.
  2. Payen PACE will reconcile the status of the payment.
  3. Payen PACE will submit a PmiPaymentCallbackReqDTO notification to the Merchant, indicating the final status of the payment.
  4. The merchant should respond with a Http Status 200 (OK) to confirm receipt of the callback. Payen PACE will attempt to send the callback up to 5 times, backing off at increasing time intervals between each callback. After 5 unsuccessful attempts it will stop notifying the callback url.
IMPORTANT

It is possible for a confirmed payment to be returned in the future by the payment platform. In these cases, another notification will be sent to inform the merchant. This can be several days/weeks later.

  1. The payment platform notify Payen PACE that a payment has been returned.
  2. Payen PACE may submit another PmiPaymentCallbackReqDTO notification to the Merchant, indicating the status of the payment has moved from CONFIRMED to RETURNED.
  3. The merchant should respond with a Http Status 200 (OK) to confirm receipt of the callback. Payen PACE will attempt to send the callback up to five times, backing off at increasing time intervals between each callback. After five unsuccessful attempts it will stop notifying the callback url.

Message Security

The Payen PACE API enhances security through a Digest header, employing a cryptographic hash function to verify the integrity of messages during client-server interactions. The Digest header includes a hash value calculated from the message content, providing an added layer of protection against tampering. By implementing the Digest header, PACE ensures that both clients and servers can validate the integrity of transmitted data, fostering a secure and trustworthy communication process.

All requests to the Payen PACE API must contain a valid digest header named X-MERCHANT-DIGEST. All responses will contain a digest calculated in the same way, allowing the merchant to confirm that the responses are genuine and have not been tampered with.

Digest Calculation

The digest is calculated using a secret. This secret is alphanumeric and will be provided by the Payen PACE Platform to each merchant. The secret must never be transmitted in any of the request or response messages.

If the digest is calculated incorrectly, then the message cannot be identified correctly and will result in the request being rejected.

Request Digest Calculation

The following steps detail how to calculate the digest correctly and how it will be transmitted.

  1. Calculate a SHA-512 message digest of the JSON and Base64 encoding (not chunked, using UTF-8).
WARNING

The JSON must be used in the exact form in which it will be sent, if any formatting is applied before transmission, then this is how it must be used in the digest calculation.

  1. Concatenate the output of the Base64 encoded digest from step 1 and the secure merchant secret.
  2. Perform another SHA-512 message digest and Base64 encode (not chunked, using UTF-8) from the concatenation of the previous step.
  3. Set the value of a HTTP header named X-MERCHANT-DIGEST to the Base64 encoded digest value from the previous step.

An example of a digest calculation is as follows – Please note that this following is a working example and can be used to verify that the merchant integration is calculating the digest correctly:

StepDescriptionExample
1Format JSON message{“paymentTarget”:”CANADA_EFT”,”paymentCategory”:”DISBURSEMENT”,”paymentAmount”:1.420000,”paymentCurrency”:”CAD”}
2Get the alpha numeric merchant secretSECRET
3Calculate the SHA-512 digest of JSON message from step 1 and encode the resultant binary data using the base64 algorithmcxsjMfksjRAZ8a81/097FcEr9J0XLel+2v2wmHxz/yFbE0+m6QDCDLCqTqFHJWpShrS2yP0vQ8OZkFF9TOIA1g==
4Concatenate the secret from step 2 to Base64 encoded string from step 3cxsjMfksjRAZ8a81/097FcEr9J0XLel+2v2wmHxz/yFbE0+m6QDCDLCqTqFHJWpShrS2yP0vQ8OZkFF9TOIA1g==SECRET
5Calculate the SHA-512 digest of concatenated string from the step 4 and encode the resultant binary data using the base64 algorithmqeVKJb18vT/ibaayjP5305OtKYo7wApkxJAcypw+dID0iLwG5lP8cVUlpWOAh0EKG9Eu1ByVS+ZGyw1feJgwvw==

Example Java implementation
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;

class DigestExample {
public String calculateDigest(String jsonMessage, String secret) {
StringBuilder digest = new StringBuilder();
digest.append(Base64.encodeBase64String(DigestUtils.sha512(jsonMessage)));
digest.append(secret);
return Base64.encodeBase64String(DigestUtils.sha512(digest.toString()));
}
}

Response Digest

The calculation of the response digest works in the same way as the request digest except that the merchant will need to extract the digest value created by the Payen PACE Platform. The following steps detail how the response digest will be calculated and validated.

  1. Calculate a SHA-512 message digest of the response JSON and Base64 encode (not chunked, using UTF-8).
  2. Concatenate the output of the Base64 encoded digest from step 1 and the secure merchant secret.
  3. Perform another SHA-512 message digest and Base64 encode (not chunked, using UTF-8) from the concatenation of previous step.
  4. Extract the value of the HTTP header named X-MERCHANT-DIGEST and compare the value with that from previous step.

If the response digest calculation fails, please inform the support department immediately with the transaction identifiers.

Create a Payment

Request TypeURLDescription
POSThttps://<baseUrl>/platform/payment/pace/api/v1/payment/createThe baseUrl can be obtained from your Payen support contact

To create a payment, submit a POST request to the REST endpoint https://<baseUrl>/platform/payment/pace/api/v1/payment/create adhering to the PmiPaymentCreateReqDTO structure. The header X-MERCHANT-DIGEST must be set with the digest value calculated for the PmiPaymentCreateReqDTO request body. See Digest Calculation for details on how to calculate this. The create payment method validates the submitted PmiPaymentCreateReqDTO, ensuring compliance with format, regional, and payment-specific criteria. A synchronous response in the form of PmiPaymentCreateRspDTO indicates successful payment creation or details any validation issues.

Following creation, the payment undergoes Payen PACE workflows and is dispatched to a suitable payment platform. Upon determining the final payment status, the API dispatches a PmiPaymentCallbackReqDTO to the designated merchant webhook URL, conveying the conclusive state of the payment transaction.

Header Parameters

KeyValue
Content-Typeapplication/json
Acceptapplication/json
X-MERCHANT-DIGESTcalculated digest string

Request Model

PmiPaymentCreateReqDTO

Example Create Payment Request
{
"paymentMerchant": "PACE_TEST_MERCHANT",
"paymentTarget": "CANADA_EFT",
"paymentCategory": "DISBURSEMENT",
"paymentDate": "2023-11-30",
"paymentAmount": 1.42,
"paymentCurrency": "CAD",
"merchantReference": "fK3az4KmyR9gf73",
"beneficiaryFirstName": "Firstname",
"beneficiaryLastName": "Surname",
"beneficiaryPostcode": "AA11AA",
"beneficiaryDob": "2000-01-01",
"beneficiarySortCode": "1",
"beneficiaryBankCode": "373",
"beneficiaryAccountNumber": "5252271",
"callbackUrl": "https://localhost:43153/asynchronous-notification/fK3az4KmyR9gf73"
}

Return type

PmiPaymentCreateRspDTO

Webhook Callback

PmiPaymentCallbackReqDTO

HTTP Status codes

Status codeDescription
200Success
401Bad Security
422Bad parameter
500Internal Error

Find a Payment

Request TypeURLDescription
POSThttps://<baseUrl>/platform/payment/pace/api/v1/payment/findThe baseUrl can be obtained from your Payen support contact

To find a payment, submit a POST request to the REST endpoint https://<baseUrl>/platform/payment/pace/api/v1/payment/find, adhering to the PmiPaymentFindReqDTO structure. The header X-MERCHANT-DIGEST must be set with the digest value calculated for the PmiPaymentFindReqDTO request body. See Digest Calculation for details on how to calculate this.

Header Parameters

KeyValue
Content-Typeapplication/json
Acceptapplication/json
X-MERCHANT-DIGESTcalculated digest string

Request Model

PmiPaymentFindReqDTO

Example Find Payment Request
{
"paymentMerchant": "PACE_TEST_MERCHANT",
"merchantReference": "fK3az4KmyR9gf73"
}

Return type

PmiPaymentFindRspDTO

HTTP Status codes

Status codeDescription
200Success
401Bad Security
422Bad parameter
500Internal Error

Models

PmiPaymentCreateReqDTO

Create Payment Request - A request that encapsulates all the fields required to make a variety of payments.

info

The exact purpose and validations associated with each field depends on the PmiPaymentTarget. Review the appropriate table for the payment target required.

INTERNATIONAL payments

The table below provides a detailed description of each field, including their format and whether they are mandatory, when used for an INTERNATIONAL payment (i.e. the paymentTarget requested is INTERNATIONAL).

NameTypeDescriptionRequired
paymentMerchantAlphanumeric - max 50 charsMerchant IdentifierYes
paymentTargetPmiPaymentTargetThe payment target method must be 'INTERNATIONAL'Yes
paymentCategoryPmiPaymentCategoryThe payment categoryYes
paymentDateISO 8601 - (YYYY-MM-DD) - present or futureThe payment dateYes
paymentAmountDecimal number - (e.g. 100, 100.50)The payment amount, formatted as whole major denomination amount plus fractional minor denomination (e.g. 35.22)Yes
paymentCurrencyISO 4217 3 digit currency codeThe payment currency as ISO 4217 3 digit currency codeYes
paymentPurposeCodeAlphanumericA country specific purpose codeMandatory for UAE, India, and MYR payments
merchantReferenceAlphanumeric - max 70 charsThe merchant referenceYes
beneficiaryReferenceAlphanumeric - max 70 charsThe beneficiary reference to send with the paymentNo
beneficiaryCompanyNumberAlphanumeric - max 20 charsThe company number. Mandatory for company transfers, must be blank for individual (e-wallet) paymentsMandatory for company transfers, must be blank for individual (e-wallet) payments
beneficiaryCompanyNameAlphanumeric - max 35 charsThe company name. Mandatory for company transfers, must be blank for individual (e-wallet) paymentsMandatory for company transfers, must be blank for individual (e-wallet) payments
beneficiaryFirstNameAlphanumeric - max 35 charsThe beneficiary first nameMandatory for individual payments
beneficiaryLastNameAlphanumeric - max 35 charsThe beneficiary last nameMandatory for individual payments
beneficiaryAddr1Alphanumeric - max 35 charsThe beneficiary address line 1Yes
beneficiaryAddr2Alphanumeric - max 35 charsThe beneficiary address line 2No
beneficiaryCityAlphanumeric - max 50 charsThe beneficiary cityYes
beneficiaryStateOrProvinceAlphanumeric - max 50 charsThe beneficiary stateMandatory if beneficiaryBankCountry is USA, Canada or Mexico
beneficiaryPostcodeAlphanumeric - max 12 charsThe beneficiary postcodeYes
beneficiaryCountryISO 3166 2 digit country codeThe beneficiary country (ISO 3166 2 digit country code)Yes
beneficiaryDobISO 8601 - (YYYY-MM-DD)The beneficiary date of birthMandatory for individual (e-wallet) payments
beneficiaryEmailAddressValid email address (4-255 Chars)The beneficiary email addressNo - Upcoming regulatory changes will require either the email or phone number to be provided
beneficiaryPhoneNumberAllow numbers, spaces, hyphens and a plus sign (+)The beneficiary phone numberNo - Upcoming regulatory changes will require either the email or phone number to be provided
beneficiaryTaxIdAlphanumeric - max 12 charsThe beneficiary Tax IDMandatory for CLP payments
beneficiaryBankAccountTypeChecking, SavingsThe bank account type (Checking, Savings)Mandatory for USD payments to US banks
beneficiarySortCodeAlphanumeric - max 6 charsThe bank sort codeYes
beneficiaryBankCodeAlphanumeric - max 34 charsThe bank codeNo
beneficiaryIbanIBAN formatThe IBAN numberNo, unless beneficiaryAccountNumber is not present
beneficiarySwiftCodeSWIFT formatThe SWIFT codeYes
beneficiaryAccountNumberAlphanumeric - max 34 chars, unless beneficiaryBankCountry is 'NZ' min 9, max 10The bank account numberNo, unless beneficiaryIban is not present
beneficiaryBankCountryISO 3166 2 digit country codeThe bank country (ISO 3166 2 digit country code)Yes
beneficiaryBankNameAlphanumeric - max 35 charsThe bank nameYes
beneficiaryBankAddressAlphanumeric - max 35 charsThe bank addressNo
intermediaryAccountNumberAlphanumeric - max 34 charsThe intermediary bank account numberNo
intermediaryBankCodeAlphanumeric - max 34 charsThe intermediary bank codeNo
intermediaryBankSwiftCodeSWIFT formatThe intermediary bank SWIFT codeNo
intermediaryIbanIBAN formatThe intermediary bank IBAN numberNo
intermediateBankCountryISO 3166 2 digit country codeThe intermediate bank country (ISO 3166 2 digit country code)No, unless intermediaryIban or intermediaryBankSwiftCode are specified
callbackUrlAlphanumeric - must start http:// or https:// - max 208 chars`URL to call when the payment changes stateNo

CANADA EFT payments

The table below provides a detailed description of each field, including their format and whether they are mandatory, when used for an CANADA EFT payment (i.e. the paymentTarget requested is CANADA_EFT).

NameTypeDescriptionRequired
paymentMerchantAlphanumeric - max 50 charsMerchant IdentifierYes
paymentTargetPmiPaymentTargetThe payment target method, must be 'CANADA_EFT'Yes
paymentCategoryPmiPaymentCategoryThe payment categoryYes
paymentDateISO 8601 - (YYYY-MM-DD)The payment dateYes
paymentAmountDecimal number - (e.g. 100, 100.50)The payment amount, formatted as whole major denomination amount plus fractional minor denomination (e.g. 35.22)Yes
paymentCurrencyISO 4217 3 digit currency codeThe payment currency as ISO 4217 3 digit currency code, must be 'CAD'Yes
paymentPurposeCodeAlphanumeric - max 20 charsA country specific purpose code (defaults to 450 if not specified)No
merchantReferenceAlphanumeric - max 70 charsThe merchant referenceYes
beneficiaryCompanyNumberAlphanumeric - max 25 charsThe company number. Mandatory for company transfers, must be blank for individual (e-wallet) paymentsMandatory for company transfers, must be blank for individual payments
beneficiaryCompanyNameAlphanumeric - max 40 charsThe company name. Mandatory for company transfers, must be blank for individual (e-wallet) paymentsMandatory for company transfers, must be blank for individual payments
beneficiaryFirstNameAlphanumeric - max 35 charsThe beneficiary first nameMandatory for individual payments
beneficiaryLastNameAlphanumeric - max 35 charsThe beneficiary last nameMandatory for individual payments
beneficiaryAddr1Alphanumeric - max 50 charsThe beneficiary address line 1Yes
beneficiaryAddr2Alphanumeric - max 50 charsThe beneficiary address line 2No
beneficiaryPostcodeAlphanumeric - max 6 charsThe beneficiary postcodeYes
beneficiaryDobISO 8601 - (YYYY-MM-DD)The beneficiary date Of birthYes
beneficiaryEmailAddressValid email address (4-255 Chars)The beneficiary email addressNo - Upcoming regulatory changes will require either the email or phone number to be provided
beneficiaryPhoneNumberAllow numbers, spaces, hyphens and a plus sign (+)The beneficiary phone numberNo - Upcoming regulatory changes will require either the email or phone number to be provided
beneficiarySortCodeNumbers 0-9 - max 4 digitsThe financial institution codeYes
beneficiaryBankCodeNumbers 0-9 - max 5 digitsThe financial institution branch codeYes
beneficiaryAccountNumberNumbers 0-9 - max 19 digitsThe account numberYes
callbackUrlAlphanumeric - must start http:// or https:// - max 208 chars`URL to call when the payment changes stateNo
tip

Blank fields can be left out of the JSON string. Do not include any field definitions not mentioned in the table in the JSON string.

PmiPaymentCreateRspDTO

Create Payment Response - The table below provides a detailed description of each field returned in the response.

NameTypeDescription
errorsA list of PmiErrorDTOA list of any validation errors relating to the original PmiPaymentCreateReqDTO request
paceTransactionRefAlphanumeric - max 10 charsThe PACE transaction reference for this payment
statusPmiPaymentStatusThe payment status indicates the current status of the payment request

PmiPaymentCallbackReqDTO

Create Payment Callback - The table below provides a detailed description of each field returned in the callback.

NameTypeDescription
paymentMerchantAlphanumeric - max 50 charsMerchant Identifier
paymentTargetPmiPaymentTargetThe payment target describes the high level types of payment
paymentCategoryPmiPaymentCategoryThe payment category describes it’s purpose for regulatory and fee calculations.
paymentDateSO 8601 - (YYYY-MM-DD)Payment date as user input string (ISO format yyyy-mm-dd)
paymentAmountdecimal number - (e.g. 100, 100.50)Payment amount,formatted as whole major denomination amount plus fractional minor denomination (e.g. 35.22)
paymentCurrencyISO 4217 3 digit currency codePayment currency as ISO 4217 3 digit currency code (EUR)
paymentPurposeCodeAlphanumeric - max 255 charsCountry specific purpose code
merchantReferenceAlphanumeric - max 60 chars (e.g. 1234_12345678)
beneficiaryReferenceAlphanumeric - max 70 charsCountry specific purpose code
beneficiaryCompanyNumberAlphanumeric - max 35 charsThe company number. Mandatory for company transfers, must be blank for individual (e-wallet) payments
beneficiaryCompanyNameAlphanumeric - max 35 charsThe company name. Mandatory for company transfers, must be blank for individual (e-wallet) payments
beneficiaryFirstNameAlphanumeric - max 35 charsThe beneficiary first name
beneficiaryLastNameAlphanumeric - max 35 charsThe beneficiary last name
beneficiaryAddr1Alphanumeric - max 35 charsThe beneficiary address line 1
beneficiaryAddr2Alphanumeric - max 35 charsThe beneficiary address line 2
beneficiaryCityAlphanumeric - max 50 charsThe beneficiary city
beneficiaryStateOrProvinceAlphanumeric - max 50 charsThe beneficiary state
beneficiaryPostcodeAlphanumeric - max 12 charsThe beneficiary postcode
beneficiaryCountryISO 3166 2 digit country codeThe beneficiary country (ISO 3166 2 digit country code)
beneficiaryDobISO 8601 - (YYYY-MM-DD)Beneficiary DOB
beneficiaryEmailAddressValid email address (4-255 Chars)The beneficiary email address
beneficiaryPhoneNumberAllow numbers, spaces, hyphens and a plus sign (+)The beneficiary phone number
beneficiaryTaxIdAlphanumeric - max 12 charsBeneficiary Tax ID
beneficiaryBankAccountTypeChecking, SavingsThe bank account type
beneficiarySortCodeAlphanumeric - max 6 charsThe bank sort code
beneficiaryBankCodeAlphanumeric - max 34 charsThe bank code
beneficiaryIbanIBAN formatThe IBAN number
beneficiarySwiftCodeSWIFT formatThe SWIFT code
beneficiaryAccountNumberAlphanumeric - max 34 charsThe bank account number
beneficiaryBankCountryISO 3166 2 digit country codeThe bank country (ISO 3166 2 digit country code)
beneficiaryBankNameAlphanumeric - max 35 charsThe bank name
beneficiaryBankAddressAlphanumeric - max 35 charsThe bank address
intermediaryAccountNumberAlphanumeric - max 34 charsThe intermediary bank account number
intermediaryBankCodeAlphanumeric - max 34 charsThe intermediary bank code
intermediaryBankSwiftCodeSWIFT formatThe intermediary bank SWIFT code
intermediaryIbanIBAN formatThe intermediary bank IBAN number
intermediateBankCountryISO 3166 2 digit country codeThe intermediate bank country (ISO 3166 2 digit country code)
paceTransactionRefAlphanumeric - max 10 charsThe PACE transaction reference for this payment
statusPmiPaymentStatusThe payment status indicates the current status of the payment request

PmiPaymentFindReqDTO

Find Payment Request - A request that encapsulates all the fields required to find a payments. The PmiPaymentFindReqDTO can specify either the pace transaction reference or the merchant transaction reference. If both are specified then the pace transaction reference takes precedence. If neither are specified then a 422 error is returned. The table below provides a detailed description of each field, including their format and whether they are mandatory.

NameTypeDescriptionRequired
paymentMerchantAlphanumeric - max 50 charsMerchant IdentifierYes
paceReferenceAlphanumeric - max 10 charsPace Transaction RefNo, unless merchantReference is not provided
merchantReferenceAlphanumeric - max 60 chars (e.g. 1234_12345678)Merchant Transaction RefNo, unless paceReference is not provided

PmiPaymentFindRspDTO

Find Payment Response - The table below provides a detailed description of each field returned in the response.

NameTypeDescription
paymentMerchantAlphanumeric - max 50 charsMerchant Identifier
paymentTargetPmiPaymentTargetThe payment target describes the high level types of payment
paymentCategoryPmiPaymentCategoryThe payment category describes it’s purpose for regulatory and fee calculations.
paymentDateISO 8601 - (YYYY-MM-DD)Payment date as user input string (ISO format yyyy-mm-dd)
paymentAmountdecimal number - (e.g. 100, 100.50)Payment amount, formatted as whole major denomination amount plus fractional minor denomination (e.g. 35.22)
paymentCurrencyISO 4217 3 digit currency codePayment currency as ISO 4217 3 digit currency code (EUR)
paymentPurposeCodeAlphanumeric - max 255 charsCountry specific purpose code
merchantReferenceAlphanumeric - max 60 chars (e.g. 1234_12345678)The merchant reference
beneficiaryReferenceAlphanumeric - max 70 charsThe beneficiary reference to send with the payment
beneficiaryCompanyNumberAlphanumeric - max 35 charsThe company number. Mandatory for company transfers, must be blank for individual (e-wallet) payments
beneficiaryCompanyNameAlphanumeric - max 35 charsThe company name. Mandatory for company transfers, must be blank for individual (e-wallet) payments
beneficiaryFirstNameAlphanumeric - max 35 charsThe beneficiary first name
beneficiaryLastNameAlphanumeric - max 35 charsThe beneficiary last name
beneficiaryAddr1Alphanumeric - max 35 charsThe beneficiary address line 1
beneficiaryAddr2Alphanumeric - max 35 charsThe beneficiary address line 2
beneficiaryCityAlphanumeric - max 50 charsThe beneficiary city
beneficiaryStateOrProvinceAlphanumeric - max 50 charsThe beneficiary state
beneficiaryPostcodeAlphanumeric - max 12 charsThe beneficiary postcode
beneficiaryCountryISO 3166 2 digit country codeThe beneficiary country (ISO 3166 2 digit country code)
beneficiaryDobISO 8601 - (YYYY-MM-DD)Beneficiary DOB
beneficiaryEmailAddressValid email address (4-255 Chars)The beneficiary email address
beneficiaryPhoneNumberAllow numbers, spaces, hyphens and a plus sign (+)The beneficiary phone number
beneficiaryTaxIdAlphanumeric - max 12 charsBeneficiary Tax ID
beneficiaryBankAccountTypeChecking, SavingsThe bank account type (Checking/Savings - Mandatory for USD payments to US banks)
beneficiarySortCodeAlphanumeric - max 6 charsThe bank sort code
beneficiaryBankCodeAlphanumeric - max 34 charsThe bank code
beneficiaryIbanIBAN formatThe IBAN number
beneficiarySwiftCodeSWIFT formatThe SWIFT code
beneficiaryAccountNumberAlphanumeric - max 34 charsThe bank account number
beneficiaryBankCountryISO 3166 2 digit country codeThe bank country (ISO 3166 2 digit country code)
beneficiaryBankNameAlphanumeric - max 35 charsThe bank name
beneficiaryBankAddressAlphanumeric - max 35 charsThe bank address
intermediaryAccountNumberAlphanumeric - max 34 charsThe intermediary bank account number
intermediaryBankCodeAlphanumeric - max 34 charsThe intermediary bank code
intermediaryBankSwiftCodeSWIFT formatThe intermediary bank SWIFT code
intermediaryIbanIBAN formatThe intermediary bank IBAN number
intermediateBankCountryISO 3166 2 digit country codeThe intermediate bank country (ISO 3166 2 digit country code)
paceTransactionRefAlphanumeric - max 10 charsThe PACE transaction reference for this payment
statusPmiPaymentStatusThe payment status indicates the current status of the payment request

PmiPaymentTarget

Payment Target - The payment target describes the high level types of payment, impacting validation and routing to payment platforms.

ValueDescription
INTERNATIONALAny payment that will be settled over SWIFT or SEPA
CANADA_EFTA Canadian EFT payment

PmiPaymentCategory

Payment Category - The payment category describes its purpose for regulatory and fee calculations.

ValueDescription
DISBURSEMENTA general payment to an individual, typically a business to customer payment (B2C)
AFFILIATEA business to business payment (B2B)
MARKETINGA marketing payment
DIVIDENDA dividend payment
FUNDINGA payment to fund your account for subsequent outbound payments

PmiPaymentStatus

Payment Status - The payment status indicates the current status of the payment request

ValueDescription
PENDINGThe payment has been created and is pending a response of final status from the payment platform
REJECTEDThe payment has been rejected by the payment platform
CONFIRMEDThe payment has been successfully paid and confirmed by the payment platform
RETURNEDThe payment has been returned by the payment platform

PmiErrorDTO

Error Detail - An message payload describing specific errors

NameTypeDescription
errorCodeStringA validation error code listed below Error Codes
errorDescriptionStringA description of the error

Error Codes

If a request to the Payen PACE API fails validation checks, the response will contain one or more error codes in the errors part of the response. The codes take the form P{A|B|C}nnn

where

  • A = Missing value
  • B = Invalid value
  • C = Invalid format
  • nnn = Indicates the field that has failed validation.

For example, an error code of PA009 indicates the beneficiaryFirstName is missing

Validation CodefieldMissing Value CodeInvalid Value CodeInvalid Format Code
001paymentDatePA001PB001PC001
002paymentAmountPA002PB002PC002
003paymentCurrencyPA003PB003PC003
004paymentPurposeCodePA004PB004PC004
005merchantReferencePA005PB005PC005
006beneficiaryReferencePA006PB006PC006
007beneficiaryCompanyNumberPA007PB007PC007
008beneficiaryCompanyNamePA008PB008PC008
009beneficiaryFirstNamePA009PB009PC009
010beneficiaryLastNamePA010PB010PC010
011beneficiaryAddr1PA011PB011PC011
012beneficiaryAddr2PA012PB012PC012
013beneficiaryCityPA013PB013PC013
014beneficiaryStateOrProvincePA014PB014PC014
015beneficiaryPostcodePA015PB015PC015
016beneficiaryDobPA016PB016PC016
017beneficiaryTaxIdPA017PB017PC017
018beneficiaryCountryPA018PB018PC018
019beneficiaryBankAccountTypePA019PB019PC019
020beneficiaryIbanPA020PB020PC020
021beneficiarySwiftCodePA021PB021PC021
022beneficiaryBankCodePA022PB022PC022
023beneficiarySortCodePA023PB023PC023
024beneficiaryAccountNumberPA024PB024PC024
025beneficiaryBankCountryPA025PB025PC025
026beneficiaryBankNamePA026PB026PC026
027beneficiaryBankAddressPA027PB027PC027
038callbackUrlPA038PB038PC038
039beneficiaryEmailAddressPA039PB039PC039
040beneficiaryPhoneNumberPA040PB040PC040
041intermediaryIbanPA041PB041PC041
042intermediaryBankSwiftCodePA042PB042PC042
043intermediaryAccountNumberPA043PB043PC043
044intermediaryBankCodePA044PB044PC044
045intermediateBankCountryPA045PB045PC045

Testing Trigger Values

The sandbox environment uses trigger values to simulate specific scenarios during testing. These scenarios enable testers to receive a callback with an expected status.

The following table describes the fields on the create payment request and the trigger values to simulate the payment moving to specific states.

IMPORTANT

Where more than one trigger field is listed for a scenario, all listed fields must be set to the given values to ensure the trigger is activated.

For example, scenario 2 lists the fields paymentCurrency and paymentAmount. These must be set to XXX and 9.99 respectively to activate the trigger.

ScenarioDescriptionFieldsValues
1Set the payment status to CONFIRMED.beneficiaryFirstNameCONFIRMED
2Set the payment status to CONFIRMED.paymentAmount
paymentCurrency
9.99
XXX
3Set the payment status to REJECTED.beneficiaryFirstNameREJECTED
4Set the payment status to REJECTED.paymentAmount
paymentCurrency
9.98
XXX
5Set the payment status to RETURNED.beneficiaryFirstNameRETURNED
6Set the payment status to RETURNED.paymentAmount
paymentCurrency
9.97
XXX