B2B Payments
Transfer funds to and from businesses’ external bank accounts in exchange for goods or services.
Prerequisite
Note
You must be configured for this use case, or your transfer request will result in an error. Contact your Orum representative for more details if you plan to incorporate this use case into your product.
Overview
B2B payments enable a business to collect payments from or send payments to other businesses for goods or services. Below are some common examples a business-to-business payment transfer:
- Procurement: Businesses can purchase goods and services from other businesses to meet their operational needs
- Wholesale distribution: Businesses can buy and sell products in large quantities with other businesses, allowing them to reach a wider market and generate revenue
- Supply chain management: B2B payments can be used to purchase raw materials, components, and finished goods from other businesses to meet their production needs
- Marketing and advertising: Businesses can use B2B payments to purchase marketing and advertising services from other businesses to promote their products or services
- Technology solutions: Businesses can purchase technology solutions from other businesses to improve their operational efficiency and competitiveness
Transfer Request Requirements
With B2B payments, only the business that is your direct customer must complete KYB and continuous watchlist monitoring. The business that is not your direct customer must only provide its legal name and bank account information.
Use Case | Source | Destination |
---|---|---|
Accounts Receivable (collecting funds) | Business (Created) - Customer reference ID - Legal name External Account (Verified) - Account reference ID - Customer reference ID - Customer resource type - Account type - Account number - Routing number - Account holder name | Business (Verified) - Customer reference ID - Legal name - Tax ID - Tax ID type - Addresses External Account (Verified) - Account reference ID - Customer reference ID - Customer resource type - Account type - Account number - Routing number - Account holder name |
Accounts Payable (sending funds) | Business (Verified) - Customer reference ID - Legal name - Tax ID - Tax ID type - Addresses External Account (Verified) - Account reference ID - Customer reference ID - Customer resource type - Account type - Account number - Routing number - Account holder name | Business (Created) - Customer reference ID - Legal name External Account (Verified) - Account reference ID - Customer reference ID - Customer resource type - Account type - Account number - Routing number - Account holder name |
Steps
For the following steps in this guide, we’ll assume you are building an all-in-one platform for managing and paying bills. In this example, your customer is a digital Ad Agency providing services to a high-end workplace Furniture Brand.
- Bill Pay Platform enables frictionless payments between businesses
- Ad Agency sells advertising services to reputable brands (business)
- Furniture Brand makes high-end furniture for other businesses (business)
1. Authenticate to Deliver
Use the /authenticate and /refresh endpoints.
2. Create the Ad Agency and its associated bank account
Use the POST /businesses endpoint to create the Ad Agency and the POST /external/accounts endpoint to create its bank account. The external account can be created as soon as the Ad Agency is created.
Before sending a transfer request, the Ad Agency must complete KYB verification and continuous watchlist registration. This is because the Ad Agency is your direct customer in this transaction.
{
"customer_reference_id": "ad_agency_1",
"legal_name": "Ad Agency",
"tax_id": "123456789",
"tax_id_type": "tin",
"addresses": [
{
"type": "legal",
"country": "US",
"address1": "100 Advertisement Lane",
"city": "Adsville",
"state": "NY",
"zip5": "10001"
}
]
}
{
"account_reference_id": "ad_agency_account_1",
"customer_reference_id": "ad_agency_1",
"customer_resource_type": "business",
"account_type": "checking",
"account_number": "123456789",
"routing_number": "100000001",
"account_holder_name": "Ad Agency Owner"
}
3. Create the Furniture Brand and its associated bank account
Use the POST /businesses endpoint to create the customer and the POST /external/accounts endpoint to create the external account. The external account can be created as soon as the Ad Agency is created.
Businesses that aren't your direct customers only require a legal name during creation. Additionally, business transfers do not require KYB verification or continuous watchlist monitoring. This means the Furniture Brand’s status will remain in the created
state.
{
"customer_reference_id": "furniture_brand_1",
"legal_name": "Furniture Brand"
}
{
"account_reference_id": "furniture_brand_account_1",
"customer_reference_id": "furniture_brand_1",
"customer_resource_type": "business",
"account_type": "checking",
"account_number": "918273645",
"routing_number": "900000009",
"account_holder_name": "Furniture Brand Owner"
}
4. Send an Accounts Receivable transfer
For this use case, the Ad Agency provided services to the Furniture Brand to launch a new ad campaign. The two businesses agreed that upon completing the services, the Ad Agency would collect funds from the Furniture Brand via a bank transfer.
Use the POST /transfers endpoint to create the transfer. When initiating a business payment to collect funds, ensure that the Furniture Brand from Step 3 is in the source
object and the Ad Agency from Step 2 is in the destination
object
{
"currency": "USD",
"source": {
"account_reference_id": "furniture_brand_account_1",
"customer_reference_id": "furniture_brand_1"
},
"destination": {
"account_reference_id": "ad_agency_account_1",
"customer_reference_id": "ad_agency_1"
},
"transfer_reference_id": "transfer_1",
"amount": 5000000,
"speed": "asap"
}
5. Send an Accounts Payable transfer
The Ad Agency later determines it wants to buy furniture for new office space from the Furniture Brand. Upon receiving an invoice for furniture purchase, the Ad Agency decides to pay the Furniture Brand using B2B payments.
To initiate this business payment use the POST /transfers endpoint to create the transfer. When initiating a business payment to send funds, ensure that the Ad Agency from Step 2 is in the source
object and the Furniture Brand from Step 3 is in the destination
object.
{
"currency": "USD",
"source": {
"account_reference_id": "ad_agency_account_1",
"customer_reference_id": "ad_agency_1"
},
"destination": {
"account_reference_id": "furniture_brand_account_1",
"customer_reference_id": "furniture_brand_1"
},
"transfer_reference_id": "transfer_2",
"amount": 2000000,
"speed": "asap"
}
Updated 10 months ago