Skip to content

Introduction

Treezor allows your end users to cash checks.

Checks are a traditional means of physical payment, mapped to Payin objects, with a paymentMethodId attribute set to 26.

Gear icon

Configuration – Checks are not enabled by default

You can request access to this feature by contacting your Treezor Account Manager.

Warning icon

Important – Limitations

  • Recipient name on the check must match the Wallet owner name.
  • Maximum amount set by Treezor. Contact your Treezor Account Manager to define your limit.

Process

Check cashing into a Wallet implies the creation of the relevant object in Treezor API and the physical handling of checks so that they can be processed.

The steps are the following:

  1. You create a Payin (paymentMethodId 26)
  2. Treezor sends you a payin.create webhook (status 151124) allowing you to mail the check in
  3. You mail in the physical check to the indicated postal address
  4. The check is processed by Treezor's partner and is either:
    • Accepted – The payinStatus is set to VALIDATED
    • Refused – The payinStatus is set to CANCELED and the check is mailed back to you.

The processing of a check follows strict delays:

  • Delay between the check Payin creation and physical check reception can't exceed 14 days
  • Delay between the physical check reception and the validation can't be lower than 11 days
Check lifecycle
Bulb icon

Tip – Check lifecycles examples are available

Refer to the Lifecycle section for more information.

Anatomy of a check

The physical check contains information that you have to include in the corresponding Payin object.

Check illustration
SectionDescription
CMC7 lineThe unique identifier of the physical check printed in magnetic ink at the bottom of the check. Made up of:
  • CMC7A – The first part of the CMC7 line
  • CMC7B – The second part of the CMC7 line
  • CMC7C – The third part of the CMC7 line
RLMC keyThe 2-character key, enclosed by <> or () used to check the integrity of the CMC7 line (%97.)
DrawerInformation about the user who emitted the check.
BeneficiaryThe user who receives the check and cashes it.

Key attributes

Checks rely on the Payin object. Below are some of the relevant Payin attributes when it comes to cashing checks.

AttributeTypeDescription
paymentMethodIdintegerThe payment method. For checks, this value is always 26.
payinStatusstringThe status of the check cashing process. May be one of the following:
  • PENDING – Waiting for payment
  • VALIDATED – Payment is validated
  • CANCELED – Payment is canceled
amountfloatThe amount of the check.
currencystringThe currency of the check.
additionalDataobjectContains the cmc7 line, the drawer data and the RLMC key of the check.
code icon

API – Swagger documentation available

Refer to the Payins in the Swagger documentation for a complete list of Checks attributes.

Additional Data (additionalData)

The additionalData object allows you to provide information that is available on the physical check.

json
"additionalData":
	{
		"cheque":{
			"cmc7" : {									
				"a":"000036",						// required, 1st section of CMC7 line
				"b":"0230021566985",				// required, 2nd section of CMC7 line
				"c":"00700065456"					// required, 3rd section of CMC7 line
			},
			"RLMCKey":"22",							// required, RMLC key
			"drawerData":{							// required object
				"isNaturalPerson" : true,			// required, boolean, true: physical / false: legal entity
				"email":"aoak@example.com",			// drawer's email
				"firstName" : "Alex",				// drawer's firstname
				"lastName" : "Oak",					// drawer's lastname
				"address" : "22 Rosewood Lane",		// drawer's address
				"address2" : "App. 12",				// drawer's address continued
				"zipCode" : "75001",				// drawer's postcode
				"city" : "Paris"					// drawer's city
			}
		}
	}

Status Codes (codeStatus)

CodeDescription
140001Payment is pending, request is being processed by our partner
140004The cheque Payin has been cancelled before the reception at the treatment center.
140005Funds received by Treezor. Payin is validated and funds are usable on the wallet.
151124The cheque can now be sent to the treatement center
151125The controls of the cheque have failed.
151126The payment has been invalidated by our partner.
151129Cheque has been successfully treated. Waiting for bank settlement
151130Payment is in the 11 working days delay period, to prevent bounced cheques.
151132The check has been received by the treatment center of our partner.
151134The check has not been received by the treatement center in the allowed delay of 14 calendar days
151136Check rejected
170001Refund request
170005Refund validated

Structure

json
{
	"payinId": "2xxxxx1",
	"payinTag": "",
	"walletId": "3xxxx4",
	"userId": "1xxxx2",
	"payinStatus": "CANCELED",
	"paymentMethodId": "26",
	"messageToUser": "",
	"subtotalItems": "0.00",
	"subtotalServices": "0.00",
	"subtotalTax": "0.00",
	"amount": "195.00",
	"currency": "EUR",
	"createdDate": "2020-09-22 12:43:14",
	"walletEventName": "Name Test",
	"walletAlias": "Alias Test",
	"userFirstname": "TEST Chèque",
	"userLastname": "",
	"codeStatus": "151128",
	"informationStatus": "Cheque cannot be treated amount is too low comparing to original demand",
	"refundAmount": null,
	"DbtrIBAN": null,
	"forwardUrl": null,
	"paymentAcceptedUrl": null,
	"paymentRefusedUrl": null,
	"paymentWaitingUrl": null,
	"paymentExceptionUrl": null,
	"paymentCanceledUrl": null,
	"payinDate": "0000-00-00",
	"mandateId": "0",
	"creditorName": null,
	"creditorAddressLine": null,
	"creditorCountry": null,
	"creditorIban": null,
	"creditorBIC": null,
	"virtualIbanId": null,
	"virtualIbanReference": null,
	"additionalData": {
		"cheque":{
			"cmc7":{
				"a":"5xxxxx1", 
				"b":"0xxxxxxxxxx8", 
				"c":"1xxxxxxxxxx4"
			} 
			"RLMCKey": "xx", 
			"drawerData":{"isNaturalPerson":false}
		}
	}
}

Endpoints

EndpointScope
/v1/payins
Create a check payin
read_write
/v1/payins
Search for check payins
read_only
/v1/payins/{payinId}
Retrieve a check payin using its id
read_only
/v1/payins/{payinId}
Delete a check payin
read_write