# Merchant Reconciliation API

API allows merchant/integrator to reconcile Payments

## History

### 3.0.1 (2025-10-01)

* Removed DEV and ACC environment.
* Added description for PREPROD and PROD environments
* Added `/v3` prefixes to operation paths.

### (2025-07-24)
* Remove SubmerchantName and SubmerchantID.


Version: 3.0.1

## Servers

PREPROD merchant API
```
https://merchant.api.preprod.bancontact.net
```

PROD merchant API
```
https://merchant.api.bancontact.net
```

## Security

### JWS-Request-Signature

[Detached JWS signature of request payload](https://tools.ietf.org/html/rfc7797).

Merchant/Partner MUST host the public key in [JWK format](https://tools.ietf.org/html/rfc7517) as [JWKS](https://tools.ietf.org/html/rfc7517#section-3)
and share the URL with Bancontact Payconiq Company during integration.

The signature must be computed as per following instructions:

    jws = base64URLEncode(JOSE Header)..alg(base64URLEncode(JOSE Header).base64URLEncode(Request Body))

    [JOSE Header](https://tools.ietf.org/html/rfc7515#section-4) =

    {
      "typ": "jose+json",
      "kid": "JWK kid",
      "alg": "ES256",
      "https://payconiq.com/sub" : "{merchantProfileId}",
      "https://payconiq.com/iss" : "{Merchant Id}",
      "https://payconiq.com/iat" : "{Current creation date time in [ISODateTime format](https://www.iso20022.org/standardsrepository/public/wqt/Description/mx/dico/datatypes/_YW1tKtp-Ed-ak6NoX_4Aeg_-1624336183), expressed in UTC time format(YYYY-MM-DDThh:mm:ss.sssZ)},
      "https://payconiq.com/jti" : "{Unique-request-identifier}",
      "https://payconiq.com/path": "request path ex. /v3/payments/{payment-id}/confirm"
      "crit": ["https://payconiq.com/sub", "https://payconiq.com/iss", "https://payconiq.com/iat", "https://payconiq.com/jti", "https://payconiq.com/path"]
    }

JWS Payload MUST be the same as request body as base64url encoded JSON data.

Type: apiKey
In: header
Name: Signature

## Download OpenAPI description

[Merchant Reconciliation API](https://docs.bancontactpro.com/_bundle/apis/merchant-reconciliation.openapi.yaml)

## payoutList

### Get a list of all payouts for the merchant

 - [GET /v3/reconciliation/payouts](https://docs.bancontactpro.com/apis/merchant-reconciliation.openapi/payoutlist/getpayoutlist.md): This API is used to indicate if there are payouts available after a payout run.
If there are no payouts for any reason, API will indicate it in the response by returning an empty list..

## payoutPayments

### get list of payments

 - [GET /v3/reconciliation/payments](https://docs.bancontactpro.com/apis/merchant-reconciliation.openapi/payoutpayments/getpayments.md): Endpoint to get list of payments

## payoutRefunds

### get list of refunds

 - [GET /v3/reconciliation/refunds](https://docs.bancontactpro.com/apis/merchant-reconciliation.openapi/payoutrefunds/getrefunds.md): Endpoint to get list of refunds.

