Skip to main content

Invoice checkout

Flowchart

Source:
https://cahskuy.stoplight.io/docs/OND/3c78799259e69-payment-checkout

Reference:
https://documentation.onindonesia.id/books/getting-started/page/transaction-flowchartTransaction Flowchart

Endpoint
Endpoint Method
Authentication
/payment-checkout
POST Yes
Authentication
Type
Token source
Server
Description
Bearer {{usapi}}/auth USAPI Buyer's auth
Body request example
{
    "total_amount": 40000,
    "service": "ONMARKET",
    "source": "XENDIT",
    "transaction": [
        {
            "amount": 10000,
            "seller_username": "testing123",
            "invoice_onmarket": "INV/ONM/20240124-002B0001"
        },
        {
            "amount": 15000,
            "seller_username": "testing12345",
            "invoice_onmarket": "INV/ONM/20240124-002B0002"
        }
    ]
}
Properties
Properties of Data type Required Description
amount
integer yes Nominal amount for the invoice
service
string yes

ONINDONESIA services.
Possible values:

  • ONDELIVERY means the source of the transaction comes from ondelivery.
  • ONTICKET means the source of the transaction comes from onticket.
  • ONMARKET means the source of the transaction comes from onmarket.
source
string yes A way that users pay for a product or service. Possible values: XENDIT or BALANCE.
xendit_methods
array[string] yes

The specific payment channel used to pay the invoice.

Possible values for e-wallet:

  • DANA
  • OVO
  • LINKAJA
  • SHOPEEPAY
  • QRIS (Required if source == XENDIT)

Bank transfer (virtual account) is not supported yet due to high fees.

Value can be empty (ie. [ ])

xendit_ttl
integer no

Duration of time in seconds that the end customer is given to pay the invoice before expiration (in seconds). (Required if source == XENDIT).

Default value = 7200

Response example

200 (OK)

Example response for ONMARKET

{
    "payment_url": "https://checkout-staging.xendit.co/latest/65ba1b78f603539c068ef753",
    "invoice": "ONM0001N11V0000x",
    "xendit_invoice": "65ba1b78f603539c068ef753",
    "expired_at": "2024-01-31T12:05:44.155Z",
    "transaction": [
        {
            "invoice_onmarket": "INV/ONM/20240124-002B0001",
            "status": "PENDING"
        },
        {
            "invoice_onmarket": "INV/ONM/20240124-002B0002",
            "status": "PENDING"
        }
    ]
}
Properties
Properties of Data type Description
xendit_invoice
string invoice ID generated by XENDIT and translated by USAPI
payment_url
string

Public URL for this invoice

expired_at
timestampz

ISO date and time that the invoice expires.

transaction
array<object>

List of transactions

invoice transaction string

Invoice ID generated by USAPI

status transaction string

Status showing whether the invoice has been paid

Possible values: 

  • PENDING means the invoice has been successfully created but yet to be paid
  • PAID means the invoice has been paid
  • EXPIRED means the invoice expired before your customer paid
Error response

400 Bad Request

Some parameters may contain invalid values or some parameters are not present.
{
    "message": "Invalid JSON Format"
}

401 Unauthorized

Authentication header is not valid or missing
{
    "message": "Auth Error"
}

500 Internal server error

Internal server error
{
    "message": "Internal server error"
}