Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.synctera.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview

With SyncteraPay, FinTechs can find a payments partner outside the Synctera Marketplace if it better suits their needs. SyncteraPay supports both Outbound and Inbound payment flows:
  • SyncteraPay Outbound (Send): This function allows money transfer from a Synctera account to an external account in a different financial institution, via a third-party payments provider.
  • SyncteraPay Inbound (Receive): This function facilitates the receipt of money from an external account to a Synctera account, via a third-party provider.
Transactions in SyncteraPay are created using the SyncteraPay APIs. The transaction recorded in the account is always the result of an off-platform activity that leads to a money movement, performed by the third-party payments provider. Transactions are final and cannot be reversed. In order to reverse a transaction or correct a transaction a new opposite transaction will have to have to be created. SyncteraPay supports the following type of transactions: **For more information about transactions and its status, please refer to Synctera’s transactions guide. The current list of supported SyncteraPay transaction subtypes are found here under subtype.

Counterparty Set Up

1

Add the external party in the Synctera Platform

The customer may be the same party that is receiving the funds (in the event of a me-to-me transfer) or a different customer (Peer-to-Peer). Ensure that the customer exists on the Synctera platform by using the same customer if M2M, or adding the originating party (is customer = false).
2

Link the external account that the funds are being sent from or to

Using our external accounts endpoint, link the external account that belongs to the counterparty. If it is a true bank account, you can add this following the same steps you would to link and manually verify an external account described here.There may be some cases where the external account does not have its own unique account number; for example, a virtual account rolling into a pool account, or an international account that does not have the same properties as a US bank account. Provided your Sponsor Bank has approved the use case, you can use the following example for adding the external account to the originating customer on the Synctera platform/ledger:
curl --request POST \
  --url https://api-sandbox.synctera.com/v0/external_accounts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "OTHER_BANK_ACCOUNT",
    "customer_type": "{either BUSINESS or CONSUMER}",
    "account_owner_names": ["Account Owner"],
    "routing_identifiers": {
      "bank_name": "{Bank Name}",
      "bank_countries": ["Country of operation of the bank"]
    },
    "account_identifiers": {
      "number": "{uuid if no account number exists}"
    },
    "verification": {
      "vendor": "MANUAL",
      "status": "VERIFIED"
    },
    "business_id": "{uuid of the business in Synctera. Set customer_id as the uuid of the customer in Synctera if it is a consumer use case}"
}'

Outgoing Transaction Flow

Transactions executed via a third-party provider need coordination between the Synctera account and the third-party payment provider. All outgoing payments follow a two-step process. The first step is a transaction authorization that verifies that the account is capable of transacting and has sufficient funds for the transaction. The second step is the transaction posting ensuring the successful processing of the transfer with the third-party payment provider and includes adding extra transaction data for reconciliation. These steps are performed via the Synctera APIs. Assuming Steps 1 and 2 above have already been completed:
3

Transaction Authorization

Create a transaction authorization to hold available funds. The external account added in Step 2 is reflected as the final_external_account_id in the request.
  // request

 {
  "account_id": "b01db9c7-78f2-4a99-8aca-1231d32f9b96",
  "customer_id": "46fec39e-e776-4571-bf90-d0e1d15172fe",
  "effective_date": "2022-03-18",
  "amount": 10000,
  "currency": "USD",
  "dc_sign": "CREDIT",
  "direction": "OUTGOING",
  "subtype": "OUTGOING_INTERNATIONAL_REMITTANCE",
  "synctera_pay_network": "WISE",
  "configuration_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7",
  "final_external_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "source_data": {},
  "synctera_pay_vendor_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7"
}

  // response
  {
  "amount": 10000,
  "currency": "USD",
  "dc_sign": "CREDIT",
  "direction": "OUTGOING",
  "subtype": "OUTGOING_INTERNATIONAL_REMITTANCE",
  "synctera_pay_network": "WISE",
  "effective_date": "2022-03-18",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "is_same_day": true,
  "status": "PENDING",
  "tenant_id": "abcdef_ghijkl",
  "configuration_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7",
  "final_external_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "source_data": {},
  "synctera_pay_vendor_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7",
  "customer_id": "46fec39e-e776-4571-bf90-d0e1d15172fe",
  "destination_account_id": "fccb4a46-1261-4e91-b622-73b5b946183d",
  "destination_account_owner_name": "<string>",
  "failed": false,
  "network_status": "PENDING",
  "originating_account_id": "b01db9c7-78f2-4a99-8aca-1231d32f9b96",
  "originating_account_owner_name": "<string>",
  "suspended": false,
  "transaction_id": "45b5246f-ad97-4629-9aac-465b74a05505"
}

If successful, the third-party provider has processed the transaction, and it can now be posted to the customer’s account. At this stage, the FinTech should include the transaction reference ID provided by the third-party provider for future transaction reconciliation.
4

Transaction Posted

Update the status to POSTED once funds are verified to post the hold. Include the reference id obtained from the third party provider in this step as the reference_id.
  // request
  {
    "status": "POSTED",
	"reference_id": "<string>",

"exchange_details": {
      "source_currency": "USD",
      "target_currency": "GBP",
      "source_amount": 10000,
      "target_amount": 10000,
      "rate": "1.30445",
      "fees": [
        {
          "fee_type": "FX",
          "description": "string",
          "amount": 0,
          "percentage": "string",
          "currency": "string"
		   }
		]
	}
}
      

  // response
  {
  "amount": 10000,
  "currency": "USD",
  "dc_sign": "CREDIT",
  "direction": "OUTGOING",
  "subtype": "OUTGOING_INTERNATIONAL_REMITTANCE",
  "synctera_pay_network": "WISE",
  "effective_date": "2022-03-18",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "is_same_day": true,
  "status": "POSTED",
  "tenant_id": "abcdef_ghijkl",
  "configuration_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7",
  "exchange_details": {
    "rate": 1.30445,
    "source_amount": 10000,
    "source_currency": "USD",
    "target_amount": 10000,
    "target_currency": "GBP",
    "fees": [
      {
        "currency": "<string>",
        "fee_type": "FX",
        "amount": 2,
        "description": "<string>",
        "percentage": "<string>"
      }
    ]
  },
  "final_external_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "source_data": {},
  "synctera_pay_vendor_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7",
  "customer_id": "46fec39e-e776-4571-bf90-d0e1d15172fe",
  "destination_account_id": "fccb4a46-1261-4e91-b622-73b5b946183d",
  "destination_account_owner_name": "<string>",
  "failed": false,
  "history": [
    {
      "data": {},
      "message": "<string>",
      "timestamp": "2023-11-07T05:31:56Z"
    }
  ],
  "network_status": "POSTED",
  "original_reference_id": "<string>",
  "originating_account_id": "b01db9c7-78f2-4a99-8aca-1231d32f9b96",
  "originating_account_owner_name": "<string>",
  "posting_date": "2022-03-18",
  "reference_id": "<string>",
  "suspended": false,
  "transaction_id": "45b5246f-ad97-4629-9aac-465b74a05505"
}

Incoming Transaction Flow

For Incoming SyncteraPay (sending funds in from an external provider to a Synctera DDA via SyncteraPay), utilize the v2/synctera_pay/incoming endpoints. This guide assumes you already have an Incoming SyncteraPay Configuration set up on your tenant, which defines the use case, subtype and Settlement DDA. For more information on configuration set up, reach out to your Implementation Manager.  Assuming Steps 1 and 2 for Counterparty Set Up have already been completed:
1

Verify the funds have been sent out at the external provider

Ensure you have captured the network reference id of the transfer to include in the Incoming SyncteraPay call in the next step.
2

 Initiate the Incoming SyncteraPay Transaction

Call POST /v2/synctera_pay/incoming/transfers with the following:
  • Set payee_id to the recipient of the SyncteraPay transfer.
  • Set  payer_id to the customer_id or business_id from Step 1.
  • Set reference_id to the id associated with the external transaction from Step 3. 
  • Set source_external_account_id to the external account id created in Step 2. 
  • Set destination_account_id to the Synctera account owned by the customer payee_id, that the funds will be distributed to. 
  • Set configuration_id to the Synctera provided id.
//request
{
  "amount": 2,
  "configuration_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "destination_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "payee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "payer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "reference_id": "<string>",
  "settlement_date": "2023-12-25",
  "source_external_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "external_data": {}
}

// response
{
  "amount": 2,
  "configuration_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "creation_time": "2010-05-06T12:23:34.321Z",
  "destination_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "last_updated_time": "2010-05-06T12:23:34.321Z",
  "payee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "payer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "reference_id": "<string>",
  "settlement_date": "2023-12-25",
  "source_external_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "status": "CREATE_HOLD",
  "tenant": "abcdef_ghijkl",
  "external_data": {},
  "transaction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}

Daily Bulk Settlement With Third Party Provider

At the end of the business day, or multiple times a day (depending on the Fintech/Payments provider agreement), the third-party payment provider will need to settle for the total amount of Inbound or Outbound Payments processed via SyncteraPay. The Synctera platform can create and receive bulk wire and ach transfers to settle these payments. The Bulk Settlement function is accessible via the Synctera UI and available to both the FinTech and Synctera Operations agents. **SyncteraPay transactions and Settlements are not allowed by default. Please contact your implementation manager to enable this capability. Note: If you are using Incoming SyncteraPay and Outgoing SyncteraPay and have been approved by Synctera and your Sponsor Bank to perform end of day netting bulk transfers for SyncteraPay DDA EOD Settlement, you will need to work with your Implementation Manager to ensure the Standard Operating Procedure and methods are mutually aligned and supported.