Payment Initiation Service APIs
Temenos supported Berlin Group payment endpoints are described below:
POST/v1/{payment-service}/{payment-product}
http://127.0.0.1:9089/irf-psd2-BG-PX/api/v1/{payment-service}/{payment-product}
{
"creditorAccount": {
"iban": "FR7614006000000209615304162"
},
"creditorAgent": "CITIARBA",
"creditorName": "Zeus",
"debtorAccount": {
"bban": "101036",
"currency": "USD"
},
"endToEndIdentification": "EBACTOUT",
"instructedAmount": {
"amount": "100",
"currency": "USD"
},
"remittanceInformationUnstructured": "TPS-testing-9"
}
{
"transactionStatus": "RCVD",
"_links": {
"scaStatus": {
"href": "/v1/payments/sepa-credit-transfers/PI201080NQ0MMQFY/authorisations/PI201080NQ0MMQFY-AUTH-1"
},
"scaRedirect": {
"href": "https://www.temenosbank.com/Login"
},
"self": {
"href": "/v1/payments/sepa-credit-transfers/"
},
"status": {
"href": "/v1/payments/sepa-credit-transfers/PI201080NQ0MMQFY/status"
}
},
"paymentId": "PI201080NQ0MMQFY",
"transactionFeeIndicator": false
}
GET/v1/{payment-service}/{payment-product}/{paymentId}
http://127.0.0.1:9089/irf-psd2-BG-PX/api/v1/{payment-service}/{payment-product}/{paymentId}{
"debtorAccount": {
"bban": "101408",
"iban": "GB12DEMO60161300101408",
"currency": "EUR"
},
"creditorAddress": {},
"creditorName": "Zeus",
"transactionStatus": "RCVD",
"creditorAccount": {
"iban": "GB38DEMO60161300106372",
"currency": "GBP"
},
"instructedAmount": {
"amount": "100",
"currency": "GBP"
},
"debtorName": "Harry Crisp",
"remittanceInformationUnstructured": "TPS-testing-9"
} DELETE/v1/{payment-service}/{payment-product}/{paymentId}
http://127.0.0.1:9089/irf-psd2-BG-PX/api/v1/{payment-service}/{payment-product}/{paymentId}{
"transactionStatus": "CANC",
"_links": {
"scaStatus": {
"href": "/v1/payments/sepa-credit-transfers/PI2010806T8D9TMM/cancellation-authorisations/PI2010806T8D9TMM-CANC-1"
},
"self": {
"href": "/v1/payments/sepa-credit-transfers"
},
"status": {
"href": "/v1/payments/sepa-credit-transfers/PI2010806T8D9TMM/status"
}
}
}GET/v1/{payment-service}/{payment-product}/{paymentId}/status
http://127.0.0.1:9089/irf-psd2-BG-PX/api/v1/{payment-service}/{payment-product}/{paymentId}/status
{
"transactionStatus": "ACSP"
} POST/v1/{payment-service}/{payment-product}/{paymentId}/authorisations
http://127.0.0.1:9089/irf-psd2-BG-PX/api/v1/{payment-service}/{payment-product}/{paymentId}/authorisations-
{
"scaStatus": "started",
"_links": {
"scaStatus": {
"href": "/v1/payments/sepa-credit-transfers/PI201080NQ0MMQFY/authorisations/PI201080NQ0MMQFY-AUTH-1"
},
"scaRedirect": {
"href": "https://www.temenosbank.com/Login"
},
"self": {
"href": "/v1/payments/sepa-credit-transfers/PI201080NQ0MMQFY/authorisations"
},
"status": {
"href": "/v1/payments/sepa-credit-transfers/PI201080NQ0MMQFY/status"
}
}
}GET/v1/{payment-service}/{payment-product}/{paymentId}/authorisations
http://127.0.0.1:9089/irf-psd2-BG-PX/api/v1/{payment-service}/{payment-product}/{paymentId}/authorisations
{
"authorisationIds": [
"PI2010806T8DDZ0W-AUTH-1"
]
} GET/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}
http://127.0.0.1:9089/irf-psd2-BG-PX/api/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId
{
"scaStatus": "finalised"
} POST/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations
http://127.0.0.1:9089/irf-psd2-BG-PX/api/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations-
{
"scaStatus": "finalised",
"_links": {
"scaStatus": {
"href": "/v1/payments/sepa-credit-transfers/PI2010806T8DDZ0W/cancellation-authorisations/PI2010806T8DDZ0W-CANC-1"
},
"scaRedirect": {
"href": "https://www.temenosbank.com/Login"
},
"self": {
"href": "/v1/payments/sepa-credit-transfers/PI2010806T8DDZ0W/cancellation-authorisations"
},
"status": {
"href": "/v1/payments/sepa-credit-transfers/PI2010806T8DDZ0W/status"
}
}
}GET/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations
http://127.0.0.1:9089/irf-psd2-BG-PX/api/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations
{
"cancellationIds": [
"PI2010806T8DDZ0W-CANC-1"
]
} GET/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{cancellationId}
http://127.0.0.1:9089/irf-psd2-BG-PX/api/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{cancellationId}{
"scaStatus": "finalised"
} Payment Initiation
A regulated TPP can initiate a payment using the POST/v1/{payment-service}/{payment-product} endpoint. The TPP must be regulated as a PISP to initiate such a request.
A brief overview of the parameters and allowed values are explained below.
{payment-service}
Allowed values under the Berlin Group are:
| payments | Creates single payments. This indicates the need to create a PO record (depending on the bank’s payment system). |
| periodic-payments | Creates repetitive payments. This indicates the need to create a Standing Order (STO) record. |
| bulk-payments | Create bulk payments. This indicates the need to create a FTBM (FT.BULK.MASTER) to record the bulk level details and PO records for the bulk items contained within the Bulk |
{payment-product}
Allowed values under the Berlin Group (v1.3.4) are:
| sepa-credit-transfers | EU SEPA payments. Supported by PO or STO. |
| cross-border-credit-transfers | Cross-border payments. Supported by PO or STO. |
| target-2-payments | Supported by PO. Not supported by STO. |
| instant-sepa-credit-transfers | Supported by PO. Not supported by STO. |
To assist payment initiation for PSD2, the following versions are available.
| Endpoint | Payment System | Temenos Transact Version |
|---|---|---|
| payments | ||
| POST/v1/payments/sepa-credit-transfer | PAYMENT.ORDER
|
PAYMENT.ORDER,PX.API.PAYMENT.INITIATE.SEPA.1.1.0 |
| POST/v1/payments/cross-border-credit-transfer | PAYMENT.ORDER
|
PAYMENT.ORDER,PX.API.PAYMENT.INITIATE.CBCT.1.1.0 |
| POST/v1/payments/target-2-payments | PAYMENT.ORDER
|
PAYMENT.ORDER,PX.API.PAYMENT.INITIATE.TGT.1.1.0 |
| POST/v1/payments/instant-sepa-credit-transfers | PAYMENT.ORDER
|
PAYMENT.ORDER,PX.API.PAYMENT.INITIATE.INSTPAY.1.1.0 |
| periodic-Payments | ||
| POST/v1/periodic-payments/sepa-credit-transfer | STANDING.ORDER
|
STANDING.ORDER,PX.API.SEPA.ONHOLD.1.0.0 |
| POST/v1/periodic-payments/cross-border-credit-transfer | STANDING.ORDER
|
STANDING.ORDER,PX.API.CB.ONHOLD.1.0.0 |
When a payment record is initiated using the above endpoints, a corresponding record is created in PX.PYT.RESOURCE. The ID of the record matches that of the payment record.
Mapping for each API in Temenos Transact is explained below:
When the bank’s payment system is configured as PO and a POST/{payments}/{payment-product} request is created, the system creates a record in PAYMENT.ORDER using the following versions and logic.
For payment order records that have been initiated by a Third-Party Provider (TPP), the Order Initiation Type field in the PAYMENT.ORDER application is set as 'Initiated via TPP'.
The payment for a single SEPA payment is initiated using the above endpoint.
The PO created from this endpoint uses the below version:
- PAYMENT.ORDER,PX.API.PAYMENT.INITIATE.SEPA.1.1.0
The incoming API directly populates this version.
This API creates a PAYMENT.ORDER record in LIVE with a status of ‘AwaitingExtSubmit’.
In parallel, the system additionally creates a PX.PYT.RESOURCE record with a corresponding Payment ID.
The system randomly generates the @ID of the record.
The version fields are given below:
| Provider Field Name (Screen Name) | Underlying Temenos Transact Field |
|---|---|
| debitAccountId | DEBIT.ACCOUNT |
| debitAccountIBAN | DEBIT.ACCOUNT.IBAN |
| creditorName | BENEFICIARY.NAME |
| creditAccountId | BENEFICIARY.ACCOUNT.NO |
| beneficiaryIBAN | BENEFICIARY.IBAN |
| creditorAgentBIC | BENEFICIARY.BIC |
| beneficiaryAddressArea | BEN.POST.ADDRESS.TYPE |
| beneficiarySWIFTAddress | BEN.POST.SWIFT.ADDR |
| beneficiaryAddressLine1 | BEN.POST.ADDR.LINE |
| accountWithBankBIC | ACCT.WITH.BANK.BIC |
| accountWithBankIBAN | ACCT.WITH.BANK.IDENTIFIER |
| accountWithBankClearingCode | ACCT.WITH.BANK.CLEARING.CODE |
| creditorAgentCountryId | ACCT.WITH.BANK.COUNTRY |
| transactionAmount | PAYMENT.AMOUNT |
| paymentCurrency | PAYMENT.CURRENCY |
| executionDate | PAYMENT.EXECUTION.DATE |
| instructionIdReference | INSTRUCTION.ID.REF |
| endToEndReference | END.TO.END.REFERENCE |
| remittanceInformation | REMITTANCE.INFORMATION |
| paymentProduct = SEPA | PAYMENT.ORDER.PRODUCT (defaulted to SEPA in this VERSION) |
| chargeBearer | CHARGE.BEARER |
| cutOffTime | CUT.OFF.TIME |
| PSDCompliant | PSD.COMPLIANT |
| simulatedAt | LAST.TC.SIM.TIME |
| contextName | CONTEXT.NAME |
| contextValue | CONTEXT.VALUE |
| simulationChecked | TC.SIM.CHECKED |
| creditValueDate | CREDIT.VALUE.DATE |
| orderingPaymentFxCustomerRate | ORDERING.PAYMENT.FX.CUST.RATE |
| indicativeRate | INDICATIVE.RATE |
| chargeType | CHARGE.TYPE |
| chargeName | CHARGE.DESCRIPTION |
| chargeAmount | CHARGE.AMOUNT |
| chargeCurrency | CHARGE.CURRENCY |
| chargeAcctAmount | CHARGE.AC.CCY.AMOUNT |
| chargeAccountId | CHARGE.ACCOUNT |
| chargeAccountCurrencyId | CHARGE.ACCOUNT.CCY |
| totalDebitAmount | TOTAL.DEBIT.AMOUNT |
| ultimateDebtor | ULTIMATE.DEBTOR.NAME |
| ultimateCreditor | ULTMATE.CREDITOR.NAME |
| purpose | PAYMENT.PURPOSE |
| structuredCreditorReference | STRUCTURED.CREDITOR.REFERENCE |
| creditorAddress | ULTIMATE.CRED.ADDR.LINE |
The payment for a single Cross-Border payment is initiated using the above endpoint.
The PO created from this endpoint uses the following version:
- PAYMENT.ORDER,PX.API.PAYMENT.INITIATE.CBCT.1.1.0
The incoming API directly populates this version.
This API creates a PAYMENT.ORDER record in LIVE with a status of ‘AwaitingExtSubmit’.
In parallel, the system additionally creates a PX.PYT.RESOURCE record with a corresponding Payment ID.
The system randomly generates the @ID of the record.
The version fields are given below:
| Provider Field Name (Screen Name) | Underlying Temenos Transact Field |
|---|---|
| debitAccountId | DEBIT.ACCOUNT |
| debitAccountIBAN | DEBIT.ACCOUNT.IBAN |
| creditorName | BENFICIARY.NAME |
| creditAccountId | BENEFICIARY.ACCOUNT.NO |
| beneficiaryIBAN | BENEFICIARY.IBAN |
| creditorAgentBIC | BENEFICIARY.BIC |
| beneficiaryAddressArea | BEN.POST.ADDR.TYPE |
| beneficiarySWIFTAddress | BEN.POST.SWIFT.ADDR |
| beneficiaryAddressLine1 | BEN.POST.ADDR.LINE |
| accountWithBankBIC | ACCT.WITH.BANK.BIC |
| accountWithBankIBAN | ACCT.WITH.BANK.IDENTIFIER |
| accountWithBankClearingCode | ACCT.WITH.BANK.CLEARING.CODE |
| creditorAgentCountryId | ACCT.WITH.BANK.COUNTRY |
| transactionAmount | PAYMENT.AMOUNT |
| paymentCurrency | PAYMENT.CURRENCY |
| executionDate | PAYMENT.EXECUTION.DATE |
| instructionIdReference | INSTRUCTION.ID.REF |
| endToEndReference | ED.TO.END.REFERENCE |
| remittanceInformation | REMITTANCE.INFORMATION |
| paymentProduct = INATIONAL | PAYMENT.ORDER.PRODUCT (defaulted to INATIONAL in this version) |
| chargeBearer | CHARGE.BEARER |
| cutOffTime | CUT.OFF.TIME |
| PSDCompliant | PSD.COMPLIANT |
| simulatedAt | LAST.TC.SIM.TIME |
| contextName | CONTEXT.NAME |
| contextValue | CONTEXT.VALUE |
| simulationChecked | TC.SIM.CHECKED |
| creditValueDate | CREDIT.VALUE.DATE |
| orderingPaymentFxCustomerRate | ORDERING.PAYMENT.FX.CUST.RATE |
| indicativeRate | INDICATIVE.RATE |
| chargeType | CHARGE.TYPE |
| chargeName | CHARGE.DESCRIPTION |
| chargeAmount | CHARGE.AMOUNT |
| chargeCurrency | CHARGE.CURRENCY |
| chargeAcctAmount | CHARGE.AMOUNT |
| chargeAccountId | CHARGE.ACCOUNT |
| chargeAccountCurrencyId | CHARGE.ACCOUNT.CCY |
| totalDebitAmount | TOTAL.DEBIT.AMOUNT |
| ultimateDebtor | ULTIMATE.DEBTOR.NAME |
| ultimateCreditor | ULTIMATE.CREDITOR.NAME |
| purpose | PURPOSE |
| structuredCreditorReference | STRUCTURED.CREDITOR.REFERENCE |
| creditorAddress | ULTIMATE.CRED.ADDR.LINE |
Incoming API
PAYMENT.ORDER Record
PX.PYT.RESOURCE Record
The payment for a single Target 2 payment is initiated using the above endpoint.
The PO created from this endpoint uses the below version:
- PAYMENT.ORDER,PX.API.PAYMENT.INITIATE.TGT.1.1.0
The incoming API directly populates this version.
This API creates a PAYMENT.ORDER record in LIVE with a status of ‘AwaitingExtSubmit’.
In parallel, the system additionally creates a PX.PYT.RESOURCE record with a corresponding Payment ID.
The system randomly generates the @ID of the record.
The version fields are given below:
| Provider Field Name (Screen Name) | Underlying Temenos Transact Field |
|---|---|
| debitAccountId | DEBIT.ACCOUNT |
| debitAccountIBAN | DEBIT.ACCOUNT.IBAN |
| creditorName | BENEFICIARY.NAME |
| creditAccountId | BENEFICIARY.ACCOUNT.NO |
| beneficiaryIBAN | BENEFICIARY.IBAN |
| creditorAgentBIC | BENEFICIARY.BIC |
| beneficiaryAddressArea | BEN.POST.ADDR.TYPE |
| beneficiarySWIFTAddress | BEN.POST.SWIFT.ADDR |
| beneficiaryAddressLine | BEN.POST.ADDR.LINE |
| accountWithBankBIC | ACCT.WITH.BANK.BIC |
| accountWithBankIBAN | ACCT.WITH.BANK.IDENTIFIER |
| accountWithBankClearingCode | ACCT.WITH.BANK.CLEARING.CODE |
| creditorAgentCountryId | ACCT.WITH.BANK.COUNTRY |
| transactionAmount | PAYMENT.AMOUNT |
| paymentCurrency | PAYMENT.CURRENCY |
| executionDate | PAYMENT.EXECUTION.DATE |
| instructionIdReference | INSTRUCTION.ID.REF |
| endToEndReference | END.TO.END.REFERENCE |
| remittanceInformation | REMITTANCE.INFORMATION |
| paymentProduct = TARGET2 | PAYMENT.ORDER.PRODUCT (defaulted to TARGET2 in this VERSION) |
| chargeBearer | CHARGE.BEARER |
| cutOffTime | CUT.OFF.TIME |
| PSDCompliant | PSD.COMPLIANT |
| simulatedAt | LAST.TC.SIM.TIME |
| contextName | CONTEXT.NAME |
| contextValue | CONTEXT.VALUE |
| simulationChecked | TC.SIM.CHECKED |
| creditValueDate | CREDIT.VALUE.DATE |
| orderingPaymentFxCustomerRate | ORDERING.PAYMENT.FX.CUST.RATE |
| indicativeRate | INDICATIVE.RATE |
| chargeType | CHARGE.TYPE |
| chargeName | CHARGE.DESCRIPTION |
| chargeAmount | CHARGE.AMOUNT |
| chargeCurrency | CHARGE.CURRENCY |
| chargeAcctAmount | CHARGE.AC.CCY.AMOUNT |
| chargeAccountId | CHARGE.ACCOUNT |
| chargeAccountCurrencyId | CHARGE.ACCOUNT.CCY |
| totalDebitAmount | TOTAL.DEBIT.AMOUNT |
| ultimateDebtor | ULTIMATE.DEBTOR.NAME |
| ultimateCreditor | ULTIMATE.CREDITOR.NAME |
| purpose | PAYMENT.PURPOSE |
| structuredCreditorReference | STRUCTURED.CREDITOR.REFERENCE |
| CreditorAddress | ULTIMATE.CRED.ADDR.LINE |
Incoming API
PAYMENT.ORDER Record
PX.PYT.RESOURCE Record
The payment for a single instant SEPA payment is initiated using the above endpoint.
The PO created from this endpoint uses the below version:
- PAYMENT.ORDER,PX.API.PAYMENT.INITIATE.INSTPAY.1.1.0
The incoming API directly populates this version.
This API creates a PAYMENT.ORDER record in LIVE with a status of ‘AwaitingExtSubmit’.
In parallel, the system additionally creates a PX.PYT.RESOURCE record with a corresponding Payment ID.
The system randomly generates the @ID of the record.
The version fields are given below:
| Provider Field Name (Screen Name) | Underlying Temenos Transact Field |
|---|---|
| debitAccountId | DEBIT.ACCOUNT |
| debitAccountIBAN | DEBIT.ACCOUNT.IBAN |
| creditorName | BENEFICIARY.NAME |
| creditAccountId | BENEFICIARY.ACCOUNT.NO |
| beneficiaryIBAN | BENEFICIARY.IBAN |
| creditorAgentBIC | BENEFICIARY.BIC |
| beneficiaryAddressArea | BEN.POST.ADDR.TYPE |
| beneficiarySWIFTAddress | BEN.POST.SWIFT.ADDR |
| beneficiaryAddressLine | BEN.POST.ADDR.LINE |
| accountWithBankBIC | ACCT.WITH.BANK.BIC |
| accountWithBankIBAN | ACCT.WITH.BANK.IDENTIFIER |
| accountWithBankClearingCode | ACCT.WITH.BANK.CLEARING.CODE |
| creditorAgentCountryId | ACCT.WITH.BANK.COUNTRY |
| transactionAmount | PAYMENT.AMOUNT |
| paymentCurrency | PAYMENT.CURRENCY |
| executionDate | PAYMENT.EXECUTION.DATE |
| instructionIdReference | INSTURCTION.ID.REF |
| endToEndReference | END.TO.END.REFERENCE |
| remittanceInformation | REMITTANCE.INFORMATION |
| paymentProduct | PAYMENT.ORDER.PRODUCT (defaulted to INSTPAY in this VERSION) |
| chargeBearer | CHARGE.BEARER |
| cutOffTime | CUT.OFF.TIME |
| PSDCompliant | PSD.COMPLIANT |
| simulatedAt | LAST.TC.SIM.TIME |
| contextName | CONTEXT.NAME |
| contextValue | CONTEXT.VALUE |
| simulationChecked | TC.SIM.CHECKED |
| creditValueDate | CREDIT.VALUE.DATE |
| orderingPaymentFxCustomerRate | ORDERING.PAYMENT.FX.CUST.RATE |
| indicativeRate | INDICATIVE.RATE |
| chargeType | CHARGE.TYPE |
| chargeName | CHARGE.DESCRIPTION |
| chargeAmount | CHARGE.AMOUNT |
| chargeCurrency | CHARGE.CURRENCY |
| chargeAcctAmount | CHARGE.AC.ACCT.AMOUNT |
| chargeAccountId | CHARGE.ACCOUNT |
| chargeAccountCurrencyId | CHARGE.ACCOUNT.CCY |
| totalDebitAmount | TOTAL.DEBIT.AMOUNT |
| ultimateDebtor | ULTIMATE.DEBTOR.NAME |
| ultimateCreditor | ULTIMATE.CREDITOR.NAME |
| purpose | PAYMENT.PURPOSE |
| structuredCreditorReference | STRUCTURED.CREDITOR.REFERENCE |
| creditorAddress | ULTIMATE.CRED.ADDR.LN |
| local Instrument Code | LOCAL.INST.CODE (defaulted to Instant Credit Transfer In VERSION) |
Incoming API
PAYMENT.ORDER Record
PX.PYT.RESOURCE Record
As part of standard Temenos Transact functionality, on creation of the payment from STANDING.ORDER using PAYMENT.ORDER (depending on the payment system of the bank), the relevant payment record is created.
When the standing order record is created using a PSD2 API, the Created Externally field in the STANDING.ORDER application is set as 'Yes'. This identifies that the payment has been created by an external Third-Party Provider (TPP).
STANDING.ORDER.The payment for a SEPA Standing Order is initiated using the above endpoint.
The SEPA Standing Order created from this endpoint uses the following version.
- STANDING.ORDER,PX.API.SEPA.ONHOLD.1.0.0
The incoming API directly populates this version.
This API creates a STANDING.ORDER record in IHLD.
In parallel, the system additionally creates a PX.PYT.RESOURCE record with a corresponding Payment ID.
The @ID of the Standing Order record is the account number followed by a sequence number.
The version fields are given below:
| Provider Field Name (Screen Name) | Underlying Temenos Transact Field |
|---|---|
| endToEndReference | END.TO.END.REFERENCE |
| BIC | ACCT.WITH.BANK |
| ultimateCreditor | BEN.NAME |
| beneficiaryAddress | BEN.ADDRESS |
| instructionIdReference | PAYMENT.PURPOSE |
| paymentDetail | PAYMENT.DETAILS |
| currentFrequencyDate | CURRENT.FREQUENCY |
| currentEndDate | CURRENT.END.DATE |
| debitCurrency | CURRENCY |
| currentAmountBalance | CURRENT.AMOUNT.BAL |
| beneficiaryOurCharges | BEN.OUR.CHARGES |
| startDate | START.DATE |
| createExternally | CREATED.EXTERNALLY |
| paymentProduct | PO.PRD.NAME |
| dateAdjustment | DATE.ADJUSTMENT |
Incoming API
STANDING.ORDER Record
PX.PYT.RESOURCE Record
The payment of a Cross-Border Standing Order is initiated using the above endpoint.
The Cross-Border Standing Order created from this endpoint uses the following version:
- STANDING.ORDER,PX.API.CB.ONHOLD.1.0.0
The incoming API directly populates this version.
This API creates a STANDING.ORDER record in IHLD.
In parallel, the system additionally creates a PX.PYT.RESOURCE record with a corresponding Payment ID.
The Standing Order @ID of the record is the account number followed by a sequence number.
The version fields are given below:
| Provider Field Name (Screen Name) | Underlying Temenos Transact Field |
|---|---|
| currency | CURRENCY |
| instructedAmount | CURRENT.AMOUNT.BAL |
| currentFrequencyDate | CURRENT.FREQUENCY |
| dateAdjustment | DATE.ADJUSTMENT |
| currentEndDate | CURRENT.END.DATE |
| creditorName | BENEFICIARY |
| beneficiaryAccountId | BEN.ACCT.NO |
| creditorAddress | ORDERING.CUST |
| creditAccountId | CPTY.ACCT.NO |
| creditorAgent | ACCT.WITH.BANK |
| beneficiaryOurCharges | BEN.OUR.CHARGES |
| beneficiaryIBAN | IBAN.BEN |
| paymentDetail | PAYMENT.DETAILS |
| startDate | START.DATE |
| createExternally | CREATED.EXTERNALLY |
| paymentProduct | PO.PRD.NAME |
Incoming API
STANDING.ORDER Record
PX.PYT.RESOURCE Record
When a bulk payment is initiated by a PSD2 payment initiation API, the Originating Source field is populated with the value 'TPP', indicating that the bulk payment record has been initiated by a Third-Party Provider.
Payment Approval
If the user successfully authenticates and confirms the payment through the User Interface, the Payment Submit API (which is an internal API call), authorises the corresponding payment record in Temenos Transact and updates the payment status in PX.PYT.RESOURCE.
The PAYMENT.ORDER,PX.API.SUBMIT.PAYMENT.1.1.0 version is used to authorise the record in PAYMENT.ORDER. The record remains in LIVE and the system updates the status to ACSP in the record in PX.PYT.RESOURCE.
An internal API call from the User Interface (where the user confirms the payment) populates this API directly.
This version does not require input to any field. The incoming endpoint uses the A (Authorise) function. The version is zero authoriser.
Incoming API
PAYMENT.ORDER Record
PX.PYT.RESOURCE Record
The STANDING.ORDER,PX.API.SUBMIT.1.0.0 version is used to authorise the STANDING.ORDER record. The record moves to LIVE and the system updates the status in PX.PYT.RESOURCE to ‘ACWP’.
An internal API call from the User Interface (where the user confirms the payment) populates this API directly.
This version does not require input to any field. The incoming endpoint uses the A (Authorise) function. The version is zero authoriser.
Incoming API
STANDING.ORDER Record
PX.PYT.RESOURCE Record
Payment Deletion API
An underlying Payment Deletion can be performed in two instances when:
- The user cancels the payment in the User Interface.
- The TPP sends the DELETE/v1/{payment-service}/{payment-product}/{paymentId} request.
This API cancels the payment in Temenos Transact and updates the payment accordingly.
The corresponding PX.PYT.RESOURCE record status is updated to ‘CANC’ either by the User Interface (if cancelled using the User Interface) or through an API call when cancelled using the TPP (using the DELETE API).
The actual Payment Record (STANDING.ORDER/PAYMENT.ORDER record) is marked as cancelled accordingly.
| Application | Action in Temenos Transact |
|---|---|
PAYMENT.ORDER
|
Record remains in LIVE Order Status is updated to CANCELLED. Resource record status updated to ‘CANC’. |
STANDING.ORDER
|
Record deleted Resource record status updated to ‘CANC’. |
The system logic related to cancellation of payment records is as follows:
PAYMENT.ORDERcan only be cancelled before the payment is moved to the payment system (when Order Status is PLACED).STANDING.ORDERcan only be cancelled if the payment is in INAU.
- Incoming API is sent from TPP.
- The payment record is deleted.
- The status is updated to CANC in
PX.PYT.RESOURCE.
The PAYMENT.ORDER,PX.API.CANCEL.1.0.0 version is used to cancel the record in PAYMENT.ORDER.
The record remains in LIVE. The system updates the status to CANCELLED and updates the status to ‘CANC’ in the record in PX.PYT.RESOURCE.
The STANDING.ORDER,PX.API.CANCEL.1.0.0 version is used to cancel the record in STANDING.ORDER.
This version does not require input to any field. The incoming endpoint uses the D (Delete) function. The version is zero authoriser. The system deletes the record and updates the status in PX.PYT.RESOURCE to ‘CANC’.
Payment Details API
A regulated TPP can request the details of a payment using the GET/v1/{payment-service}/{payment-product}/{paymentId} request. This call from the TPP retrieves the details of the specified Payment ID.
The system checks whether the TPP making the payment details request is the same as the TPP initiating the payment.
The PX.API.PAYMENT.STATUS.1.1.0 enquiry is used to retrieve the relevant information for records that are created by TPPs for the following applications:
PAYMENT.ORDERSTANDING.ORDER
The {paymentId} parameter holds the ID of the payment. It allows a value of PAYMENT.ORDER and STANDING.ORDER @ID.
API Response
Payment Status API
A regulated TPP checks the status of a payment using the GET/v1/{payment-service}/{payment-product}/{paymentId}/status request. This call from the TPP retrieves the status of the specified payment ID.
The system checks whether the TPP making the status request is the same as the TPP initiating the payment.
The system uses the PX.API.PAYMENT.STATUS.1.1.0 enquiry to retrieve the relevant status information for the following applications for records created by TPPs:
PAYMENT.ORDERSTANDING.ORDER
The {paymentId} parameter holds the ID of the payment. This allows a value of PAYMENT.ORDER and STANDING.ORDER @ID.
API Response
Additional APIs Related to Implicit and Explicit Authorisation Flows
Some additional APIs are included in the Berlin Group v1.3.4 to support authorisations workflows.
In the payment workflow, for each authorisation needed for a payment, a sub-resource is required.
- In the Implicit flow, this happens automatically.
- In the Explicit workflow, the TPP sends a request to create a sub-resource. This is handled using the POST/v1/{payment-service}/{payment-product}/{paymentId}/authorisations endpoint.
The system uses the following version to update the record in PX.PYT.RESOURCE with the sub-resource details:
- PX.PYT.RESOURCE,PX.API.UPDATE.1.0.0
The system creates an AUTH sub-resource.
In the payment workflow, for each authorisation needed to cancel a payment, a sub-resource is required.
- In the Implicit flow, this happens automatically.
- In the Explicit workflow, the TPP sends a request to create a sub-resource. This is handled using the POST/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations endpoint.
The system uses the following version to update the record in PX.PYT.RESOURCE with the sub-resource details:
- PX.PYT.RESOURCE,PX.API.UPDATE.1.0.0
The system creates a CANC sub-resource.
A TPP can request the list of sub-resources linked to a payment, using the following endpoints:
| GET/v1/{payment-service}/{payment-product}/{paymentId}/authorisations | For AUTH sub-resources |
| GET/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations | For CANC sub-resources |
The details are fetched using the following enquiry:
- PZ.API.BERLIN.1.3.SUB.RESOURCES.1.0.0
When a TPP makes a GET/v1/{payment-service}/{payment-product}/{paymentId}/authorisations, the list of AUTH sub-resources are returned for the payment.
Enquiry Response
The system fetches the data using the PZ.API.BERLIN.1.3.SUB.RESOURCES.1.0.0 enquiry.
API Response
When a TPP makes a GET/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations, the list of CANC sub-resources are returned for the payment.
Enquiry
The system fetches the data using the PZ.API.BERLIN.1.3.SUB.RESOURCES.1.0.0 enquiry.
API Response
A TPP can request the details of a given sub-resource. This can be for authorisations or cancellations achieved using the relevant endpoint below:
| GET/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId} | For AUTH sub-resources |
| GET/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations /{cancellationId} | For CANC sub-resources |
The details are fetched using the following enquiry:
- PZ.API.BERLIN.1.3.SUB.RESOURCES.1.0.0
GET/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisatioId}
Enquiry
The data are fetched using the PZ.API.BERLIN.1.3.SUB.RESOURCES.1.0.0 enquiry.
API Response
GET/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{cancellationId}
Enquiry
The data are fetched using the PZ. API.BERLIN.1.3.SUB.RESOURCES.1.0.0 enquiry.
API Response
Bulk Payment APIs
A regulated PISP can initiate a bulk payment using the POST/v1/{payment-service}/{payment-product} endpoint.
The parameters and values are explained below:
- {payment-service} – Denotes bulk payment and is supported by Payment Order.
- {payment-product} – Allowed values for payment order are:
- sepa-credit-transfers
- cross-border-credit-transfers
- target2-payments
- instant-sepa-credit-transfers
- When the TPP requests to initiate a bulk payment through the openbanking gateway, the system creates a record in the
FT.BULK.MASTERapplication, including the payment details sent by the TPP, with an IHLD (created) status. In addition to this, the system creates records inPAYMENT.ORDERwith a LIVE (waitmaster) status for the payments related to the bulk. - After successfully creating the bulk record, the system sends the response with the FTBM ID to the Gateway.
- The system updates the Originating Source field to TPP in the
FT.BULK.MASTERapplication. - The system creates a record in the
PX.PYT.RESOURCEapplication with the same ID as theFT.BULK.MASTERrecord, holding additional payment details, including the Payment Status as RCVD.
To assist the bulk payment initiation for PSD2, the following transact artefacts are available:
| Operation | Service XML | Temenos Transact Artefact | URL |
| createBulkMaster | order-PSD2-payments.service.v2.0.0.xml |
|
v2.0.0/order/PSD2/bulkPayments/ paymentsInitiation |
| createInstantBulkPaymentOrder | order-PSD2-payments.service.v2.0.0.xml | PAYMENT.ORDER,PX.API.BULK.INITIATE.INSTPAY.1.0.0
|
v2.0.0/order/PSD2/bulkPayments/ paymentOrderInitiation/ instantPayment |
| createSepaBulkPaymentOrder | order-PSD2-payments.service.v2.0.0.xml | PAYMENT.ORDER,PX.API.BULK.INITIATE.SEPA.1.0.0
|
v2.0.0/order/PSD2/bulkPayments /paymentOrderInitiation/ SEPA |
| createTgtBulkPaymentOrder | order-PSD2-payments.service.v2.0.0.xml | PAYMENT.ORDER,PX.API.BULK.INITIATE.TGT.1.0.0
|
v2.0.0/order/PSD2/bulkPayments/ paymentOrderInitiation/ target2 |
| createCbctBulkPaymentOrder | order-PSD2-payments.service.v2.0.0.xml | PAYMENT.ORDER,PX.API.BULK.INITIATE.CBCT.1.0.0
|
v2.0.0/order/PSD2/bulkPayments/ paymentOrderInitiation/ crossBorder |
In this topic