---
title: "Submit Check for MRDC"
method: POST
path: "/programs/{programCode}/fundfulfillment/mrdc"
tags: ["Transfers"]
---

# Submit Check for MRDC

`POST /programs/{programCode}/fundfulfillment/mrdc`

Submits a check for Mobile Remote Deposit Capture (MRDC) processing. Requires check and account details. Returns the result of the check submission.

## Path parameters

- `programCode` string, required

## Headers

- `X-GD-RequestId` string, required

## Request body

- MrdcPartialTransferRequest — Represents a request to initiate a partial Mobile Remote Deposit Capture (MRDC) transfer. Used to submit a check deposit for a partial amount, including check image data, deposit amount, currency, and routing details. Contains all necessary information for processing a partial MRDC transaction, such as the transfer identifier, currency, and endpoints for both the check source and target account. Inherits standard request metadata from Gd.Bos.DataTransfer.Request.RequestBase.
  - `transferIdentifier` string, nullable — The unique identifier for the MRDC transfer. Used for tracking, idempotency, and reference.
  - `currency` string, nullable — The ISO 4217 currency code for the deposit (e.g., "USD").
  - `transferRoute` MrdcPartialTransferRoute — Represents the routing details for a partial MRDC (Mobile Remote Deposit Capture) transfer operation. Contains the transaction amount, source endpoint (including check image and device data), and target endpoint (such as the destination account). Used to initiate and process partial check deposit transactions, supporting workflows that require check image capture, device metadata, and posting information for risk assessment and compliance.
    - `transactionAmount` number, double, required — The amount to be transferred in the MRDC transaction.
    - `sourceTransferEndpoint` MrdcPartialSourceEndpoint — Represents the source endpoint details for a partial MRDC (Mobile Remote Deposit Capture) transfer operation. Contains geolocation, encrypted check image data, device information, and posting details for the transaction. Used to capture and transfer all relevant source-side data for a check deposit, supporting risk assessment, compliance, and posting workflows.
      - `latitude` number, double — The latitude coordinate where the check image was captured.
      - `longitude` number, double — The longitude coordinate where the check image was captured.
      - `encryptedCheckImageData` EncryptedData — Represents a container for encrypted data used in secure data transfer operations. Contains the encrypted payload and associated cryptographic metadata, including encryption version, ephemeral public key, and public key hash. Used to securely transmit sensitive information such as user data, ensuring confidentiality and integrity during transport.
        - `version` string, nullable — The version of the encryption algorithm used to encrypt the data (e.g., "v1", "v2").
        - `ephemeralPublicKey` string, nullable — The ephemeral public key used in the encryption process, typically for key exchange or session establishment.
        - `publicKeyHash` string, nullable — The hash of the public key used to verify the integrity and authenticity of the encryption key.
        - `data` string, nullable — The encrypted data payload, typically base64-encoded, containing the sensitive information.
      - `encryptedCheckX9Data` EncryptedData — Represents a container for encrypted data used in secure data transfer operations. Contains the encrypted payload and associated cryptographic metadata, including encryption version, ephemeral public key, and public key hash. Used to securely transmit sensitive information such as user data, ensuring confidentiality and integrity during transport.
        - `version` string, nullable — The version of the encryption algorithm used to encrypt the data (e.g., "v1", "v2").
        - `ephemeralPublicKey` string, nullable — The ephemeral public key used in the encryption process, typically for key exchange or session establishment.
        - `publicKeyHash` string, nullable — The hash of the public key used to verify the integrity and authenticity of the encryption key.
        - `data` string, nullable — The encrypted data payload, typically base64-encoded, containing the sensitive information.
      - `imageFormat` string, nullable — The format of the check images (e.g., "JPEG", "PNG").
      - `device` DeviceInfo — Represents device-specific information used when initiating a transfer or other sensitive operation. Contains details about the device and network, such as device ID, make, model, operating system, and IP addresses. Used for device identification, risk assessment, auditing, and fraud prevention.
        - `deviceId` string, nullable — The unique identifier assigned to the device (e.g., device UUID or hardware ID). Used to uniquely identify the device making the request.
        - `deviceMake` string, nullable — The make or manufacturer of the device (e.g., "Apple", "Samsung", "Dell").
        - `deviceVersion` string, nullable — The model or version of the device (e.g., "iPhone 14", "Galaxy S22", "Latitude 7420").
        - `deviceOS` string, nullable — The operating system running on the device (e.g., "iOS", "Android", "Windows").
        - `deviceOSVersion` string, nullable — The version of the operating system running on the device (e.g., "16.4", "13", "11 Pro").
        - `ipAddress` string, nullable — The IP address of the device as detected by the application or device itself. Used for geolocation, risk analysis, and fraud prevention.
        - `customerIP` string, nullable — The customer’s public IP address as seen by the server or network edge. May be used for additional risk analysis or logging.
      - `postingInfos` PostingInfo[], nullable — A list of posting information records for the transaction, such as posting tokens, amounts, and deposit dates.
        - `postingInfoToken` string, nullable — The unique token or identifier for this posting record.
        - `amount` number, double — The amount associated with this posting record.
        - `depositDate` string, nullable — The date the deposit was made, typically in ISO 8601 format.
        - `transferType` string, nullable — The type of transfer for this posting (e.g., "Credit", "Debit").
    - `targetTransferEndpoint` MrdcPartialTargetEndpoint — Represents the target endpoint details for a partial MRDC (Mobile Remote Deposit Capture) transfer operation. Contains the destination account identifier for the check deposit transaction. Used to specify where the funds from a check deposit should be credited, supporting posting and reconciliation workflows.
      - `accountIdentifier` string, nullable — The unique identifier of the account to which the check deposit will be credited.

## Response `200`

OK

- MrdcPartialTransferResponse — Represents the response returned after processing a partial Mobile Remote Deposit Capture (MRDC) transfer request. Contains details about the created partial MRDC transfer, including transfer identifiers, check status, posting information, and any associated fraud data. Inherits standard response metadata from Gd.Bos.DataTransfer.Response.ResponseBase.
  - `transfer` MrdcPartialMainTransfer — Represents the main transfer record for a partial MRDC (Mobile Remote Deposit Capture) transaction. Contains account and transfer identifiers, check amount, status, key event dates, rejection reason, and posting information. Used to track and communicate the state and details of a check deposit transaction, supporting reconciliation, posting workflows, compliance, and audit trails.
    - `accountIdentifier` string, nullable — The unique identifier of the account associated with the check deposit.
    - `transferIdentifier` string, nullable — The unique identifier for this check deposit transfer.
    - `checkAmount` number, double — The amount of the check being deposited.
    - `transferStatus` string, nullable — The current status of the check deposit transfer (e.g., "Pending", "Completed", "Returned").
    - `checkReturnedDate` string, nullable — The date the check was returned, if applicable.
    - `checkCanceledDate` string, nullable — The date the check was canceled, if applicable.
    - `checkDeclinedDate` string, nullable — The date the check was declined, if applicable.
    - `rejectReason` string, nullable — The reason the check was rejected, if applicable.
    - `checkSubmitDate` string, nullable — The date the check was submitted for deposit.
    - `postingInfos` PostingFullInfo[], nullable — A list of posting information records for the transaction, including posting status, funds availability, and schedule changes.
      - `postingInfoStatus` string, nullable — The current status of this posting record (e.g., "Pending", "Posted", "Failed").
      - `fundsAvailableDate` string, nullable — The date when funds from this posting are available, typically in ISO 8601 format.
      - `lastChangedDateTime` string, nullable — The date and time when this posting record was last changed, typically in ISO 8601 format.
      - `hasScheduleChanged` string, nullable — Indicates whether the posting schedule has changed (e.g., "true", "false").
      - `postingInfoToken` string, nullable — The unique token or identifier for this posting record.
      - `amount` number, double — The amount associated with this posting record.
      - `depositDate` string, nullable — The date the deposit was made, typically in ISO 8601 format.
      - `transferType` string, nullable — The type of transfer for this posting (e.g., "Credit", "Debit").
  - `fraudData` object, nullable — Optional. A dictionary of key/value pairs containing fraud detection data associated with the transfer.
  - `responseDetails` ResponseDetail[], nullable — Required: A list of response details providing status codes, descriptions, and additional information about the result of the operation.
    - `code` integer — The primary status or error code for the response (e.g., 200 for success, 400 for validation error).
    - `subCode` integer, nullable — An optional subcode providing more granular detail about the response or error.
    - `description` string, nullable — A human-readable description of the response, error, or status.
    - `url` string, nullable — A URL linking to documentation or a web page with more information about the response code.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/greendot/apis/baas-apis.md) · [All operations](https://skmtc.net/greendot/apis/baas-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/greendot/baas-apis/versions/666553766b78/schema)
