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
.
Configuration – Checks are not enabled by default
You can request access to this feature by contacting your Treezor Account Manager.
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:
- You create a Payin (
paymentMethodId
26
) - Treezor sends you a
payin.create
webhook (status151124
) allowing you to mail the check in - You mail in the physical check to the indicated postal address
- The check is processed by Treezor's partner and is either:
- Accepted – The
payinStatus
is set toVALIDATED
- Refused – The
payinStatus
is set toCANCELED
and the check is mailed back to you.
- Accepted – The
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
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.
Section | Description |
---|---|
CMC7 line | The unique identifier of the physical check printed in magnetic ink at the bottom of the check. Made up of:
|
RLMC key | The 2-character key, enclosed by <> or () used to check the integrity of the CMC7 line (%97.) |
Drawer | Information about the user who emitted the check. |
Beneficiary | The 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.
Attribute | Type | Description |
---|---|---|
paymentMethodId | integer | The payment method. For checks, this value is always 26 . |
payinStatus | string | The status of the check cashing process. May be one of the following:
|
amount | float | The amount of the check. |
currency | string | The currency of the check. |
additionalData | object | Contains the cmc7 line, the drawer data and the RLMC key of the check. |
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
)
Code | Description |
---|---|
140001 | Payment is pending, request is being processed by our partner |
140004 | The cheque Payin has been cancelled before the reception at the treatment center. |
140005 | Funds received by Treezor. Payin is validated and funds are usable on the wallet. |
151124 | The cheque can now be sent to the treatement center |
151125 | The controls of the cheque have failed. |
151126 | The payment has been invalidated by our partner. |
151129 | Cheque has been successfully treated. Waiting for bank settlement |
151130 | Payment is in the 11 working days delay period, to prevent bounced cheques. |
151132 | The check has been received by the treatment center of our partner. |
151134 | The check has not been received by the treatement center in the allowed delay of 14 calendar days |
151136 | Check rejected |
170001 | Refund request |
170005 | Refund 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
Endpoint | Scope |
---|---|
/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 |