Outgoing Transfers

Outgoing Transfers are the transactions that decrease the balance of the related account.

The owner of an outgoing transfer can be one of the following:

1. Client : When creating an outgoing transfer, if the workflow code is client direct, the owner of this transfer is the client.

2. Organization : When creating an outgoing transfer, if the workflow code is organization direct, the owner of this transfer is the organization.

Actual & Virtual Transfer Relation

Client transfers created on accounts from service providers with Virtual Account or Shared Pool Account models need to be also created on the Client Money Account. Once client transfers is updated as processing, it means client balance is reserved for this transfer and the next step is reserving the same amount in the organization account. Therefore, system creates a transfer on the Client Money Account to reserve that balance. These 2 transfers are released to service provider only once, so they have a single representation on the service provider side.

These 2 transfers are linked to each other over related transaction field on the transaction data:

...
"relatedTransaction": {
  "nature": "actual/virtual",
  "id": "00000000-0000-0000-0000-000000000000"
},
...

relatedTransaction is optional, so nature is only present if the underlying account model requires it and id is only present when both transactions are created successfully.

Please refer to Flow of Funds section for more details on this subject:

Outgoing Transfer Types

There are two types of outgoing transfers. The transferType field reflects these types:
1. Internal transfers: You can create an internal transfer between IF accounts. When an internal outgoing transfer that has no connection in the service provider is created, the IF Platform creates an incoming transfer on the receiver account automatically. incomingTransferId reflects the created incoming transfer.
2. External transfers: External transfers are the transactions submitted to a Service Provider to be sent via an external payment scheme such as SWIFT or SEPA. The transferType field includes the payment scheme for external transfers.

Relation with an Incoming Transfer

Below diagram explains when incomingTransferId of an outgoing transfer will be present to expose the relationship between them.

Outgoing Transfer Schemes

Outgoing transfer schemes may vary depending on the account, country and, in some cases, the bank of the beneficiary’s bank account. The IF Platform offers an API to list all available transfer schemes for the given account and country.

1. Client Transfer Schemes: The below end-point is called to be able to view the client transfer schemes:

GET /accounts/{{accountId}}/outgoing-transfer-schemes/{{destinationCountry}}

There are two path parameters that this endpoint expects:

  1. accountId: source account of transfer
  2. destinationCountry: country of the beneficiary bank account (capital ISO-2 country codes i.e. GB)
{
  "workflow": {},
  "data": {
    "transferSchemes": [
      "faster-payments",
      "chaps"
    ]
  },
  "connect": {},
  "metadata": {}
}

2. Organization Transfer Schemes: The below end-point is called to be able to view the organization transfer schemes:

GET /transaction-accounts/{{transactionAccountId}}/outgoing-transfer-schemes/{{destinationCountry}}

There are two path parameters that this endpoint expects:

  1. transactionAccountId: source transaction account of transfer
  2. destinationCountry: country of the beneficiary bank account (capital ISO-2 country codes i.e. GB)
{
  "workflow": {},
  "data": {
    "transferSchemes": [
      "faster-payments",
      "chaps"
    ]
  },
  "connect": {},
  "metadata": {}
}

Transfer Reasons

There are predefined reasons by country for outgoing transfers. The ID of a selected reason must be provided on creation. Therefore, there is an endpoint for querying available transfer reasons by country.

1. Client Transfer Reason: The below end-point is called to be able to view the client transfer reason:

GET /accounts/{accountId}/transfer-reasons/{{country}}

{
  "workflow": {},
  "data": {
    "transferReasons": [{
      "id": "00000000-0000-0000-0000-000000000000",
      "description": "Payment for goods and services"
    }]
  },
  "connect": {},
  "metadata": {}
}

2. Organization Transfer Reason: The below end-point is called to be able to view the organization transfer reason:

GET /transaction-accounts/{transactionAccountId}/transfer-reasons/{{country}}

{
  "workflow": {},
  "data": {
    "transferReasons": [{
      "id": "00000000-0000-0000-0000-000000000000",
      "description": "Direct capital investment"
    }]
  },
  "connect": {},
  "metadata": {}
}

GET /transfer-reasons/{{country}} - This endpoint is DEPRECATED

{
  "workflow": {},
  "data": {
    "transferReasons": [{
      "id": "00000000-0000-0000-0000-000000000000",
      "description": "Payment for goods and services"
    }]
  },
  "connect": {},
  "metadata": {}
}

Date Metadata

Each Outgoing Transfer is created for release first available time/date if there is no predefined scheduling set. These endpoints return the first available date, cutoff time for that date and unavailable dates. This information can, subsequently on creation, be used to create a scheduled outgoing transfer for a future date.

1. Date Metadata For Client Transfer: The below end-point is called to be able to view the client date metadata:

GET /accounts/{{accountId}}/outgoing-transfer-date-metadata/{{transferScope}}/{{transferScheme}}

{
  "workflow": {},
  "data": {
    "nextAvailableDate": "2020-01-01",
    "nextCutoffDateTime": "2020-01-01T10:00:00",
    "unavailableDates": [
      "2020-01-04",
      "2020-01-05"
    ]
  },
  "connect": {},
  "metadata": {}
}

2. Date Metadata For Organization Transfer: The below end-point is called to be able to view the organization date metadata:

GET /transaction-accounts/{{transactionAccountId}}/outgoing-transfer-date-metadata/{{transferScope}}/{{transferScheme}}

{
    "workflow": {},
    "data": {
        "nextAvailableDate": "2024-08-08",
        "nextCutoffDateTime": "2024-08-08T14:00:00",
        "unavailableDates": [
            "2024-08-10",
            "2024-08-11",
            "2024-09-07"
        ]
    },
    "connect": {},
    "metadata": {}
}

Create Outgoing Transfer

POST /outgoing-transfers
The process of creating an Outgoing Transfer is executed using two different workflows. These workflows can be as follows:

  • Client Direct: To create an Outgoing Transfer whose owner is the Client, the workflow code must be client.
  • Organization Direct: To create an Outgoing Transfer whose owner is Organization, the workflow code must be organization. The clientId field must be empty when the workflow code is organization.

This endpoint can be also called in the ‘dry run’ mode. In the ‘dry run’ mode, a Transfer is not actually created, it is merely validated and the associated fee is calculated. In this mode, both validation and pricing operations can be performed in Client Transfers, while only validation operations can be performed in Organization transfers. Therefore you can call this endpoint to learn about the effects and to gain certainty before creating the transfer. The dryRun parameter is optional and defaults to false.

In addition, the 'transferDate' field is not required for each outgoing transfer request. If this field is not included, the transaction will be scheduled for the next available time/date. This field should only be utilised to schedule the transfer for a specific date.

The contents of the destination field are polymorphic. It depends on whether the desired transaction is internal or external. Examples for both cases:

As seen below, the destination type of an Internal Outgoing transfer can be client account or transaction account :

"scope": "internal",
"scheme": null,
"destination": {
  "type": "client-account",
  "accountId": "00000000-0000-0000-0000-000000000000"
}
"scope": "internal",
"scheme": null,
"destination": {
  "type": "transaction-account",
  "transactionAccountId": "00000000-0000-0000-0000-000000000000"
}
"scope": "external",
"scheme": "faster-payments",
"destination": {
  "type": "beneficiary-bank-account",
  "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
}

1. Client Direct: A Transfer is created on the Service Provider to which the relevant source account is connected.

Examples of using dry run mode in client-direct and organization-direct workflows can be seen below:

{
    "workflow": {
        "code": "client.direct",
        "dryRun": true,
        "pricing": {
            "sourcingMethod": "explicit",
            "enabled": true,
            "chargingType": "fee",
            "chargingMethod": "on-source"
        }
    },
    "data": {
        "outgoingTransfer": {
            "clientId": "00000000-0000-0000-0000-000000000000",
            "transferDate": "2021-04-19",
            "currency": "GBP",
            "amount": 100.00,
            "scope": "external",
            "scheme": "faster-payments",
            "description": "API dryRun",
            "transferReasonId": "00000000-0000-0000-0000-000000000000",
            "transferCustomReason": null,
            "source": {
                "type": "client-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "destination": {
                "type": "beneficiary-bank-account",
                "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
            },
            "schemeAttributes": {
                "sender-account-number": "",
                "trade-order-id": "",
                "trade-time": "",
                "trade-currency": "",
                "trade-amount": "",
                "trade-name": "",
                "trade-count": "",
                "goods-carrier": "",
                "service-detail": "",
                "service-time": ""
            }
        },
        "pricing": {
            "type": "ratio",
            "ratio": "0.05",
            "boundaryCurrency": "GBP",
            "minimumAmount": 12.00,
            "maximumAmount": 100000.00
        }
    },
    "connect": {},
    "metadata": {}
}
{
    "workflow": {
        "code": "client.direct",
        "dryRun": true,
        "pricing": {
            "sourcingMethod": "explicit",
            "enabled": true,
            "chargingType": "fee",
            "chargingMethod": "on-source"
        }
    },
    "data": {
        "outgoingTransfer": {
            "clientId": "00000000-0000-0000-0000-000000000000",
            "transferDate": "2021-04-19",
            "currency": "GBP",
            "amount": 100.00,
            "feeCurrency": "GBP",
            "feeAmount": 12.00,
            "description": "API dryRun",
            "transferReasonId": "00000000-0000-0000-0000-000000000000",
            "originalTransferDate": "2021-04-19",
            "rollCount": 0,
            "transferCustomReason": null,
            "totalAmount": 112.00,
            "ownerType": "client",
            "owner": "client",
            "destination": {
                "type": "beneficiary-bank-account",
                "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
            },
            "source": {
                "type": "client-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "relatedTransaction": {
                "nature": null,
                "id": null
            },
        }
    },
    "connect": {},
    "metadata": {}
}
{
    "workflow": {
        "code": "client.direct",
        "dryRun": true,
        "pricing": {
            "sourcingMethod": "implicit"
        }
    },
    "data": {
        "outgoingTransfer": {
            "clientId": "00000000-0000-0000-0000-000000000000",
            "transferDate": "2021-04-19",
            "currency": "GBP",
            "amount": 100.00,
            "scope": "external",
            "scheme": "faster-payments",
            "description": "API dryRun",
            "transferReasonId": "00000000-0000-0000-0000-000000000000",
            "transferCustomReason": null,
            "source": {
                "type": "client-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "destination": {
                "type": "beneficiary-bank-account",
                "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
            }
        }
    },
    "connect": {},
    "metadata": {}
}
{
    "workflow": {
        "code": "organization.direct",
        "dryRun": true
        
    },
    "data": {
        "outgoingTransfer": {
            "transferDate": "2024-07-11",
            "currency": "GBP",
            "amount": 19.91,
            "scope": "external",
            "scheme": "faster-payments",
            "description": "API test",
            "transferReasonId": "00000000-0000-0000-0000-000000000000",
            "transferCustomReason": null,
            "source": {
                "type": "transaction-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "destination": {
                "type": "beneficiary-bank-account",
                "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
            }
        }
    },
    "connect": {},
    "metadata": {}
}
{
    "workflow": {
        "code": "organization.direct",
        "dryRun": true
    },
    "data": {
        "outgoingTransfer": {
            "transferDate": "2024-07-11",
            "currency": "GBP",
            "amount": 19.91,
            "description": "API test",
            "transferCustomReason": null,
            "originalTransferDate": "2024-07-11",
            "rollCount": 0,
            "transferReasonId": "00000000-0000-0000-0000-000000000000",
            "scheme": "faster-payments",
            "scope": "external",
            "destination": {
                "type": "beneficiary-bank-account",
                "beneficiaryId": "00000000-0000-0000-0000-000000000000",
                "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
            },
            "source": {
                "type": "transaction-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "relatedTransaction": {
                "nature": null,
                "id": null
            },
            "beneficiary": {
                "fullName": "Beneficiary Connection",
                "identity": {
                    "type": "corporate",
                    "country": "GB",
                    "identifications": null,
                    "legalName": "Beneficiary Connection",
                    "incorporationDate": null,
                    "corporationType": null
                },
                "address": {
                    "country": "GB",
                    "postalCode": "123456",
                    "city": "London",
                    "street": "test",
                    "houseNumber": "34",
                    "refinement": "43"
                },
                "account": {
                    "accountHolderName": null,
                    "country": "GB",
                    "currency": "GBP",
                    "routingCodes": {
                        "sort-code": "040003"
                    },
                    "accountNumber": "60838990",
                    "iban": null,
                    "ledgerNumber": null,
                    "alias": "GBP account"
                },
                "title": "Beneficiary Connection"
            },
            "ownerType": "tenant",
            "owner": "organization"
        }
    },
    "connect": {},
    "metadata": {}
}

Create Transfer example for Client Direct:

{
  "workflow": {
    "code": "client.direct",
    "dryRun": false,
    "pricing": {
      "sourcingMethod": "explicit",
      "enabled": true,
      "chargingType": "fee",
      "chargingMethod": "on-source"
    }
  },
  "data": {
    "outgoingTransfer": {
      "clientId": "00000000-0000-0000-0000-000000000000",
      "transferDate": "2021-04-19",
      "currency": "GBP",
      "amount": 100,
      "scope": "external",
      "scheme": "faster-payments",
      "description": "freetext",
      "transferReasonId": "00000000-0000-0000-0000-000000000000",
      "transferCustomReason": null,
      "source": {
        "type": "client-account",
        "accountId": "00000000-0000-0000-0000-000000000000"
      },
      "destination": {
        "type": "beneficiary-bank-account",
        "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
      },
      "schemeAttributes": {}
    },
    "pricing": {
      "type": "ratio",
      "ratio": "0.05",
      "boundaryCurrency": "GBP",
      "minimumAmount": 12,
      "maximumAmount": 100000
    }
  },
  "connect": {},
  "metadata": {}
}
{
   "workflow":{
      "code":"client.direct",
      "dryRun":false,
      "pricing":{
         "sourcingMethod":"explicit",
         "enabled":true,
         "chargingType":"fee",
         "chargingMethod":"on-source"
      }
   },
   "data":{
      "outgoingTransfer":{
         "id":"00000000-0000-0000-0000-000000000000",
         "transactionNumber":"20210419-000000",
         "clientId":"00000000-0000-0000-0000-000000000000",
         "transferDate":"2021-04-19",
         "status":"pending",
         "currency":"GBP",
         "amount":100,
         "feeCurrency":"GBP",
         "feeAmount":12,
         "description":"freetext",
         "incomingTransferId": null,
         "transferReasonId":"00000000-0000-0000-0000-000000000000",
         "transferCustomReason":null,
         "originalTransferDate":"2021-04-19",
         "cutOffDateTime":"2021-04-19T09:00:00",
         "rollCount":0,
         "schemeAttributes": null,
         "returned": false,
         "triggerType": "manual",
         "totalAmount":112,
         "ownerType":"client",
         "owner":"client",
         "attributes":null,
         "scheme":"sepa",
         "scope":"external",
         "destination":{
            "type":"beneficiary-bank-account",
            "beneficiaryBankAccountId":"00000000-0000-0000-0000-000000000000"
         },
         "source":{
            "type":"client-account",
            "accountId":"00000000-0000-0000-0000-000000000000"
         },
         "requirementConfiguration":{
            "transferDateStatus":"fulfilled",
            "complianceCheckStatus":"not-checked",
            "balanceCheckStatus":"not-checked",
            "authorizationStatus":"not-required"
         },
         "relatedTransaction": {
           "nature": null,
           "id": null
         },
         "beneficiary":{
            "fullName":"Mehmet Ahmet",
            "identity":{
               "type":"individual",
               "country":null,
               "identifications":null,
               "givenName":"Mehmet",
               "familyName":"Ahmet",
               "birthDate":"2002-07-03"
            },
            "address":{
               "country":"GB",
               "postalCode":"32456",
               "city":"London",
               "street":"12",
               "houseNumber":"45"
            },
            "account":{
               "accountHolderName":null,
               "country":"GB",
               "currency":"GBP",
               "routingCodes":{
                  "sort-code":"123456"
               },
               "accountNumber":"12345674",
               "iban":null,
               "ledgerNumber":null,
               "alias":"Mehmet Ahmet GBP Account"
            },
            "title":"Mehmet Ahmet"
         }
      }
   },
   "connect":{
      
   },
   "metadata":{
      
   }
}
{
  "workflow": {
    "code": "client.direct",
    "dryRun": false,
    "pricing": {
      "sourcingMethod": "explicit",
      "enabled": true,
      "chargingType": "fee",
      "chargingMethod": "on-source"
    }
  },
  "data": {
    "outgoingTransfer": {
      "clientId": "00000000-0000-0000-0000-000000000000",
      "transferDate": "2021-04-19",
      "currency": "GBP",
      "amount": 100,
      "scope": "internal",
      "scheme": null,
      "description": "freetext",
      "transferReasonId": "00000000-0000-0000-0000-000000000000",
      "transferCustomReason": null,
      "source": {
        "type": "client-account",
        "accountId": "00000000-0000-0000-0000-000000000000"
      },
      "destination": {
        "type": "client-account",
        "accountId": "00000000-0000-0000-0000-000000000000"
      }
    },
    "pricing": {
      "type": "fixed",
      "amount": "0.50",
      "currency": "GBP"
    }
  },
  "connect": {},
  "metadata": {}
}
{
  "workflow": {
    "code": "client.direct",
    "dryRun": false,
    "pricing": {
      "sourcingMethod": "implicit"
    }
  },
  "data": {
    "outgoingTransfer": {
      "clientId": "00000000-0000-0000-0000-000000000000",
      "transferDate": "2021-04-19",
      "currency": "GBP",
      "amount": 100,
      "scope": "external",
      "scheme": "faster-payments",
      "description": "freetext",
      "transferReasonId": "00000000-0000-0000-0000-000000000000",
      "transferCustomReason": null,
      "source": {
        "type": "client-account",
        "accountId": "00000000-0000-0000-0000-000000000000"
      },
      "destination": {
        "type": "beneficiary-bank-account",
        "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
      }
    }
  },
  "connect": {},
  "metadata": {}
}

Create Transfer example for Organization Direct:

{
    "workflow": {
        "code": "organization.direct",
        "dryRun": false
        
    },
    "data": {
        "outgoingTransfer": {
            "transferDate": "2024-07-11",
            "currency": "GBP",
            "amount": 19.91,
            "scope": "external",
            "scheme": "faster-payments",
            "description": "API test",
            "transferReasonId": "00000000-0000-0000-0000-0000000000007",
            "transferCustomReason": null,
            "source": {
                "type": "transaction-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "destination": {
                "type": "beneficiary-bank-account",
                "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
            }
        }
    },
    "connect": {},
    "metadata": {}
}
{
    "workflow": {
        "code": "organization.direct",
        "dryRun": false
    },
    "data": {
        "outgoingTransfer": {
            "id": "00000000-0000-0000-0000-000000000000",
            "transactionNumber": "20240716-ADAMNG",
            "transferDate": "2024-07-11",
            "status": "pending",
            "currency": "GBP",
            "amount": 19.91,
            "description": "API test",
            "transferCustomReason": null,
            "originalTransferDate": "2024-07-11",
            "rollCount": 0,
            "returned": false,
            "transferReasonId": "00000000-0000-0000-0000-000000000000",
            "scheme": "faster-payments",
            "scope": "external",
            "destination": {
                "type": "beneficiary-bank-account",
                "beneficiaryId": "00000000-0000-0000-0000-000000000000",
                "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
            },
            "source": {
                "type": "transaction-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "requirementConfiguration": {
                "transferDateStatus": "not-fulfilled",
                "complianceCheckStatus": "not-required",
                "balanceCheckStatus": "not-checked",
                "authorizationStatus": "not-required"
            },
            "relatedTransaction": {
               "nature": null,
               "id": null
            },
            "beneficiary": {
                "fullName": "Beneficiary Connection",
                "identity": {
                    "type": "corporate",
                    "country": "GB",
                    "identifications": null,
                    "legalName": "Beneficiary Connection",
                    "incorporationDate": null,
                    "corporationType": null
                },
                "address": {
                    "country": "GB",
                    "postalCode": "123456",
                    "city": "London",
                    "street": "test",
                    "houseNumber": "34",
                    "refinement": "43"
                },
                "account": {
                    "accountHolderName": null,
                    "country": "GB",
                    "currency": "GBP",
                    "routingCodes": {
                        "sort-code": "040003"
                    },
                    "accountNumber": "60838990",
                    "iban": null,
                    "ledgerNumber": null,
                    "alias": "GBP account"
                },
                "title": "Beneficiary Connection"
            },
            "ownerType": "tenant",
            "owner": "organization"
        }
    },
    "connect": {},
    "metadata": {}
}
{
    "workflow": {
        "code": "organization.direct",
        "dryRun": false
    },
    "data": {
        "outgoingTransfer": {
           "clientId": null,
            "transferDate": "2024-07-16",
            "currency": "EUR",
            "amount": 50,
            "scope": "internal",
            "description": "API dryRun",
            "transferReasonId": "00000000-0000-0000-0000-000000000000",
            "transferCustomReason": null,
            "source": {
                "type": "transaction-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
           "destination": {
            "type": "transaction-account",
            "transactionAccountId": "00000000-0000-0000-0000-000000000000"
           }
        }
    },
    "connect": {},
    "metadata": {}
}
{
    "workflow": {
        "code": "organization.direct",
        "dryRun": false
    },
    "data": {
        "outgoingTransfer": {
            "id": "00000000-0000-0000-0000-000000000000",
            "transactionNumber": "20240716-9JBDO8",
            "transferDate": "2024-07-16",
            "status": "processing",
            "currency": "EUR",
            "amount": 50,
            "description": "API dryRun",
            "transferCustomReason": null,
            "originalTransferDate": "2024-07-16",
            "rollCount": 0,
            "returned": false,
            "transferReasonId": "00000000-0000-0000-0000-000000000000",
            "scope": "internal",
            "destination": {
                "type": "transaction-account",
                "transactionAccountId": "00000000-0000-0000-0000-000000000000"
            },
            "source": {
                "type": "transaction-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "requirementConfiguration": {
                "transferDateStatus": "fulfilled",
                "complianceCheckStatus": "not-required",
                "balanceCheckStatus": "fulfilled",
                "authorizationStatus": "not-required"
            },
            "relatedTransaction": {
               "nature": null,
               "id": null
            },
            "beneficiary": {
                "fullName": "I.F. Technology Limited the second",
                "identity": {
                    "type": "corporate",
                    "country": null,
                    "identifications": null,
                    "legalName": "I.F. Technology Limited the second",
                    "incorporationDate": null,
                    "corporationType": null
                },
                "address": {
                    "country": "GB",
                    "postalCode": "34840",
                    "city": "London",
                    "street": "Freedom",
                    "houseNumber": "123456789"
                },
                "account": {
                    "accountHolderName": null,
                    "country": null,
                    "currency": "EUR",
                    "routingCodes": null,
                    "accountNumber": null,
                    "iban": null,
                    "ledgerNumber": "44952820",
                    "alias": "Org Account"
                },
                "title": "I.F. Technology Limited the second"
            },
            "ownerType": "tenant",
            "owner":"organization"
        }
    },
    "connect": {},
    "metadata": {}
}

Scheme Attribute List:

CurrencyDescriptionAttribute KeyValidataion
KRWRemitter bank
account number
sender-account-num
ber
Required
CNYTrade order idtrade-order-idRequired for CNY,
max 32 chars
CNYTrade timetrade-timeRequired for CNY,
dd/MM/yyyy
CNYTrade currencytrade-currencyRequired for CNY, 3
letter currency code
CNYTrade currencytrade-amountRequired for CNY,
amount in 2 precision
CNYTrade nametrade-nameRequired for CNY,
max 128 chars, if
transfer reason is
"Trade Settlement for
Services (CSTRDR)" then there is a list of
enumerated values*,
otherwise free text
CNYTrade counttrade-countRequired for CNY,
number
CNYGoods carriergoods-carrierRequired for CNY,
required only if
transfer reason is
"Trade Settlement for
Goods (CGODDR)",
max 64 chars
CNYService detailservice-detailRequired for CNY,
required only if
transfer reason is
"Trade Settlement for
Services (CSTRDR)",
max 128 chars
CNYService timeservice-timeRequired for CNY,
required only if
transfer reason is
"Trade Settlement for
Services (CSTRDR)",
max 64 chars

Update Outgoing Transfer

PATCH /outgoing-transfers/{id}

There are two different workflows to update outgoing transfers.
1. Client Direct: Using this workflow, certain editable fields of Client Transfers can be updated.

2. Organization Direct: Using this workflow, certain editable fields of Organization Transfers can be updated.

Currently, status and authorizationStatus can be updated.

{
  "workflow": {
    "code": "client.direct"
  },
  "data": {
    "outgoingTransfer": {
      "status": "cancelled"
    }
  },
  "connect": {},
  "metadata": {}
}
{
  "workflow": {
    "code": "client.direct"
  },
  "data": {
    "outgoingTransfer": {
      "id": "00000000-0000-0000-0000-000000000000",
      "transactionNumber": "20210419-000000",
      "clientId": "00000000-0000-0000-0000-000000000000",
      "transferDate": "2021-04-19",
      "status": "cancelled",
      "currency": "GBP",
      "amount": 100,
      "feeCurrency": "GBP",
      "feeAmount": 12,
      "description": "freetext",
      "transferReasonId": "00000000-0000-0000-0000-000000000000",
      "transferCustomReason": null,
      "originalTransferDate": "2021-04-19",
      "cutOffDateTime": "2021-04-19T09:00:00",
      "rollCount": 0,
      "totalAmount": 112,
      "ownerType": "client",
      "owner": "client",
      "scheme": "sepa",
      "scope": "external",
      "destination": {
        "type": "beneficiary-bank-account",
        "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
      },
      "source": {
        "type": "client-account",
        "accountId": "00000000-0000-0000-0000-000000000000"
      },
      "requirementConfiguration": {
        "transferDateStatus": "fulfilled",
        "complianceCheckStatus": "fulfilled",
        "balanceCheckStatus": "fulfilled",
        "authorizationStatus": "not-checked"
      },
      "relatedTransaction": {
        "nature": null,
        "id": null
     }
    }
  },
  "connect": {},
  "metadata": {}
}
{
  "workflow": {
    "code": "client.direct"
  },
  "data": {
    "outgoingTransfer": {
      "requirementConfiguration": {
        "authorizationStatus": "fulfilled"
      }
    }
  },
  "connect": {},
  "metadata": {}
}
{
  "workflow": {
    "code": "client.direct"
  },
  "data": {
    "outgoingTransfer": {
      "id": "00000000-0000-0000-0000-000000000000",
      "transactionNumber": "20210419-000000",
      "clientId": "00000000-0000-0000-0000-000000000000",
      "transferDate": "2021-04-19",
      "status": "pending",
      "currency": "GBP",
      "amount": 100,
      "feeCurrency": "GBP",
      "feeAmount": 12,
      "description": "freetext",
      "transferReasonId": "00000000-0000-0000-0000-000000000000",
      "transferCustomReason": null,
      "originalTransferDate": "2021-04-19",
      "cutOffDateTime": "2021-04-19T09:00:00",
      "rollCount": 0,
      "totalAmount": 112,
      "ownerType": "client",
      "owner": "client",
      "scheme": "sepa",
      "scope": "external",
      "destination": {
        "type": "beneficiary-bank-account",
        "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
      },
      "source": {
        "type": "client-account",
        "accountId": "00000000-0000-0000-0000-000000000000"
      },
      "requirementConfiguration": {
        "transferDateStatus": "fulfilled",
        "complianceCheckStatus": "fulfilled",
        "balanceCheckStatus": "fulfilled",
        "authorizationStatus": "fulfilled"
      },
      "relatedTransaction": {
        "nature": null,
        "id": null
      }
    }
  },
  "connect": {},
  "metadata": {}
}
{
  "workflow": {
    "code": "organization.direct"
  },
  "data": {
    "outgoingTransfer": {
       "status": "cancelled"
    }
  },
  "connect": {},
  "metadata": {}
}
{
    "workflow": {
        "code": "organization.direct"
    },
    "data": {
        "outgoingTransfer": {
            "id": "00000000-0000-0000-0000-000000000000",
            "transactionNumber": "20240716-ADAMNG",
            "transferDate": "2024-07-16",
            "status": "cancelled",
            "currency": "GBP",
            "amount": 19.91,
            "description": "API test",
            "transferCustomReason": null,
            "originalTransferDate": "2024-07-11",
            "rollCount": 1,
            "returned": false,
            "transferReasonId": "00000000-0000-0000-0000-000000000000",
            "scheme": "faster-payments",
            "scope": "external",
            "destination": {
                "type": "beneficiary-bank-account",
                "beneficiaryId": "00000000-0000-0000-0000-000000000000",
                "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
            },
            "source": {
                "type": "transaction-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "requirementConfiguration": {
                "transferDateStatus": "fulfilled",
                "complianceCheckStatus": "not-required",
                "balanceCheckStatus": "fulfilled",
                "authorizationStatus": "not-required"
            },
            "beneficiary": {
                "fullName": "Beneficiary Connection",
                "identity": {
                    "type": "corporate",
                    "country": "GB",
                    "identifications": null,
                    "legalName": "Beneficiary Connection",
                    "incorporationDate": null,
                    "corporationType": null
                },
                "address": {
                    "country": "GB",
                    "postalCode": "123456",
                    "city": "London",
                    "street": "test",
                    "houseNumber": "34",
                    "refinement": "43"
                },
                "account": {
                    "accountHolderName": null,
                    "country": "GB",
                    "currency": "GBP",
                    "routingCodes": {
                        "sort-code": "040003"
                    },
                    "accountNumber": "60838990",
                    "iban": null,
                    "ledgerNumber": null,
                    "alias": "GBP account"
                },
                "title": "Beneficiary Connection"
            },
            "owner": "organization",
            "ownerType": "tenant"
        }
    },
    "connect": {},
    "metadata": {}
}

Get an Outgoing Transfer

GET /outgoing-transfers/{id}

{
  "workflow": {},
  "data": {
    "outgoingTransfer": {
      "id": "00000000-0000-0000-0000-000000000000",
      "transactionNumber": "20210419-000000",
      "clientId": "00000000-0000-0000-0000-000000000000",
      "transferDate": "2021-04-19",
      "status": "pending",
      "currency": "GBP",
      "amount": 100,
      "feeCurrency": "GBP",
      "feeAmount": 12,
      "description": "freetext",
      "incomingTransferId": null,
      "transferReasonId": "00000000-0000-0000-0000-000000000000",
      "transferCustomReason": null,
      "originalTransferDate": "2021-04-19",
      "cutOffDateTime": "2021-04-19T09:00:00",
      "rollCount": 0,
      "schemeAttributes": null,
      "returned": false,
      "triggerType": "manual",
      "totalAmount": 112,
      "ownerType": "client",
      "owner":"client",
      "attributes":null,
      "scheme": "sepa",
      "scope": "external",
      "destination": {
        "type": "beneficiary-bank-account",
        "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
      },
      "source": {
        "type": "client-account",
        "accountId": "00000000-0000-0000-0000-000000000000"
      },
      "relatedTransaction": {
        "nature": null,
        "id": null
      },
      "beneficiary": {
        "fullName": "John Doe",
        "identity": {
          "type": "individual",
          "country": null,
          "identifications": null,
          "givenName": "John",
          "familyName": "Doe",
          "birthDate": null
        },
        "address": {
          "country": "GB",
          "city": "London",
          "street": "1",
          "houseNumber": "1",
          "refinement": "London St"
        },
        "account": {
          "accountHolderName": null,
          "country": "GB",
          "currency": "EUR",
          "routingCodes": {
            "bic": "TESTGB12"
          },
          "accountNumber": null,
          "iban": "GB96TEST71161299304760",
          "ledgerNumber": null,
          "alias": "EUR account"
        },
        "title": "John Doe Beneficiary"
      },
      "requirementConfiguration": {
        "transferDateStatus": "fulfilled",
        "complianceCheckStatus": "fulfilled",
        "balanceCheckStatus": "fulfilled",
        "authorizationStatus": "not-checked"
      }
    }
  },
  "connect": {},
  "metadata": {}
}
{
    "workflow": {},
    "data": {
        "outgoingTransfer": {
            "id": "00000000-0000-0000-0000-000000000000",
            "transactionNumber": "20240131-000000",
            "clientId": "00000000-0000-0000-0000-000000000000",
            "transferDate": "2024-01-31",
            "status": "completed",
            "currency": "EUR",
            "amount": 16.68,
            "feeCurrency": "EUR",
            "feeAmount": 0.00,
            "description": "test",
            "incomingTransferId": "00000000-0000-0000-0000-000000000000",
            "transferReasonId": null,
            "transferCustomReason": null,
            "originalTransferDate": "2024-01-31",
            "cutOffDateTime": null,
            "rollCount": 0,
            "schemeAttributes": null,
            "returned": false,
            "triggerType": "manual",
            "totalAmount": 16.68,
            "owner":"client",
            "attributes":null,
            "scope": "internal",
            "scheme": null,
            "destination": {
                "type": "client-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "source": {
                "type": "client-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "relatedTransaction": {
              "nature": null,
              "id": null
            },
            "requirementConfiguration": {
                "transferDateStatus": "fulfilled",
                "complianceCheckStatus": "fulfilled",
                "balanceCheckStatus": "fulfilled",
                "authorizationStatus": "not-required"
            },
            "beneficiary": {
                "fullName": "Merve Testlhv",
                "identity": {
                    "type": "individual",
                     "country": null,
                    "identificationNumbers": {
                        "passport": "000000",
                        "identity-card": "000000",
                        "driving-licence": "000000"
                    },
                    "identifications": null,
                    "givenName": "Merve",
                    "familyName": "Testlhv",
                    "birthDate": "1993-01-01"
                },
                "address": null,
                "account": {
                    "accountHolderName": null,
                    "country": "EE",
                    "currency": "EUR",
                    "routingCodes": {
                        "bic": "LHVBEE22"
                    },
                    "accountNumber": null,
                    "iban": "EE937777000027746655",
                     "ledgerNumber": null,
                    "alias": "saving account lhv eur"
                },
                "title": "Merve Testlhv"
            },
            "ownerType": "client"
        }
    },
    "connect": {},
    "metadata": {}
}
{
    "workflow": {},
    "data": {
        "outgoingTransfer": {
            "id": "00000000-0000-0000-0000-000000000000",
            "transactionNumber": "20240116-000000",
            "clientId": "00000000-0000-0000-0000-000000000000",
            "transferDate": "2024-01-16",
            "status": "completed",
            "currency": "GBP",
            "amount": 675.00,
            "feeCurrency": "GBP",
            "feeAmount": 2.00,
            "description": "BeneficiaryTesting",
            "incomingTransferId": "00000000-0000-0000-0000-000000000000",
            "transferCustomReason": null,
            "originalTransferDate": "2024-01-16",
            "cutOffDateTime": null,
            "rollCount": 0,
            "schemeAttributes": null,
            "returned": true,
            "triggerType": "manual",
            "transferReasonId": "00000000-0000-0000-0000-000000000000",
            "totalAmount": 677.00,
            "owner":"client",
            "attributes":null,
            "scheme": "local",
            "scope": "external",
            "destination": {
                "type": "beneficiary-bank-account",
                "beneficiaryId": "00000000-0000-0000-0000-000000000000",
                "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
            },
            "source": {
                "type": "client-account",
                "accountId": "00000000-0000-0000-0000-000000000000"
            },
            "requirementConfiguration": {
                "transferDateStatus": "fulfilled",
                "complianceCheckStatus": "fulfilled",
                "balanceCheckStatus": "not-required",
                "authorizationStatus": "not-required"
            },
            "relatedTransaction": {
               "nature": null,
               "id": null
            },
            "beneficiary": {
                "fullName": "Serkan Akagunduz",
                "identity": {
                    "type": "individual",
                    "country": null,
                    "identifications": null,
                    "givenName": "Serkan",
                    "familyName": "Akagunduz",
                    "birthDate": "2000-02-09"
                },
                "address": {
                    "country": "GB",
                    "postalCode": "234578",
                    "city": "London",
                    "street": "Harry Potter",
                    "houseNumber": "67"
                },
                "account": {
                    "accountHolderName": null,
                    "country": "GB",
                    "currency": "GBP",
                    "routingCodes": {
                        "sort-code": "040720"
                    },
                    "accountNumber": "00000718",
                    "iban": null,
                    "ledgerNumber": null,
                    "alias": "Serkan Akagunduz GBP"
                },
                "title": "Serkan Akagunduz"
            },
            "ownerType": "client"
        }
    },
    "connect": {},
    "metadata": {}
}

List Outgoing Transfers

GET/outgoing-transfers

Supported query parameters:

parameterdescription
metadata.page.number0-indexed, default=0
metadata.page.sizedefault=10
data.outgoingTransfer.statusone of pending, processing, released, completed, cancelled, failed
data.outgoingTransfer.transactionNumberunique transaction number
data.outgoingTransfer.amountFromminimum amount
data.outgoingTransfer.amountTomaximum amount
data.outgoingTransfer.currencyISO 4217 currency code
data.outgoingTransfer.clientIdUUID of client
data.outgoingTransfer.accountIdUUID of account
data.outgoingTransfer.serviceProvider
data.outgoingTransfer.serviceProviderId
data.outgoingTransfer.serviceProviderReference
data.outgoingTransfer.transferDateFromminimum transfer date
data.outgoingTransfer.transferDateTomaximum transfer date
data.outgoingTransfer.descriptionfree text description
data.outgoingTransfer.ownerowner of transfer. it can be client or organization.
data.outgoingTransfer.hasRelatedTransactionused to filter if the transfer has any related transaction. one of true , false
data.outgoingTransfer.relatedTransactionIdUUID of related transaction
data.outgoingTransfer.relatedTransactionNatureNature of the related transaction. one of virtual, actual

data.outgoingTransfer.owner has a default value of client to be backward compatible. The default value will be removed in the future. Please send client explicitly if you'd like to list only the client transactions

{
   "workflow":{
      
   },
   "data":{
      "outgoingTransfers":[
         {
            "id":"00000000-0000-0000-0000-000000000000",
            "transactionNumber":"20210419-000000",
            "clientId":"00000000-0000-0000-0000-000000000000",
            "transferDate":"2021-04-19",
            "status":"pending",
            "currency":"GBP",
            "amount":100,
            "feeCurrency":"GBP",
            "feeAmount":12,
            "description":"freetext",
            "incomingTransferId": null,
            "transferReasonId":"00000000-0000-0000-0000-000000000000",
            "transferCustomReason":null,
            "originalTransferDate":"2021-04-19",
            "cutOffDateTime":"2021-04-19T09:00:00",
            "rollCount":0,
            "schemeAttributes": null,
            "returned": false,
            "triggerType": "manual",
            "totalAmount":112,
            "ownerType":"client",
            "owner":"client",
            "attributes":null,
            "scheme":"sepa",
            "scope":"external",
            "destination":{
               "type":"beneficiary-bank-account",
               "beneficiaryBankAccountId":"00000000-0000-0000-0000-000000000000"
            },
            "source":{
               "type":"client-account",
               "accountId":"00000000-0000-0000-0000-000000000000"
            },
            "requirementConfiguration":{
               "transferDateStatus":"fulfilled",
               "complianceCheckStatus":"fulfilled",
               "balanceCheckStatus":"fulfilled",
               "authorizationStatus":"not-checked"
            },
            "relatedTransaction": {
              "nature": "actual",
              "id": "00000000-0000-0000-0000-000000000000"
            },
            "beneficiary":{
               "fullName":"Jose Mourinho",
               "identity":{
                  "type":"individual",
                  "country":"GB",
                  "identifications":[
                     {
                        "type":"identity-card",
                        "identificationNumber":"12345678",
                        "issuingCountry":"GB",
                        "issueDate":"2022-01-01",
                        "expirationDate":"2032-01-01"
                     }
                  ],
                  "givenName":"Jose",
                  "familyName":"Mourinho",
                  "birthDate":"1960-01-01"
               },
               "address":null,
               "account":{
                  "accountHolderName":null,
                  "country":"GB",
                  "currency":"GBP",
                  "routingCodes":{
                     
                  },
                  "accountNumber":null,
                  "iban":"GB24CLRB0047736514",
                  "ledgerNumber":"44453621",
                  "alias":"Mou GBP-2"
               },
               "title":"Jose Mourinho"
            }
         }
      ]
   },
   "connect":{
      
   },
   "metadata":{
      "page":{
         "size":20,
         "number":0,
         "totalElements":1,
         "totalPages":1
      }
   }
}

Webhooks

Outgoing transfer webhooks have "outgoing-transfers" in the module field in the webhook container object.

There are eight distinct types of webhook sent for outgoing-transfers as follows:

  • outgoing-transfer-created
  • outgoing-transfer-compliance-in-review
    (only this webhook can have an optional complianceCheck object in payload)
  • outgoing-transfer-processing
  • outgoing-transfer-released
  • outgoing-transfer-completed
  • outgoing-transfer-cancelled
  • outgoing-transfer-failed
  • outgoing-transfer-returned : This webhook is sent when the beneficiary is not accepted by the destination bank

These types are exposed in the webhook.type field.

{
  "webhook": {
    "module": "outgoing-transfers",
    "type": "outgoing-transfer-compliance-in-review"
  },
  "data": {
    "outgoingTransfer": {
      "id": "00000000-0000-0000-0000-000000000000",
      "transactionNumber": "20210419-000000",
      "clientId": "00000000-0000-0000-0000-000000000000",
      "transferDate": "2021-04-19",
      "status": "pending",
      "currency": "GBP",
      "amount": 100,
      "feeCurrency": "GBP",
      "feeAmount": 12,
      "description": "freetext",
      "incomingTransferId": null,
      "transferReasonId": "00000000-0000-0000-0000-000000000000",
      "transferCustomReason": null,
      "originalTransferDate": "2021-04-19",
      "cutOffDateTime": "2021-04-19T09:00:00",
      "rollCount": 0,
      "schemeAttributes": null,
      "returned": false,
      "triggerType": "manual",
      "totalAmount": 112,
      "ownerType": "client",
      "owner": "client",
      "attributes":null,
      "scheme": "sepa",
      "scope": "external",
      "destination": {
        "type": "beneficiary-bank-account",
        "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
      },
      "source": {
        "type": "client-account",
        "accountId": "00000000-0000-0000-0000-000000000000"
      },
      "requirementConfiguration": {
        "transferDateStatus": "fulfilled",
        "complianceCheckStatus": "fulfilled",
        "balanceCheckStatus": "fulfilled",
        "authorizationStatus": "not-required"
      },
      "relatedTransaction": {
        "nature": null,
        "id": null
      },
      "beneficiary":{
               "fullName":"Jose Mourinho",
               "identity":{
                  "type":"individual",
                  "country":"GB",
                  "identifications":[
                     {
                        "type":"identity-card",
                        "identificationNumber":"12345678",
                        "issuingCountry":"GB",
                        "issueDate":"2022-01-01",
                        "expirationDate":"2032-01-01"
                     }
                  ],
                  "givenName":"Jose",
                  "familyName":"Mourinho",
                  "birthDate":"1960-01-01"
               },
               "address":null,
               "account":{
                  "accountHolderName":null,
                  "country":"GB",
                  "currency":"GBP",
                  "routingCodes":{
                     
                  },
                  "accountNumber":null,
                  "iban":"GB24CLRB0047736514",
                  "ledgerNumber":"44453621",
                  "alias":"Mou GBP-2"
               },
               "title":"Jose Mourinho"
            }
    },
    "complianceCheck": {
      "status": "in-review",
      "procedureResults": {
        "transaction-monitoring": {
          "result": null
        }
      }
    }
  },
  "connect": {},
  "metadata": {}
}
{
  "webhook": {
    "module": "outgoing-transfers",
    "type": "outgoing-transfer-completed"
  },
  "data": {
    "outgoingTransfer": {
      "id": "00000000-0000-0000-0000-000000000000",
      "transactionNumber": "20210419-000000",
      "clientId": "00000000-0000-0000-0000-000000000000",
      "transferDate": "2021-04-19",
      "status": "completed",
      "currency": "GBP",
      "amount": 100,
      "feeCurrency": "GBP",
      "feeAmount": 12,
      "description": "freetext",
      "incomingTransferId": null,
      "transferReasonId": "00000000-0000-0000-0000-000000000000",
      "transferCustomReason": null,
      "originalTransferDate": "2021-04-19",
      "cutOffDateTime": "2021-04-19T09:00:00",
      "rollCount": 0,
      "schemeAttributes": null,
      "returned": false,
      "triggerType": "manual",
      "totalAmount": 112,
      "ownerType": "client",
      "owner":"client",
      "attributes":null,
      "scheme": "sepa",
      "scope": "external",
      "destination": {
        "type": "beneficiary-bank-account",
        "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
      },
      "source": {
        "type": "client-account",
        "accountId": "00000000-0000-0000-0000-000000000000"
      },
      "requirementConfiguration": {
        "transferDateStatus": "fulfilled",
        "complianceCheckStatus": "fulfilled",
        "balanceCheckStatus": "fulfilled",
        "authorizationStatus": "not-required"
      },
      "relatedTransaction": {
        "nature": null,
        "id": null
      },
       "beneficiary":{
               "fullName":"Jose Mourinho",
               "identity":{
                  "type":"individual",
                  "country":"GB",
                  "identifications":[
                     {
                        "type":"identity-card",
                        "identificationNumber":"12345678",
                        "issuingCountry":"GB",
                        "issueDate":"2022-01-01",
                        "expirationDate":"2032-01-01"
                     }
                  ],
                  "givenName":"Jose",
                  "familyName":"Mourinho",
                  "birthDate":"1960-01-01"
               },
               "address":null,
               "account":{
                  "accountHolderName":null,
                  "country":"GB",
                  "currency":"GBP",
                  "routingCodes":{
                     
                  },
                  "accountNumber":null,
                  "iban":"GB24CLRB0047736514",
                  "ledgerNumber":"44453621",
                  "alias":"Mou GBP-2"
               },
               "title":"Jose Mourinho"
            }
    }
  },
  "connect": {},
  "metadata": {}
}
{
  "webhook": {
    "module": "outgoing-transfers",
    "type": "outgoing-transfer-returned"
  },
  "data": {
    "outgoingTransfer": {
      "id": "00000000-0000-0000-0000-000000000000",
      "transactionNumber": "20210419-000000",
      "clientId": "00000000-0000-0000-0000-000000000000",
      "transferDate": "2021-04-19",
      "status": "completed",
      "currency": "GBP",
      "amount": 100,
      "feeCurrency": "GBP",
      "feeAmount": 12,
      "description": "freetext",
      "returned": true,
      "incomingTransferId": "00000000-0000-0000-0000-000000000000",
      "transferReasonId": "00000000-0000-0000-0000-000000000000",
      "transferCustomReason": null,
      "originalTransferDate": "2021-04-19",
      "cutOffDateTime": "2021-04-19T09:00:00",
      "rollCount": 0,
      "schemeAttributes": null,
      "triggerType": "manual",
      "totalAmount": 112,
      "ownerType": "client",
      "owner":"client",
      "attributes":null,
      "scheme": "sepa",
      "scope": "external",
      "destination": {
        "type": "beneficiary-bank-account",
        "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
      },
      "source": {
        "type": "client-account",
        "accountId": "00000000-0000-0000-0000-000000000000"
      },
      "requirementConfiguration": {
        "transferDateStatus": "fulfilled",
        "complianceCheckStatus": "fulfilled",
        "balanceCheckStatus": "fulfilled",
        "authorizationStatus": "not-required"
      },
      "relatedTransaction": {
        "nature": null,
        "id": null
      },
       "beneficiary":{
               "fullName":"Jose Mourinho",
               "identity":{
                  "type":"individual",
                  "country":"GB",
                  "identifications":[
                     {
                        "type":"identity-card",
                        "identificationNumber":"12345678",
                        "issuingCountry":"GB",
                        "issueDate":"2022-01-01",
                        "expirationDate":"2032-01-01"
                     }
                  ],
                  "givenName":"Jose",
                  "familyName":"Mourinho",
                  "birthDate":"1960-01-01"
               },
               "address":null,
               "account":{
                  "accountHolderName":null,
                  "country":"GB",
                  "currency":"GBP",
                  "routingCodes":{
                     
                  },
                  "accountNumber":null,
                  "iban":"GB24CLRB0047736514",
                  "ledgerNumber":"44453621",
                  "alias":"Mou GBP-2"
               },
               "title":"Jose Mourinho"
            }
    }
  },
  "connect": {},
  "metadata": {}
}

Compliance Check

Outgoing transfers can have compliance checks. Compliance checks can allow or deny the transaction depending on its result. There are two endpoints for compliance checks of outgoing transfers.

Get Compliance Check

GET /outgoing-transfers/{id}/compliance-check
Supported path variable:

id:

ID of outgoing transfer in UUID format

Sample Response:

The response can have multiple procedureResults depending on configurations. The API supports transaction-monitoring procedures. As a result of the procedureResults, procedures can have these result values below:

Acceptable results of transaction-monitoring:

  • all-passed
  • soft-stop
  • hard-stop
  • hard-stop-accepted
  • hard-stop-rejected

The status of the compliance check can be changed depending on the summarised result of procedure results. status can have these values below:

  • in-review
  • approved
  • rejected
  • skipped
{
    "workflow": {},
    "data": {
        "complianceCheck": {
            "status": "approved",
            "procedureResults": {
                "transaction-monitoring": {
                    "result": "all-passed"
                }
            }
        }
    },
    "connect": {},
    "metadata": {}
}
{
    "workflow": {},
    "data": {
        "complianceCheck": {
            "status": "in-review",
            "procedureResults": {
                "transaction-monitoring": {
                    "result": null
                }
            }
        }
    },
    "connect": {},
    "metadata": {}
}
{
    "workflow": {},
    "data": {
        "complianceCheck": {
            "status": "skipped",
            "procedureResults": {}
        }
    },
    "connect": {},
    "metadata": {}
}

Update Compliance Check

PATCH /outgoing-transfers/{id}/compliance-check

There is a single workflow to update compliance checks of outgoing transfers.

1. Direct: The direct workflow aims to change the result of procedure. The results can be changed only if the configurations are settled to manage compliance checks externally.

Sample Request and Response:

{
    "workflow": {
        "code": "direct"
    },
    "data": {
        "complianceCheck": {
            "procedureResult": { // single procedure to update
                "procedure": "transaction-monitoring",
                "result": "hard-stop-rejected"
            }
        }
    },
    "connect": {},
    "metadata": {}
}
{
    "workflow": {
        "code": "direct"
    },
    "data": {
        "complianceCheck": {
            "status": "rejected",
            "procedureResults": {
                "transaction-monitoring": {
                    "result": "hard-stop-rejected"
                }
            }
        }
    },
    "connect": {},
    "metadata": {}
}