Skip to content

SAP Treasury & Risk Management

SAP TRM connects to DPX through the Integration API via SAP Integration Suite (formerly Cloud Platform Integration) or BTP. SAP already emits ISO 20022 pain.001 from payment programs — the Integration API accepts it without transformation.

Base URL: https://integration.untitledfinancial.com


SAP payment program (F110 / manual payment order)
│ ISO 20022 pain.001 (via SAP Integration Suite / BTP)
POST https://integration.untitledfinancial.com/payments/initiate
├── VoP check → Compliance Oracle (automatic)
├── FX rate → Stability Oracle (automatic)
└── Settle → DPX rail (USDC on Base)
pacs.002 response + webhook to SAP (settlement confirmation write-back)

Option A — SAP Integration Suite (iFlow)

Section titled “Option A — SAP Integration Suite (iFlow)”

Create an iFlow in SAP Integration Suite that:

  1. Subscribes to SAP payment events (F110 batch or individual payment orders)
  2. Transforms the payment message to pain.001 JSON (or passes it through if already JSON)
  3. POSTs to https://integration.untitledfinancial.com/payments/initiate with your bearer token
  4. Receives the pacs.002 response and writes the txHash and status back to SAP

Outbound HTTP adapter configuration:

FieldValue
URLhttps://integration.untitledfinancial.com/payments/initiate
MethodPOST
AuthenticationOAuth2 / Bearer token
Token headerAuthorization: Bearer <institution-key>
Content-Typeapplication/json

Use the SAP BTP REST service binding with a custom HTTP destination pointing to https://integration.untitledfinancial.com.

Option C — Direct HTTP (smaller deployments)

Section titled “Option C — Direct HTTP (smaller deployments)”

SAP’s SMICM + HTTP client (function module HTTP_POST) can call the Integration API directly from ABAP without middleware.


SAP / pain.001 fieldIntegration API field
EndToEndId or SAP payment referencetmsReference
InstdAmt.valueamount
InstdAmt.Ccycurrency
Cdtr.Nmcreditor.name
CdtrAgt.FinInstnId.LEI or Cdtr.Id.OrgId.LEIcreditor.lei
Beneficiary wallet (custom field or CdtrAcct.Id.Othr)creditor.walletAddress
Dbtr.Id.OrgId.LEIdebtor.lei
RmtInf.UstrdremittanceInfo
ReqdExctnDt.DtrequestedExecutionDate

Configure a callback URL pointing to your SAP inbound webhook endpoint. DPX POSTs the settlement result on completion:

{
"dpxPaymentId": "a4f2c8d1-...",
"tmsReference": "SAP-F110-20260514-001",
"status": "SETTLED",
"settlement": {
"txHash": "0x7f3a...",
"amount": "250000.00",
"exchangeRate": "1.0842",
"fee": "337.50"
},
"compliance": {
"fatfR16Compliant": true,
"regulatoryNote": "FATF R16 VoP satisfied — settlement compliant."
}
}

Store txHash in the SAP payment document as the external bank reference for audit trail purposes.


The compliance.fatfR16Compliant flag confirms that VoP was satisfied for the payment. Store this alongside the SAP document to satisfy Travel Rule audit requirements without any additional compliance workflow.


Terminal window
curl -X POST https://integration.untitledfinancial.com/payments/initiate \
-H "Authorization: Bearer <key>" \
-H "Content-Type: application/json" \
-d '{
"tmsReference": "TEST-SAP-F110-001",
"amount": "250000.00",
"currency": "EUR",
"settlementAsset": "USDC",
"creditor": {
"name": "Deutsche Bank AG",
"lei": "7LTWFZYICNSX8D621K86",
"walletAddress": "0xabc..."
},
"debtor": {
"name": "Test Company",
"lei": "549300TRUWO2CD2G5692",
"walletAddress": "0xdef..."
}
}'

Integration API
Webhook Events