---
title: "Initiate a Cross-border Charge"
method: POST
path: "/api/b2b/cross-border/requests/charges/{requestId}"
tags: ["Cross-border Requests"]
---

# Initiate a Cross-border Charge

`POST /api/b2b/cross-border/requests/charges/{requestId}`

## Request

- Base URL: `https://api-v2.honeycoin.app`
- URL: `https://api-v2.honeycoin.app/api/b2b/cross-border/requests/charges/{requestId}`
- Auth: API key in header `Authorization`

Initiate collection using saved chargeDetails and a JSON body containing a confirmed quoteId. The quote must be unused, unexpired, belong to the same account and environment, and match the request's senderAmount, senderCurrency and receiverCurrency. Only pending_charge or charge_failed requests without a pending or successful deposit are eligible. Document states block charging. Quotes are single-use; reconcile an uncertain response and obtain a fresh quote for an eligible new attempt. Store data.transactionId separately from the request and quote IDs. Bank collection requests can return a virtualAccount, or status=PENDING with virtualAccount=null; retrieve the transaction for later account details. Initiation is not payment success. Sandbox uses the same suffix under /api/sandbox/b2b/cross-border/requests with a sandbox bearer token.

## Path parameters

- `requestId` string, required

## Request body

- CrossBorderInitiateCharge
  - `quoteId` string, required: Confirmed, unused, unexpired quote for the request's exact source amount and currencies, from the same account and environment.

## Response `200`

Successful response.

- object
  - `success` true, required
  - `data` object, required
    - `transactionId` string, required
    - `status` 'PENDING'
    - `virtualAccount` object, nullable

## Other responses

- `202`: An identical request is still being processed. Wait and reconcile before retrying; no resource ID is included.
- `400`: Invalid fields, missing quoteId, or bearer token.
- `403`: Ownership check failed.
- `404`: REQUEST_NOT_FOUND or QUOTE_NOT_FOUND when the request or quote is unavailable for this account and environment. The sender or beneficiary may also be unavailable.
- `409`: State conflicts during initiation: CROSS_BORDER_CHARGE_IN_PROGRESS, CROSS_BORDER_REQUEST_ALREADY_CHARGED, CROSS_BORDER_REQUEST_NOT_CHARGEABLE or REQUEST_CLOSED. Reconcile the request and transactions before retrying.
- `422`: In production and sandbox: REQUEST_CLOSED or REQUEST_NOT_CHARGEABLE for an ineligible request; QUOTE_ALREADY_CONSUMED, QUOTE_EXPIRED or QUOTE_MISMATCH for an unusable quote. Reconcile the request and transactions before obtaining a fresh quote for an eligible new attempt.
- `503`: VIRTUAL_ACCOUNT_CREATION_FAILED for a bank charge.

## Changes

- **2026-11-03** `fcb58b0ef441`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/honeycoin/apis/honeycoin-v3-api-official/changes/api/b2b/cross-border/requests/charges/:requestId/post.md)

---

[API](https://skmtc.dev/honeycoin/apis/honeycoin-v3-api-official.md) - [All operations](https://skmtc.dev/honeycoin/apis/honeycoin-v3-api-official/llms.txt) - [OpenAPI document](https://skmtc.dev/honeycoin/apis/honeycoin-v3-api-official/revisions/fcb58b0ef441?raw)
