4. Individual Customer Transaction

Step by step of how to create an individual customer transaction in FXaaS.

📑 Summary

  • Objective
  • Functionalities
  • Requirements
  • Outbound Transaction Flow
    • Creating Outbound Transaction
    • Data for Creating an Outbound Transaction
    • Remessa Online's Partner Bank Account Details
    • Outbound Transaction Statuses
  • Inbound Transaction Flow
    • Creating Inbound Transaction
    • Payment Order
    • Data for Creating an Inbound Transaction
    • Inbound Transaction Statuses

Objective


Allow the partner to generate an inbound or outbound transaction by passing some specific parameters. In order to create a transaction, the partner must first generate a quote. The quote id will be used for completing the transaction.

Functionalities


Through the individual customer transaction module, it is possible to:

Requirements


  • The partner must first create a quote that cannot have expired (all quotes expire after 5 minutes of creation);
  • The parameters corresponding to each type of transaction must be passed (we will go through each one);
  • The customer requesting the transaction must have an "approved" status in the back office;
  • A single customer can only have 1 open OUTBOUND transaction;
  • A single customer can have n open INBOUND transactions.
  • Individual Customers have a transaction limit of BRL 180k/operation or BRL 360k/year. The customer may request to increase this limit by contacting the CX team at Remessa Online through the email: [email protected]

Outbound Transaction Flow


📍 1. Creating Outbound Transaction

Creating an outbound transaction takes place after the quote has been created and validated by the API. Once the outbound transaction is created, the payment should be made to Remessa Online's partner bank account. If the partner does not have custody of the value, the partner can display the account details so the customer can transfer the value. After Remessa Online's partner bank receives the payment, we will start the transaction flow on our end.

The available purposes for outbound transactions are:

Outbound Purposes

Outbound Purposes

The outbound transaction flow is described below:

Outbound transaction flow

Outbound transaction flow

Some steps of this process are asynchronous, so the partner can register webhooks which will automate the delivery of notifications with the updated transaction status.

📍 2. Data for Creating an Outbound Transaction

To request an outbound transaction, you need to provide the required parameters:

Field NameIs requiredDescription
taxIdYesThe customer identifies who wants to do the transaction.
quoteIdYesQuotation identification.
recipientIdYesRecipient identification.
ffcNoIndividual code provided by the brokerage company. It ensures the correct credit to your investment account. It can be found together with your bank details. How to find it: under "for further credit (FFC)" or "message to the recipient.
externalIdNoExternal transaction ID created by the partner.

🚧

FFC

In the outbound transaction scenario, the FFC must only be sent in the Investment purpose

Below you can see an example of a full request for creating an outbound transaction for the "Investment" purpose, with FFC.

curl --request POST \
     --url https://fx-sandbox.remessaonline.com.br/v1/api/transactions \
     --header 'Authorization: Bearer {{token}}' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-token: {{x-token}}' \
     --data '
{
    "taxId": "17820105041",
    "quoteId": "1f8c4511-9d17-4b45-a0f6-d27277867c2d",
    "externalId": "ext-13820109041",
    "counterpartyId": "8d523376-96ed-4e0e-9b7a-fe0a55ba9644",
    "ffc": "fxaas-d228a0f9-381f-4841-a0c3-d60417043c32"
}

📍 3. Remessa Online's Partner Bank Account Details

Field NameDescription
BankBanco Topázio SA (082)
Agency 0001
Checking Account Number 6685193-2
FavoredBanco Topázio SA
CNPJ07.679.404/0001-00
Account TypeChecking Account (Conta Corrente)
Transaction TypeTED (Credit in Checking Account)
PIX Key
c027f762-36df-4301-addd-c3d8995c43f7

🚧

Payment Methods & Transfer Validation

The customer must submit the TED or PIX from an account in their name. If the transaction is made by a third party, the transaction will be canceled and the amount will be returned by the partner bank.

📍 4. Outbound Transaction Statuses

The process of creating and confirming an outbound transaction will return some statuses that highlight what stage the transaction is at. These statuses can be:

StatusDescription
PENDINGTransaction in process of creation. Wait for confirmation.
AWAITING_PAYMENTAwaiting confirmation of payment. The identification takes approximately 2 working hours (within Brazilian business hours).
PAYMENT_UNDER_CONFIRMATIONWe are waiting for the payment order of the amount in foreign currency to be sent to our partner bank's account.
PAYMENT_CONFIRMEDWe received the payment made by the customer.
TRANSACTION_SETTLEDThe transaction is being registered with the Central Bank in Brazil.
TRANSACTION_CONFIRMEDTransaction confirmed at the partner bank.
UNDER_ANALYSISWe identified a pending payment with the customer. Customers are required to contact our customer service for more information.
PAYMENT_RETURNEDThe transaction was returned by the beneficiary's bank. This happens when there is an error in the data or by bank policy. The customer is required to contact our customer service for more information.
CANCELEDThe transaction was canceled in our system. The customer is required to contact our customer service for more information.
FINISHEDTransaction sent to the beneficiary.
REFUNDEDThe transaction was refunded.

🚧

AWAITING_PAYMENT

This status means that we are waiting for the payment of the amount in BRL to be made to our partner bank's account. Only at this point the partner should display the bank account details so that the customer can pay the transfer.

Inbound Transaction Flow


📍 1. Creating Inbound Transaction

Creating an inbound transaction takes place after the quote has been generated and validated by the API. In addition, the partner must also have created a bank account linked to the customer who is making the inbound transaction. You can create a customer bank account through this endpoint.

The available purposes for inbound transactions are:

Inbound Purposes

Inbound Purposes

The inbound transaction flow is described below:

Inbound Transaction Flow

Inbound Transaction Flow

The withdrawal amount becomes available as soon as our partner bank identifies that the remittance has been paid by the remitter. This amount is then held by the bank until the customer creates the transaction and redeems the money into their bank account registered with FXaaS.

There are also some asynchronous steps in this process. For these steps, the partner can register webhooks which will automate the delivery of notifications with the updated transaction status.

📍 2. Payment Order

1367

Inbound Transaction Payment Order Flow

The payment order is a financial instrument to enable the partner to receive money from abroad, whereby the customer can withdraw the amount to his or her bank account. In order to receive a payment order, the customer must receive a deposit into his or her account in FXaaS. The remitter pays the amount into the customer's account and Remessa Online makes it available for withdrawal in Brazil.

  • A payment order can only be used by the user who received it;
  • When the customer decides to withdraw the money received through the order, the amount of the transaction must be equal to the amount received in the order;
  • The payment order should only be used for the purposes of FOREIGN_AVAILABILITY and RESIDENT_MAINTENANCE for individual customers and SERVICE for companies;
  • For the purposes of INVESTMENT_RETURN, a payment order will not be required.

📘

Webhook subscription

Don't forget to register on the webhook for the event PAYMENT_ORDER_RECEIVED.

These are the Payment Order statuses:

StatusDescription
OPENThe payment order is open and can be used in an inbound transaction.
WITHDRAWThe payment order was used in an inbound transaction and is in the process of being withdrawn.

📍 3. Data for Creating an Inbound Transaction

To request an inbound transaction, you need to provide the required parameters:

Field NameIs requiredDescription
taxIdYesThe customer who wants to do the transaction.
quoteIdYesQuotation ID.
bankAccountIdYesBrazilian Bank Account ID.
externalIdNoExternal transaction ID created by the partner.
paymentOrderIdOnly for the purposes of FOREIGN_AVAILABILITY and RESIDENT_MAINTENANCEThis is the Id of the payment order made by the remitter abroad. This Id will be returned to the partner via webhook as soon as the payment is identified by Remessa Online Partner Bank.

Below you can see an example of a full request for creating an inbound transaction.

curl --request POST \
     --url https://fx-sandbox.remessaonline.com.br/v1/api/transactions \
     --header 'Authorization: Bearer {{token}}' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-token: {{x-token}}' \
     --data '
{
    "taxId": "80711812772",
    "quoteId": "97684bd0-8819-40ce-847b-b1a1a9074b9b",
    "bankAccountId": "639f5f98-6c5b-4cff-bc12-4b8414f8ade7",
		"paymentOrderId": "2aa9eba9-b51c-44ab-aa9b-377dae3f4c39"
}

📍 4. Inbound Transaction Statuses

The process of creating and confirming an inbound transaction will return some statuses that highlight what stage the transaction is at. These statuses can be:

StatusDescription
PENDINGTransaction in process of creation. Wait for confirmation.
PAYMENT_UNDER_CONFIRMATIONWe are waiting for the payment order of the amount in foreign currency to be sent to our partner bank's account.
WITHDRAW_IN_PROGRESSWe received the payment order sent by the partner.
PAYMENT_RETURNEDThe transaction was returned by the bank This happens when there is an error in the data or by bank policy. The customer is required to contact our customer service for more information.
CANCELEDThe transaction was canceled in our system. The customer is required to contact our customer service for more information.
FINISHEDMoney has been sent to the destination account.