---
title: Print check payment
slug: apis/payments/checks/print-and-send-a-check
icon: {"apiMethod":"POST"}
docTags: 
createdAt: 2026-05-12T08:37:09.655Z
---

# Relevant webhooks

For this endpoint be sure you have [registered](docId\:BN5XtgkJogBe-CtwomCbS) for these webhooks:

- [Check.PrintedPayment.Submitted](docId\:cWUBvaS0BDIfokyxu5LhQ)
- [Check.PrintedPayment.Sent](docId\:cWUBvaS0BDIfokyxu5LhQ)
- Check.PrintedPayment.Failed
- [Check.PrintedPayment.Returned](docId\:cWUBvaS0BDIfokyxu5LhQ)
- [Check.PrintedPayment.Canceled](docId\:cWUBvaS0BDIfokyxu5LhQ)
- [Core.Transaction.Completed](docId\:cWUBvaS0BDIfokyxu5LhQ)&#x20;
- [Check.PositivePay.Created](docId\:cWUBvaS0BDIfokyxu5LhQ)&#x20;
- [Check.PositivePay.Revoked](docId\:cWUBvaS0BDIfokyxu5LhQ)&#x20;

## API reference

Sends a request to print and deliver a physical check.

:::ApiMethodV2
```json
{
  "name": "Endpoint: /checks/v1/printed-payments",
  "method": "POST",
  "url": "https://sandbox.crbcos.com/checks/v1/printed-payments",
  "description": "",
  "tab": "examples",
  "examples": {
    "languages": [
      {
        "id": "CkBeCLe8iPdXERwfge2bM",
        "language": "curl",
        "code": "curl --location 'https://sandbox.crbcos.com/checks/v1/printed-payments' \\\n--data '{\n  \"accountNumber\": \"2136870751\",\n  \"amount\": 5000,\n  \"payeeName\": \"Frank Wright\",\n  \"payeeAddress\": \"123 Main Street\",\n  \"payeeCity\": \"New York\",\n  \"payeeState\": \"NY\",\n  \"payeeCountry\": \"US\",\n  \"payeeZip\": \"10001\",\n  \"memo\": \"Test check print\",\n  \"postageCode\": \"UspsFirstClass\"\n}'",
        "customLabel": ""
      },
      {
        "id": "R0cJ16YtHxcXH-RUxYsiI",
        "language": "nodejs",
        "code": "var https = require('follow-redirects').https;\nvar fs = require('fs');\n\nvar options = {\n  'method': 'POST',\n  'hostname': 'sandbox.crbcos.com',\n  'path': '/checks/v1/printed-payments',\n  'headers': {\n  },\n  'maxRedirects': 20\n};\n\nvar req = https.request(options, function (res) {\n  var chunks = [];\n\n  res.on(\"data\", function (chunk) {\n    chunks.push(chunk);\n  });\n\n  res.on(\"end\", function (chunk) {\n    var body = Buffer.concat(chunks);\n    console.log(body.toString());\n  });\n\n  res.on(\"error\", function (error) {\n    console.error(error);\n  });\n});\n\nvar postData =  \"{\\r\\n  \\\"accountNumber\\\": \\\"2136870751\\\",\\r\\n  \\\"amount\\\": 5000,\\r\\n  \\\"payeeName\\\": \\\"Frank Wright\\\",\\r\\n  \\\"payeeAddress\\\": \\\"123 Main Street\\\",\\r\\n  \\\"payeeCity\\\": \\\"New York\\\",\\r\\n  \\\"payeeState\\\": \\\"NY\\\",\\r\\n  \\\"payeeCountry\\\": \\\"US\\\",\\r\\n  \\\"payeeZip\\\": \\\"10001\\\",\\r\\n  \\\"memo\\\": \\\"Test check print\\\",\\r\\n  \\\"postageCode\\\": \\\"UspsFirstClass\\\"\\r\\n}\";\n\nreq.write(postData);\n\nreq.end();",
        "customLabel": ""
      },
      {
        "id": "UMYly34RoUPy6jqzNYt3B",
        "language": "python",
        "code": "import requests\n\nurl = \"https://sandbox.crbcos.com/checks/v1/printed-payments\"\n\npayload = \"{\\r\\n  \\\"accountNumber\\\": \\\"2136870751\\\",\\r\\n  \\\"amount\\\": 5000,\\r\\n  \\\"payeeName\\\": \\\"Frank Wright\\\",\\r\\n  \\\"payeeAddress\\\": \\\"123 Main Street\\\",\\r\\n  \\\"payeeCity\\\": \\\"New York\\\",\\r\\n  \\\"payeeState\\\": \\\"NY\\\",\\r\\n  \\\"payeeCountry\\\": \\\"US\\\",\\r\\n  \\\"payeeZip\\\": \\\"10001\\\",\\r\\n  \\\"memo\\\": \\\"Test check print\\\",\\r\\n  \\\"postageCode\\\": \\\"UspsFirstClass\\\"\\r\\n}\"\nheaders = {}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n",
        "customLabel": ""
      },
      {
        "id": "WWP50RcXc8ToFfmoJIMbu",
        "language": "ruby",
        "code": "require \"uri\"\nrequire \"net/http\"\n\nurl = URI(\"https://sandbox.crbcos.com/checks/v1/printed-payments\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest.body = \"{\\r\\n  \\\"accountNumber\\\": \\\"2136870751\\\",\\r\\n  \\\"amount\\\": 5000,\\r\\n  \\\"payeeName\\\": \\\"Frank Wright\\\",\\r\\n  \\\"payeeAddress\\\": \\\"123 Main Street\\\",\\r\\n  \\\"payeeCity\\\": \\\"New York\\\",\\r\\n  \\\"payeeState\\\": \\\"NY\\\",\\r\\n  \\\"payeeCountry\\\": \\\"US\\\",\\r\\n  \\\"payeeZip\\\": \\\"10001\\\",\\r\\n  \\\"memo\\\": \\\"Test check print\\\",\\r\\n  \\\"postageCode\\\": \\\"UspsFirstClass\\\"\\r\\n}\"\n\nresponse = https.request(request)\nputs response.read_body\n",
        "customLabel": ""
      },
      {
        "id": "0ArpUVqPMAC6wyFq4z7UR",
        "language": "go",
        "code": "package main\n\nimport (\n  \"fmt\"\n  \"strings\"\n  \"net/http\"\n  \"io\"\n)\n\nfunc main() {\n\n  url := \"https://sandbox.crbcos.com/checks/v1/printed-payments\"\n  method := \"POST\"\n\n  payload := strings.NewReader(`{`+\"\n\"+`\n  \"accountNumber\": \"2136870751\",`+\"\n\"+`\n  \"amount\": 5000,`+\"\n\"+`\n  \"payeeName\": \"Frank Wright\",`+\"\n\"+`\n  \"payeeAddress\": \"123 Main Street\",`+\"\n\"+`\n  \"payeeCity\": \"New York\",`+\"\n\"+`\n  \"payeeState\": \"NY\",`+\"\n\"+`\n  \"payeeCountry\": \"US\",`+\"\n\"+`\n  \"payeeZip\": \"10001\",`+\"\n\"+`\n  \"memo\": \"Test check print\",`+\"\n\"+`\n  \"postageCode\": \"UspsFirstClass\"`+\"\n\"+`\n}`)\n\n  client := &http.Client {\n  }\n  req, err := http.NewRequest(method, url, payload)\n\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  res, err := client.Do(req)\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  defer res.Body.Close()\n\n  body, err := io.ReadAll(res.Body)\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  fmt.Println(string(body))\n}",
        "customLabel": ""
      }
    ],
    "selectedLanguageId": "CkBeCLe8iPdXERwfge2bM"
  },
  "results": {
    "languages": [
      {
        "id": "QqHiLt-FHhPgn7vzGSzAQ",
        "language": "200",
        "code": "{\n    \"id\": \"2c49c6ec-ad60-41fc-99e8-b49e00f92120\",\n    \"fundingAccountNumber\": \"2136870751\",\n    \"status\": \"Requested\",\n    \"reserveAccountNumber\": \"2532597750\",\n    \"amount\": 5000,\n    \"checkNumber\": 1000,\n    \"payeeName\": \"Frank Wright\",\n    \"payeeAddress\": \"123 Main Street\",\n    \"payeeCity\": \"New York\",\n    \"payeeState\": \"NY\",\n    \"payeeCountry\": \"US\",\n    \"payeeZip\": \"10001\",\n    \"lastModifiedAt\": \"2026-08-06T11:07:03.1485756-04:00\",\n    \"memo\": \"Test check print\",\n    \"postageCode\": \"UspsFirstClass\",\n    \"partnerId\": \"cd9c12f4-7691-424a-b38b-af5b0134c611\"\n}",
        "customLabel": ""
      },
      {
        "id": "TtYCharr2YgBjYgqWdlIo",
        "language": "400",
        "code": "{\n    \"errors\": [\n        {\n            \"code\": 2331,\n            \"message\": \"Printing Account not found\"\n        }\n    ]\n}"
      }
    ],
    "selectedLanguageId": "QqHiLt-FHhPgn7vzGSzAQ"
  },
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "name": "accountNumber",
        "kind": "required",
        "type": "string",
        "description": "The customer account from which the check payment will be drawn",
        "": "The customer account from which the check payment will be drawn"
      },
      {
        "name": "amount",
        "kind": "required",
        "type": "integer",
        "description": "The amount to be transferred, in cents. For example, 10001 = $100.01.",
        "": "amount"
      },
      {
        "name": "payeeName",
        "kind": "required",
        "type": "string",
        "description": "Name written on the pay to the order of line of the check. Maximum 48 characters.",
        "": "Name written on the pay to the order of line of the check. Maximum 48 characters."
      },
      {
        "name": "payeeAddress",
        "kind": "required",
        "type": "string",
        "description": "Primary address line for the payee. Maximum 60 characters.",
        "": "payeeAddress"
      },
      {
        "name": "payeeAddress2",
        "kind": "optional",
        "type": "string",
        "description": "Secondary address line. Maximum 60 characters.",
        "": "payeeAddress2"
      },
      {
        "name": "payeeCity",
        "kind": "required",
        "type": "string",
        "description": "City name for the payee's address. Maximum 20 characters",
        "": "payeeCity"
      },
      {
        "name": "payeeState",
        "kind": "required",
        "type": "string",
        "description": "State/province 2-letter code for the payee's address (validated against country field)",
        "": "payeeState"
      },
      {
        "name": "payeeCountry",
        "kind": "required",
        "type": "string",
        "description": " 2-letter ISO code for the payee's address country",
        "": " 2-letter ISO code for the payee's address country"
      },
      {
        "name": "zip",
        "kind": "required",
        "type": "string",
        "description": "Postal code, also known as ZIP code. 5 - 10 characters.",
        "": "Postal code, also known as ZIP code. 5 - 10 characters."
      },
      {
        "name": "memo",
        "kind": "required",
        "type": "string",
        "description": "Memo line printed on the check (for example, invoice number, purpose). Maximum 100 characters.",
        "": "Memo line printed on the check (for example, invoice number, purpose). Maximum 100 characters."
      },
      {
        "name": "stubText",
        "kind": "optional",
        "type": "string",
        "description": "Additional text printed on the check stub/voucher portion. Maximum 100 characters.",
        "": "Additional text printed on the check stub/voucher portion. Maximum 100 characters."
      },
      {
        "name": "postageCode",
        "kind": "optional",
        "type": "string",
        "description": "Shipping method for the physical check. One of:\n- UspsFirstClass (default)\n- UspsPriority\n- UspsPriorityConfirmation\n- UspsPrioritySignature\n- FedExExpress2Day\n- FedExExpressOvernight\n- UspsOvernight\n- UspsCertifiedMail\n- FedExPriorityOvernight ",
        "": "Shipping method for the physical check. One of:\n- UspsFirstClass (default)\n- UspsPriority\n- UspsPriorityConfirmation\n- UspsPrioritySignature\n- FedExExpress2Day\n- FedExExpressOvernight\n- UspsOvernight\n- UspsCertifiedMail\n- FedExPriorityOvernight "
      },
      {
        "name": "clientIdentifier",
        "kind": "optional",
        "type": "string",
        "description": "Use this attribute to add your own unique identifying string to a payment call or COS record. This attribute is useful for idempotency purposes. Maximum 50 characters.",
        "": "Use this attribute to add your own unique identifying string to a payment call or COS record. This attribute is useful for idempotency purposes. Maximum 50 characters."
      },
      {
        "name": "base64InsertData",
        "kind": "optional",
        "type": "string",
        "description": "Optional insert/attachment data to be included with the check as a PDF. Must be Base64 encoded.",
        "": "Optional insert/attachment data to be included with the check as a PDF. Must be Base64 encoded."
      }
    ],
    "formDataParameters": []
  },
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "response": [
    {
      "name": "id",
      "kind": "optional",
      "type": "string",
      "description": "Unique identifier for the printed payment transaction, in GUID format"
    },
    {
      "name": "fundingAccountNumber",
      "kind": "optional",
      "type": "string",
      "description": "The account number from which funds are drawn",
      "children": []
    },
    {
      "name": "status",
      "kind": "optional",
      "type": "string",
      "description": "Current status of the check.\n- Requested\n- Posting\n- Posted\n- Submitted\n- Confirmed\n- Mailed\n- Received\n- Failed\n- Returned\n- Canceled",
      "children": []
    },
    {
      "name": "reserveAccountNumber",
      "kind": "optional",
      "type": "string",
      "description": "Account number for the check printing account. This is the account number that appears on the printed check.",
      "children": []
    },
    {
      "name": "Amount",
      "kind": "optional",
      "type": "string",
      "description": "The amount to be transferred, in cents. For example, 10001 = $100.01.",
      "children": []
    },
    {
      "name": "checkNumber",
      "kind": "optional",
      "type": "string",
      "description": "The serial number that appears on the check",
      "children": []
    },
    {
      "name": "payeeName",
      "kind": "optional",
      "type": "string",
      "description": "Name written on the pay to the order of line of the check",
      "children": []
    },
    {
      "name": "address",
      "kind": "optional",
      "type": "string",
      "description": "Primary address line for the payee",
      "children": []
    },
    {
      "name": "address2",
      "kind": "optional",
      "type": "string",
      "description": "Secondary address line",
      "children": []
    },
    {
      "name": "city",
      "kind": "optional",
      "type": "string",
      "description": "City name for the payee's address",
      "children": []
    },
    {
      "name": "state",
      "kind": "optional",
      "type": "string",
      "description": "State/province 2-letter code for the payee's address ",
      "children": []
    },
    {
      "name": "country",
      "kind": "optional",
      "type": "string",
      "description": "Country 2-letter code for the payee's address",
      "children": []
    },
    {
      "name": "zip",
      "kind": "optional",
      "type": "string",
      "description": "Postal code, also known as ZIP code",
      "children": []
    },
    {
      "name": "lastModifiedAt",
      "kind": "optional",
      "type": "string",
      "description": "Internal Cross River value. Date and time the database entry was last modified. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]",
      "children": []
    },
    {
      "name": "memo",
      "kind": "optional",
      "type": "string",
      "description": "Memo line printed on the check (for example, invoice number, purpose)",
      "children": []
    },
    {
      "name": "stubText",
      "kind": "optional",
      "type": "string",
      "description": "Additional text printed on the check stub/voucher portion",
      "children": []
    },
    {
      "name": "postageCode",
      "kind": "optional",
      "type": "string",
      "description": "Shipping method for the physical check. One of:\n- UspsFirstClass\n- UspsPriority\n- UspsPriorityConfirmation\n- UspsPrioritySignature\n- FedExExpress2Day\n- FedExExpressOvernight\n- UspsOvernight\n- UspsCertifiedMail\n- FedExPriorityOvernight ",
      "children": []
    },
    {
      "name": "insertUrl",
      "kind": "optional",
      "type": "string",
      "description": "URL to access the insert/attachment document",
      "children": []
    },
    {
      "name": "clientIdentifier",
      "kind": "optional",
      "type": "string",
      "description": "Use this attribute to add your own unique identifying string to a payment call or COS record. This attribute is useful for idempotency purposes.",
      "children": []
    },
    {
      "name": "partnerId",
      "kind": "optional",
      "type": "string",
      "description": "Your unique ID in the Cross River system. This ID is in GUID format.",
      "children": []
    }
  ],
  "hasTryItOut": false,
  "autoGeneratedAnchorSlug": "endpoint-checksv1printed-payments",
  "legacyHash": "tYF7h8hn6FM3coscHl69C"
}
```
:::

