Accounts
A payment account is a way to receive payment for an order. You can create as many accounts as you need for different payment types, for example, to connect a payment system or to accept cash.
The tools for working with accounts are in the "Accounts" subsection of the "Payments" section. Existing payment accounts appear in the general list, with the form for creating a new payment account below it.
Payment account types
The system currently offers several types of payment accounts.
Stripe
OneEntry supports integration with the Stripe payment system. Choose this type if you want to connect Stripe to your project. Connecting Stripe to OneEntry is covered in detail here. (opens in a new tab)
Midtrans
OneEntry supports integration with Midtrans, an Indonesian payment system. Connecting Midtrans is covered in detail here. (opens in a new tab)
Xendit
OneEntry supports integration with the Xendit payment system. Connecting Xendit is covered in detail here. (opens in a new tab)
Custom
Use this type if you want to use a different payment system or accept cash payments.
Creating a payment account
In the payment account form, specify:
- Name: a non-unique string.
- Type: a value from the drop-down list. A project can have only one account each of the Stripe, Midtrans, and Xendit types; you can create any number of Custom accounts.
- Marker: a unique string.
Click "Add". If all fields are filled in correctly, the payment account is created and added to the general list.
Editing a payment account
In the list, find the payment account you want to change and click the edit icon .
In edit mode, you can change:
- Name
- Type
- Marker
Stripe, Midtrans, and Xendit accounts also have settings for connecting to the payment system in edit mode. These are described on the Stripe (opens in a new tab), Midtrans (opens in a new tab), and Xendit (opens in a new tab) pages.
The edit screen also has a version history table for the account, with the columns Version, Who made the change, Date, and Saved data, and a Restore Data icon in each version row. Until the account has been saved, "No data available" appears instead of the table. Use the table to view earlier saves and restore the one you need. For details, see Version history.
Changes are saved automatically.
Custom parameters for payment API
To integrate flexibly with different payment systems (such as PayPal, Stripe, and others), you can add custom parameters specific to a particular API to a payment account.
These parameters are passed as key-value pairs when a payment session is initialized. For example, the PayPal Orders API often requires fields such as purchase_units, intent, application_context.return_url, or payer.email_address, while Stripe uses other parameters, such as mode and line_items.
How it works
Besides the basic fields (Name, Type, Marker), Stripe, Midtrans, and Xendit accounts have a Custom parameters for payment API table. Custom accounts don't have this table. The table shows attribute sets from Settings → Attributes and lets you map:
- Marker: the parameter name in the API (for example,
purchase_unitsfor PayPal orline_itemsfor Stripe) - Value: the value inserted when the payment is created
To set a value, open the set for editing by clicking . Then select the attribute you need from the preconfigured set and enter a value that matches the attribute type.
Important: attribute sets and their contents are configured separately and can include fields of different types: string, number, boolean, JSON, and others.
Example with PayPal Suppose you want to pass order details to PayPal in the purchase_units field. You create an attribute set named "PayPal Purchase Unit" and add to it an items attribute of the JSON type with a structure like this:
{
"invoice_id": "90210",
"amount": {
"currency_code": "USD",
"value": "230.00",
"breakdown": {
"item_total": {
"currency_code": "USD",
"value": "220.00"
},
"shipping": {
"currency_code": "USD",
"value": "10.00"
}
}
},
"items": [
{
"name": "T-Shirt",
"description": "Super Fresh Shirt",
"unit_amount": {
"currency_code": "USD",
"value": "20.00"
},
"quantity": "1",
"category": "PHYSICAL_GOODS",
"sku": "sku01",
"image_url": "https://example.com/static/images/items/1/tshirt_green.jpg",
"url": "https://example.com/url-to-the-item-being-purchased-1",
"upc": {
"type": "UPC-A",
"code": "123456789012"
}
},
{
"name": "Shoes",
"description": "Running, Size 10.5",
"sku": "sku02",
"unit_amount": {
"currency_code": "USD",
"value": "100.00"
},
"quantity": "2",
"category": "PHYSICAL_GOODS",
"image_url": "https://example.com/static/images/items/1/shoes_running.jpg",
"url": "https://example.com/url-to-the-item-being-purchased-2",
"upc": {
"type": "UPC-A",
"code": "987654321012"
}
}
]
}
Then, in the payment account settings, you link:
Key: purchase_units Value: the items attribute from the "PayPal Purchase Unit" set When an order is created, the system automatically inserts the current value of this attribute into the body of the request to the PayPal API.
Other commonly used PayPal parameters:
intent: for example, "CAPTURE" or "AUTHORIZE" application_context.return_url: the URL to return to after a successful payment application_context.cancel_url: the URL for a canceled payment
This mechanism lets you adapt payment integrations to the requirements of external APIs.
Exporting payment account data
Besides the hide, edit, and delete buttons, each account row has a data export button (in the current version, its tooltip reads "Settings"). It opens the export window: choose the file format (csv or xml) and confirm the export, and the file downloads in your browser. The button is available to administrators with export permission in the payments module.
Hiding a payment account
If you no longer want to use a payment account but can't delete it because it is already used in the project, you can hide it.
To do this, click the "eye" icon on the account.
The system doesn't offer hidden payment accounts for selection when you set up an order storage.
Deleting a payment account
In the list, find the payment account you want to delete and click the delete icon .
Confirm the action in the dialog. The payment account is deleted and removed from the general list.