API Docs

API Reference

A scannable reference for the core endpoints in the Midcove payment API. This is a static reference. Full interactive docs are coming soon at docs.midcove.com.

Authentication

Every request is signed per MID

Each boarded MID gets its own secret key. Pass it as a bearer token on every call to the Midcove API — no separate authentication step required.

Base URL

https://api.midcove.com/v1

Header

Authorization: Bearer sk_live_51Nx...
Endpoints

Sale, void, refund, and webhook events

Every call below routes through the MID you've already boarded — NMI, Authorize.Net, Stripe, or PayPal.

POST /v1/transactions/sale

Charge a card and create a new sale transaction against a boarded MID.

Request
POST /v1/transactions/sale
Content-Type: application/json
Authorization: Bearer sk_live_51Nx...

{
  "mid": "mid_8k2p91",
  "amount": 4200,
  "currency": "USD",
  "card": {
    "number": "4111111111111111",
    "exp_month": "09",
    "exp_year": "2027",
    "cvv": "123"
  },
  "order_id": "ORD-10493"
}
Response
{
  "transaction_id": "txn_7f3a92c1",
  "mid": "mid_8k2p91",
  "status": "settled",
  "type": "sale",
  "amount": 4200,
  "currency": "USD",
  "order_id": "ORD-10493"
}

POST /v1/transactions/void

Cancel a transaction before it settles, keeping the funds from ever moving.

Request
POST /v1/transactions/void
Content-Type: application/json
Authorization: Bearer sk_live_51Nx...

{
  "mid": "mid_8k2p91",
  "transaction_id": "txn_7f3a92c1"
}
Response
{
  "transaction_id": "txn_7f3a92c1",
  "mid": "mid_8k2p91",
  "status": "voided",
  "type": "sale"
}

POST /v1/transactions/refund

Return funds on a settled transaction, in full or in part.

Request
POST /v1/transactions/refund
Content-Type: application/json
Authorization: Bearer sk_live_51Nx...

{
  "mid": "mid_8k2p91",
  "transaction_id": "txn_7f3a92c1",
  "amount": 4200
}
Response
{
  "transaction_id": "txn_7f3a92c1",
  "mid": "mid_8k2p91",
  "status": "refunded",
  "type": "sale",
  "amount": 4200
}

Webhook: transaction.updated

Sent to your configured endpoint whenever a transaction's status changes, so your app stays in sync without polling.

Payload
{
  "event": "transaction.updated",
  "mid": "mid_8k2p91",
  "transaction_id": "txn_7f3a92c1",
  "status": "settled",
  "type": "sale",
  "amount": 4200,
  "currency": "USD",
  "created_at": "2026-07-23T14:02:11Z"
}

This is a static reference. Full interactive docs, error codes, and SDKs are coming soon at docs.midcove.com.

Ready to start integrating?

Read the developer overview or talk to our engineering team about your setup.