EXPLORE GUIDES

All Guides
Payments
FX
API Support

PAYMENTS

Actors
The Sender of the Payment
The Sender’s Bank
The Payment Exchange Network
The Recipient’s Bank
The Receiver of the Payment

Lifecycle
Create
Verify
Authorize
Capture
Settle
Update
Refund

Instant Payment Flow

Bank Functions
- Consume the payment instruction from the Network.
- Perform certain security validations to ensure the payment has indeed originated from the Network and not from some other source (i.e., the Network should be the only trusted source of the payment instruction). An example security validation may include a digital signature verification on the payment details.
- Perform payment-level validations. These validations include both technical and functional validations, including that the payment message adheres to industry formatting standards (e.g., ISO20022), and the payment message includes the correct currency, or the payment does not exceed a certain amount
- Execute certain payment processing rules that may adhere to SummitPeakBank's compliance and other internal payments processing due diligence standards.
- Perform any fraud or sanctions checks




API SUPPORT

FX Payment

Step 1 - Check the funding cost

Suppose you have a US Dollar deposit account at TxB and want to pay a European supplier in Euro (EUR 1300). Before making a thirteen-hundred Euro payment, you may want an estimated the funding cost of the payment in USD.

Step 2 - Send paymentRequest

Now we can send the paymentRequest with POST /v1/payments/paymentRequest and the below request payload. We can include up to 500 individual payments in a single paymentRequest:

Step 3 - Check the payment status and details

First, we can confirm that the paymentRequest was accepted, meaning it has passed technical and some business validation.

The response to the original POST paymentRequest in the previous step returns a "requestStatus": "ACCEPTED". If this paymentRequest were connected to a customer payment flow, we can tell the user it is now being processed.

Now that we know the paymentRequest was successful, let's check the status of the individual payment within the request. This will tell you whether the payment is complete, is stuck for some reason (e.g., insufficient funds), or rejected (e.g., because the supplier's bank account number is not formatted correctly).

POST /v2/payments/query with this request body:

{
    "idType": "PAYMENTENDTOENDID",
    "idValue": "trackthispayment123"
}

returns the below, which gives you both the status of the payment as well as other details like the associated FX rate:

[
    {
        "identifiers": {
            "paymentRequestId": "custReq0123456789",
            "paymentEndToEndId": "trackthispayment123",
            "gsUniquePaymentId": "gsuniquetracker123",
            ...
        }