Originating RTP Requests for Payment (RfPs)

In this tutorial we explore originating a Request for Payment (RfP) from a master account. We will also register relevant webhooks to receive status updates on our payment. Before starting the tutorial, please make sure you have the following:

• API credentials
• Partner ID
• Master Account Number

This tutorial also assumes you have already opened a master account. If not, please complete the Opening an Account tutorial prior to completing this tutorial.

Get an Access Token

Before calling the COS API you must first request an access token. Once the access token has been obtained it is recommended that it is cached for the lifetime of the token. If the API starts to return a 401 response code, it is likely that your token has expired and you need to obtain a new one. More details can be found here.

Register Webhooks

Webhooks allow us to receive notifications when certain events occur within COS. After we originate our RfP in the step below, we will want to stay informed in order to track the payment through its lifecycle. For that you will need to call the webhook registration endpoint and indicate you wish to receive certain events.

Rtp.Payment.Sent will notify you in the event your payment has been sent over the RTP network.

POST /webhooks/v1/registrations
{
  "partnerId": "00000000-0000-0000-0000-000000000000",
  "eventName": "Rtp.Payment.Sent",
  "registrationType": "Push", 
  "callbackUrl": "https://cos.yourcompanysite.com/rtp-events"
}

Rtp.Payment.Received will notify you in the event a credit transfer is received as a response to your outbound RFP.

POST /webhooks/v1/registrations
{
  "partnerId": "00000000-0000-0000-0000-000000000000",
  "eventName": "Rtp.Payment.Received",
  "registrationType": "Push", 
  "callbackUrl": "https://cos.yourcompanysite.com/rtp-events"
}

To learn more about webhook registrations click here. For a full listing of available RTP webhook events click here.

Before We Begin...

The Request for Payment (RfP) message is sent by the Creditor (sending party) to the Debtor (receiving party) through their respective FIs. This message is used to request the initiation of a Credit Transfer message (a credit payment) from the party that receives the message.

After receiving an RfP, the receiving FI can do one of the following:

  • The receiving FI sends a credit transfer
  • The receiving FI sends an RfP response indicating that the request has been rejected by the debtor
  • The receiving FI sends an RfP response indicating that a credit transfer will be sent
  • The receiving FI ignores the RfP

Requested Execution Date – Defines when the Credit Transfer should be sent, and can not be after the Expiry Date.
Expiry Date – Defines when the RfP expires.

🚧

Date and Time Handling

Requested Execution Date and Expiry Dates are handled as Eastern Time.

Time can be set on the Requested Execution Date and Expiry Date. However, if only the date is provided then the time will default to 12:00AM Eastern Time.

Originating a Request for Payment (RFP)

In this scenario, we'll be simulating a person-to-person (P2P) transaction where John Wick is requesting $175.00 from Peter Griffin. John Wick is the creditor because he is the receiver of the funds when Peter Griffin, the debtor, responds to John's RfP with a credit transfer.

POST /v1/payments/payment-request
{
  "accountNumber": "2686062254",
  "amount": 17500,
  "discount": 0,
  "debtor": {
    "routingNumber": "011000138",
    "accountNumber": "456789000",
    "name": "Peter Griffin",
    "addressStreetName": "Spooner St",
    "addressBuildingNumber": "33",
    "addressCity": "Quahog",
    "addressState": "RI",
    "addressPostalCode": "10025",
    "addressCountry": "US"
  },
  "requestedExecutionDate": "2021-08-17",
  "expiryDate": "2021-08-19"    
}

🚧

It is highly recommended to include an idempotency key in your request header. This will provide duplicate protection in the event of a failure. Read more about idempotency keys here.

Here's a sample response body based on the above request:

{
    "id": "b2fd1c31-7a87-447e-9d9f-ad8600f5a822",
    "originalPaymentId": "b2fd1c31-7a87-447e-9d9f-ad8600f5a822",
    "referenceId": "R228OS497X04Y",
    "accountNumber": "2686062254",
    "amount": 17500,
    "direction": "Outbound",
    "status": "Created",
    "paymentType": "RequestForPayment",
    "source": "Api",
    "transactionAccountContext": "NotSubmitted",
    "debtor": {
        "routingNumber": "011000138",
        "accountNumber": "456789000",
        "name": "Peter Griffin",
        "addressStreetName": "Spooner St",
        "addressBuildingNumber": "33",
        "addressCity": "Quahog",
        "addressState": "RI",
        "addressPostalCode": "10025",
        "addressCountry": "US"
    },
    "creditor": {
        "routingNumber": "021214891",
        "accountNumber": "2686062254",
        "name": "John Wick",
        "addressStreetName": "110 West Ave",
        "addressCity": "Valhalla",
        "addressState": "NY",
        "addressPostalCode": "10504",
        "addressCountry": "US"
    },
    "network": {
        "businessMessageId": "B20210816021214273T1BHZK43644601467",
        "messageId": "M20210816021214273T1BHAQ17293122714",
        "createdAt": "2021-08-16T10:54:24.5348735-04:00",
        "numberOfTransactions": 1,
        "interbankSettlementAmount": 17500,
        "currency": "USD",
        "interbankSettlementDate": "2021-08-16",
        "settlementMethod": "CLRG",
        "clearingSystemCode": "TCH",
        "instructionId": "20210816021214273T1BP6MK22624348645",
        "endToEndId": "5bf3a9d6652549ae9d03ad8600f5a822",
        "fromParticipantId": "021214273T1",
        "toParticipantId": "990000001S1",
        "instructingRoutingNumber": "021214891",
        "instructedRoutingNumber": "011000138",
        "headerCreationDate": "2021-08-16T10:54:24.5348735-04:00",
        "messageCreationDateTime": "2021-08-16T10:54:24.5348735-04:00"
    },
    "serviceLevelCode": "SDVA",
    "localInstrumentProprietary": "STANDARD",
    "categoryPurpose": "CONSUMER",
    "currency": "USD",
    "chargeBearer": "SLEV",
    "paymentInfoId": "20210816021214273T1BP6MK22624348645",
    "reqExecutionDate": {
        "date": "2021-08-16T23:59:59-04:00",
        "dateType": "DtTm"
    },
    "expiryDate": {
        "date": "2021-08-18T23:59:59-04:00",
        "dateType": "DtTm"
    },
    "paymentConditions": {
        "amountModAllowed": false,
        "earlyPayAllowed": true,
        "acceptedAmount": 17500
    },
    "purpose": "NA",
    "wasRefunded": false,
    "wasPaid": false,
    "createdAt": "2021-08-16T10:54:24.5348735-04:00",
    "productId": "d3e6c8ce-3277-4cdd-bfa4-ad800131bd92",
    "partnerId": "4c5b488d-711d-428a-bdae-ad800131970d",
    "lastModifiedAt": "2021-08-16T10:54:24.5358734-04:00",
    "sendAttemptCount": 0,
    "discounts": [],
    "awaitingResponse": false
}

In the response header of every request is a Request-ID value. This is a unique identifier for your request and is useful when troubleshooting issues with our support team. It is recommended you log this identifier.

{
  "access-control-allow-credentials": "true",
  "access-control-allow-origin": "https://sandbox.crbcos.com",
  "cache-control": "no-cache",
  "content-length": "2234",
  "content-type": "application/json; charset=utf-8",
  "date": "Mon, 16 Aug 2021 14:54:24 GMT",
  "expires": "-1",
  "pragma": "no-cache",
  "request-id": "07ee7fc6-b83c-4666-9ba1-ad8600f5a81c",
  "server": "Microsoft-IIS/8.5",
  "x-aspnet-version": "4.0.30319",
  "x-frame-options": "SAMEORIGIN",
  "x-powered-by": "ASP.NET"
}

Once the payment is processed and released to the RTP network, the Rtp.Payment.Sent webhook should trigger. This event will display the ID of your outbound RfP in the resources attribute:

{
  "id": "1e6ccfc2-a11d-49da-a937-ad8600f5b886",
  "eventName": "Rtp.Payment.Sent",
  "status": "Pending",
  "partnerId": "4c5b488d-711d-428a-bdae-ad800131970d",
  "createdAt": "2021-08-16T10:54:38.523-04:00",
  "resources": [
    "rtp/v1/payments/b2fd1c31-7a87-447e-9d9f-ad8600f5a822"
  ],
  "details": []
}

Call the GET /v1/payments/{id} endpoint using the ID in the resources section above. Here's a sample response to that endpoint:

GET /v1/payments/{id}
{
    "id": "b2fd1c31-7a87-447e-9d9f-ad8600f5a822",
    "originalPaymentId": "b2fd1c31-7a87-447e-9d9f-ad8600f5a822",
    "referenceId": "R228OS497X04Y",
    "accountNumber": "2686062254",
    "amount": 17500,
    "authorizationTransactionId": "b2fd1c31-7a87-447e-9d9f-ad8600f5a822",
    "direction": "Outbound",
    "status": "Completed",
    "paymentType": "RequestForPayment",
    "source": "Api",
    "transactionAccountContext": "Complete",
    "rtpTransactionStatus": "RCVD",
    "debtor": {
        "routingNumber": "011000138",
        "accountNumber": "456789000",
        "name": "Peter Griffin",
        "addressStreetName": "Spooner St",
        "addressBuildingNumber": "33",
        "addressCity": "Quahog",
        "addressState": "RI",
        "addressPostalCode": "10025",
        "addressCountry": "US"
    },
    "creditor": {
        "routingNumber": "021214891",
        "accountNumber": "2686062254",
        "name": "John Wick",
        "addressStreetName": "110 West Ave",
        "addressCity": "Valhalla",
        "addressState": "NY",
        "addressPostalCode": "10504",
        "addressCountry": "US"
    },
    "network": {
        "messageDefId": "pain.013.001.07",
        "businessMessageId": "B20210816021214273T1BEGO25550516652",
        "messageId": "M20210816021214273T1BHAQ17293122714",
        "createdAt": "2021-08-16T10:54:24.533-04:00",
        "numberOfTransactions": 1,
        "interbankSettlementAmount": 17500,
        "currency": "USD",
        "interbankSettlementDate": "2021-08-16",
        "settlementMethod": "CLRG",
        "clearingSystemCode": "TCH",
        "instructionId": "20210816021214273T1BP6MK22624348645",
        "endToEndId": "5bf3a9d6652549ae9d03ad8600f5a822",
        "fromParticipantId": "021214273T1",
        "toParticipantId": "990000001S1",
        "instructingRoutingNumber": "021214891",
        "instructedRoutingNumber": "011000138",
        "headerCreationDate": "2021-08-16T10:54:24.917-04:00",
        "messageCreationDateTime": "2021-08-16T10:54:24.533-04:00"
    },
    "confirmedStatus": {
        "messageStatusReportId": "a81ccf95-db89-4c22-97ad-ad8600f5a8b3",
        "acceptedDateTime": "2021-08-16T10:54:24.943-04:00",
        "transactionStatus": "RCVD"
    },
    "serviceLevelCode": "SDVA",
    "localInstrumentProprietary": "STANDARD",
    "categoryPurpose": "CONSUMER",
    "currency": "USD",
    "chargeBearer": "SLEV",
    "paymentInfoId": "20210816021214273T1BP6MK22624348645",
    "reqExecutionDate": {
        "date": "2021-08-16T23:59:59-04:00",
        "dateType": "DtTm"
    },
    "expiryDate": {
        "date": "2021-08-18T23:59:59-04:00",
        "dateType": "DtTm"
    },
    "paymentConditions": {
        "amountModAllowed": false,
        "earlyPayAllowed": true,
        "acceptedAmount": 17500
    },
    "purpose": "NA",
    "wasRefunded": false,
    "wasPaid": true,
    "createdAt": "2021-08-16T10:54:24.533-04:00",
    "completedAt": "2021-08-16T10:54:25.087-04:00",
    "processingStartedAt": "2021-08-16T10:54:24.873-04:00",
    "postingCode": "OK",
    "productId": "d3e6c8ce-3277-4cdd-bfa4-ad800131bd92",
    "partnerId": "4c5b488d-711d-428a-bdae-ad800131970d",
    "lastModifiedAt": "2021-08-16T10:54:25.6257073-04:00",
    "sentAt": "2021-08-16T10:54:24.9166667-04:00",
    "sendAttemptCount": 1,
    "result": {
        "code": "OK"
    },
    "discounts": [],
    "awaitingResponse": false
}

A successfully sent Payment Request will have a status of Completed and AwaitingResponse = true.

If the debtor responds to your outbound RfP by sending a credit transfer, this will be captured by the Rtp.Payment.Received webhook event. For example:

{
  "id": "4543c296-8aa2-43a7-8401-ad8600f5b88a",
  "eventName": "Rtp.Payment.Received",
  "status": "Pending",
  "partnerId": "4c5b488d-711d-428a-bdae-ad800131970d",
  "createdAt": "2021-08-16T10:54:38.537-04:00",
  "resources": [
    "rtp/v1/payments/cc16cc34-55ab-4a95-8f79-ad8600f5a8b9"
  ],
  "details": []
}

Take the ID within the resources section and use the GET /v1/payments/{id} endpoint to query the details of the inbound credit message:

{
    "id": "cc16cc34-55ab-4a95-8f79-ad8600f5a8b9",
    "originalPaymentId": "b2fd1c31-7a87-447e-9d9f-ad8600f5a822",
    "referenceId": "R228I42Q92862",
    "accountNumber": "2686062254",
    "amount": 17500,
    "operatorCoreTransactionId": "9eabd2d4-125e-4ea5-b89e-ad8600f5a920",
    "authorizationTransactionId": "cc16cc34-55ab-4a95-8f79-ad8600f5a8b9",
    "direction": "Inbound",
    "status": "Completed",
    "paymentType": "CreditTransfer",
    "source": "ClearingHouse",
    "transactionAccountContext": "Complete",
    "rtpTransactionStatus": "ACTC",
    "debtor": {
        "routingNumber": "011000138",
        "accountNumber": "456789000",
        "name": "credittransferonly: Peter Griffin",
        "addressStreetName": "Spooner St",
        "addressBuildingNumber": "33",
        "addressCity": "Quahog",
        "addressState": "RI",
        "addressPostalCode": "10025",
        "addressCountry": "US"
    },
    "creditor": {
        "routingNumber": "021214891",
        "accountNumber": "2686062254",
        "name": "John Wick",
        "addressStreetName": "110 West Ave",
        "addressCity": "Valhalla",
        "addressState": "NY",
        "addressPostalCode": "10504",
        "addressCountry": "US"
    },
    "network": {
        "messageDefId": "pacs.008.001.08",
        "businessMessageId": "B20210816990000001S1BHGW12498461696",
        "messageId": "M20210816990000001S1BWZE98158013489",
        "createdAt": "2021-08-16T10:54:24-04:00",
        "numberOfTransactions": 1,
        "interbankSettlementAmount": 17500,
        "currency": "USD",
        "interbankSettlementDate": "2021-08-16",
        "settlementMethod": "CLRG",
        "clearingSystemCode": "TCH",
        "instructionId": "20210816021214273T1BP6MK22624348645",
        "endToEndId": "6a360928dc2e4e5e9975ad8600f5a89e",
        "transactionId": "20210816021214273T1BP6MK22624348645",
        "clearingSystemRef": "1",
        "fromParticipantId": "990000001S1",
        "toParticipantId": "021214273T1",
        "instructingRoutingNumber": "011000138",
        "instructedRoutingNumber": "021214891",
        "headerCreationDate": "2021-08-16T10:54:24-04:00",
        "messageCreationDateTime": "2021-08-16T10:54:24-04:00"
    },
    "reportedStatus": {
        "messageStatusReportId": "cc5b017f-0264-4b4a-a766-ad8600f5a8f7",
        "acceptedDateTime": "2021-08-16T10:54:25.247-04:00",
        "transactionStatus": "ACTC"
    },
    "confirmedStatus": {
        "messageStatusReportId": "9eabd2d4-125e-4ea5-b89e-ad8600f5a920",
        "acceptedDateTime": "2021-08-16T10:54:25-04:00",
        "transactionStatus": "ACTC"
    },
    "serviceLevelCode": "SDVA",
    "localInstrumentProprietary": "STANDARD",
    "categoryPurpose": "CONSUMER",
    "currency": "USD",
    "chargeBearer": "SLEV",
    "purpose": "Credit Transfer",
    "wasRefunded": false,
    "wasPaid": false,
    "createdAt": "2021-08-16T10:54:25.137-04:00",
    "completedAt": "2021-08-16T10:54:25.627-04:00",
    "processingStartedAt": "2021-08-16T10:54:25.22-04:00",
    "postingCode": "OK",
    "productId": "d3e6c8ce-3277-4cdd-bfa4-ad800131bd92",
    "partnerId": "4c5b488d-711d-428a-bdae-ad800131970d",
    "lastModifiedAt": "2021-08-16T10:54:25.6287081-04:00",
    "sendAttemptCount": 0,
    "result": {
        "code": "OK"
    },
    "discounts": [],
    "awaitingResponse": false,
    "referencedPaymentId": "b2fd1c31-7a87-447e-9d9f-ad8600f5a822"
}

When a Credit Transfer is received referencing the Payment Request, AwaitingResponse will be set to false and WasPaid will be set to true.

The status for Payment Requests that do not receive a Credit Transfer prior to the ExpiryDate will be changed to Expired.

Canceling an RfP

Partners can cancel a previously sent Request For Payment if:

  • The debtor has not responded with a reject response
  • The debtor has not responded with a credit transfer

🚧

When canceling an RfP, a Request Cancellation Code must be supplied.

POST /v1/payments/00000000-0000-0000-0000-000000000001/payment-request/cancel
{
  "reasonCode": "TECH"
}

Approving an Inbound RFP

When a Payment Request is approved, a Payment Request Response is sent to the creditor with a positive response, immediately followed by a Credit Transfer.

A received payment request with PaymentConditions.AmountModeAllowed = true allows for a different amount to be sent to the creditor FI than the amount specified in the Payment Request.

POST /v1/payments/9120FA29-5713-45BD-8BF7-AD8600FC1F16/payment-request/approve
{
  "amount": 450
}

A successfully sent response and Credit Transfer will change the Payment Request AwaitingResponse = false and WasPaid = true.

Rejecting an Inbound RFP

When an inbound RFP is rejected, COS will respond to the creditor FI by informing them that the Payment Request has been rejected. A successfully sent response will change the Payment Request AwaitingResponse = false.

POST /v1/payments/00000000-0000-0000-0000-000000000001/payment-request/reject
{
  "reasonCode": " AC06"
}

Simulating RFP Responses

Payment Request Responses can be simulated by prefixing the debtor on the outbound Payment Request.

Simulate a rejection from the receiving FI: Prefix the debtor name with “reject:”
Simulate receiving FI responding with a credit transfer: Prefix the debtor name with “credittransferonly:”
Simulate receiving FI responding with an RfP Response followed by a credit transfer: Prefix the debtor name with “includecredittransfer:”

Debtor names that do not contain any of the above prefix values will receive a positive Request For Payment Response.

Here's an example of a request which will simulate a rejection by the debtor (receiver):

POST /v1/payments/payment-request
{
  "accountNumber": "2645256591",
  "amount": 51000,
  "discount": 0,
  "debtor": {
    "routingNumber": "011000138",
    "accountNumber": "456789000",
    "name": "reject: John Wick",
    "addressStreetName": "123 Maple St.",
    "addressBuildingNumber": "3432",
    "addressCity": "New York",
    "addressState": "NY",
    "addressPostalCode": "10025",
    "addressCountry": "US"
  },
  "requestedExecutionDate": "2021-08-17",
  "expiryDate": "2021-08-19"
}
{
    "id": "f255daed-5019-4614-ace7-ad8600fd9e40",
    "originalPaymentId": "f255daed-5019-4614-ace7-ad8600fd9e40",
    "referenceId": "R228O07Z2JSEF",
    "accountNumber": "2645256591",
    "amount": 5100,
    "direction": "Outbound",
    "status": "Created",
    "paymentType": "RequestForPayment",
    "source": "Api",
    "transactionAccountContext": "NotSubmitted",
    "debtor": {
        "routingNumber": "011000138",
        "accountNumber": "456789000",
        "name": "reject:John Wick",
        "addressStreetName": "123 Maple St.",
        "addressBuildingNumber": "3432",
        "addressCity": "New York",
        "addressState": "NY",
        "addressPostalCode": "10025",
        "addressCountry": "US"
    },
    "creditor": {
        "routingNumber": "021214891",
        "accountNumber": "2645256591",
        "name": "John Wick CHECK Testing",
        "addressStreetName": "110 West Ave",
        "addressCity": "Valhalla",
        "addressState": "NY",
        "addressPostalCode": "10504",
        "addressCountry": "US"
    },
    "network": {
        "businessMessageId": "B20210816021214273T1BJXA14878062976",
        "messageId": "M20210816021214273T1BJVH74121589966",
        "createdAt": "2021-08-16T11:23:23.7283823-04:00",
        "numberOfTransactions": 1,
        "interbankSettlementAmount": 5100,
        "currency": "USD",
        "interbankSettlementDate": "2021-08-16",
        "settlementMethod": "CLRG",
        "clearingSystemCode": "TCH",
        "instructionId": "20210816021214273T1B0RA263421316852",
        "endToEndId": "401f507568f741c7bab6ad8600fd9e40",
        "fromParticipantId": "021214273T1",
        "toParticipantId": "990000001S1",
        "instructingRoutingNumber": "021214891",
        "instructedRoutingNumber": "011000138",
        "headerCreationDate": "2021-08-16T11:23:23.7283823-04:00",
        "messageCreationDateTime": "2021-08-16T11:23:23.7283823-04:00"
    },
    "serviceLevelCode": "SDVA",
    "localInstrumentProprietary": "STANDARD",
    "categoryPurpose": "CONSUMER",
    "currency": "USD",
    "chargeBearer": "SLEV",
    "paymentInfoId": "20210816021214273T1B0RA263421316852",
    "reqExecutionDate": {
        "date": "2021-08-16T23:59:59-04:00",
        "dateType": "DtTm"
    },
    "expiryDate": {
        "date": "2021-08-18T23:59:59-04:00",
        "dateType": "DtTm"
    },
    "paymentConditions": {
        "amountModAllowed": false,
        "earlyPayAllowed": true,
        "acceptedAmount": 5100
    },
    "purpose": "NA",
    "wasRefunded": false,
    "wasPaid": false,
    "createdAt": "2021-08-16T11:23:23.7283823-04:00",
    "productId": "d3e6c8ce-3277-4cdd-bfa4-ad800131bd92",
    "partnerId": "4c5b488d-711d-428a-bdae-ad800131970d",
    "lastModifiedAt": "2021-08-16T11:23:23.7293822-04:00",
    "sendAttemptCount": 0,
    "discounts": [],
    "awaitingResponse": false
}

Webhook details for the above request:

{
  "id": "95e8b8da-7578-4592-b50d-ad8600fdb980",
  "eventName": "Rtp.Payment.Sent",
  "status": "Pending",
  "partnerId": "4c5b488d-711d-428a-bdae-ad800131970d",
  "createdAt": "2021-08-16T11:23:46.977-04:00",
  "resources": [
    "rtp/v1/payments/f255daed-5019-4614-ace7-ad8600fd9e40"
  ],
  "details": []
}

COS will simulate a reject response for your outbound RfP. That inbound response will trigger the Rtp.Payment.Received event which contains the ID of the inbound reject payment message:

{
  "id": "4543c296-8aa2-43a7-8401-ad8600f5b88a",
  "eventName": "Rtp.Payment.Received",
  "status": "Pending",
  "partnerId": "4c5b488d-711d-428a-bdae-ad800131970d",
  "createdAt": "2021-08-16T11:54:38.537-04:00",
  "resources": [
    "rtp/v1/payments/89aa613a-89f3-4c1a-97a9-ad8600fd9eb7"
  ],
  "details": []
}

Using the GET /v1/payments/{id} endpoint with the payment ID in the resource section above, here's what the simulated rejection looks like:

GET /v1/payments/{id}
{
  "id": "89aa613a-89f3-4c1a-97a9-ad8600fd9eb7",
  "originalPaymentId": "f255daed-5019-4614-ace7-ad8600fd9e40",
  "referenceId": "R228I31UNG1P7",
  "accountNumber": "2645256591",
  "amount": 5100,
  "direction": "Inbound",
  "status": "Completed",
  "paymentType": "RequestForPaymentResponse",
  "source": "Phone",
  "transactionAccountContext": "Complete",
  "rtpTransactionStatus": "RCVD",
  "debtor": {
    "routingNumber": "011000138"
  },
  "creditor": {
    "routingNumber": "021214891",
    "name": "John Wick CHECK Testing"
  },
  "network": {
    "messageDefId": "pain.014.001.07",
    "businessMessageId": "B20210816990000001S1BBGQ93170978822",
    "messageId": "M20210816990000001S1BJUQ01232371349",
    "createdAt": "2021-08-16T11:23:24-04:00",
    "numberOfTransactions": 0,
    "interbankSettlementAmount": 0,
    "instructionId": "20210816021214273T1B0RA263421316852",
    "fromParticipantId": "990000001S1",
    "toParticipantId": "021214273T1",
    "instructingRoutingNumber": "011000138",
    "instructedRoutingNumber": "021214891",
    "headerCreationDate": "2021-08-16T11:23:24-04:00",
    "messageCreationDateTime": "2021-08-16T11:23:24-04:00"
  },
  "originalMsgRefs": {
    "messageId": "M20210816021214273T1BJVH74121589966",
    "messageNameId": "pain.013.001.07",
    "creationDateTime": "2021-08-16T11:23:23-04:00",
    "interbankSettlementAmount": 0,
    "currency": "USD",
    "paymentInfoId": "20210816021214273T1B0RA263421316852"
  },
  "reportedStatus": {
    "messageStatusReportId": "d39e82ad-0630-4b7f-b11b-ad8600fd9edc",
    "acceptedDateTime": "2021-08-16T11:23:24.25-04:00",
    "transactionStatus": "RCVD"
  },
  "transactionInfo": {
    "status": "RJCT",
    "reasonCode": "CUST"
  },
  "reqExecutionDate": {
    "date": "2021-08-16T23:59:59-04:00",
    "dateType": "DtTm"
  },
  "paymentConditions": {
    "amountModAllowed": false,
    "acceptedAmount": 0
  },
  "wasRefunded": false,
  "wasPaid": false,
  "createdAt": "2021-08-16T11:23:24.193-04:00",
  "completedAt": "2021-08-16T11:23:24.193-04:00",
  "productId": "d3e6c8ce-3277-4cdd-bfa4-ad800131bd92",
  "partnerId": "4c5b488d-711d-428a-bdae-ad800131970d",
  "lastModifiedAt": "2021-08-16T11:23:24.252445-04:00",
  "sendAttemptCount": 0,
  "result": {
    "code": "CUST"
  },
  "discounts": [],
  "awaitingResponse": false,
  "referencedPaymentId": "f255daed-5019-4614-ace7-ad8600fd9e40"
}

Within transactionInfo you'll see status RJCT and reasonCode CUST indicating that your request was rejected by the customer (debtor).


Did this page help you?