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
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",
...
}