> ## Documentation Index
> Fetch the complete documentation index at: https://developer.gcashier.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Transfer| Malaysia | C2C | BANK

> This is a general collection of fields and transfer logic, for the exact fields required in the payload for a transfer, please refer to the related market specific section of the API document.

<Note>
  The payee identified by `payeeId` must be pre-registered via **sp1401** with `payeeType` set to `OVERSEAS_PAYEE` before you can submit a remittance.
</Note>

***

```
POST https://{baseUrl}/api/sp1307
```

Call sp1306 to retrieve a real-time quote for an international remittance. The response includes a `merOrderNo` that locks the rate and fee structure for a limited time window.

### Request Parameters

<ParamField body="merOrderNo" type="string" required>
  Your unique merchant order number. Must be consistent with the value used in sp1306. Max 32 characters.
</ParamField>

<ParamField body="infoObject" type="object" required>
  Transfer settings and callback configuration.

  <Expandable title="infoObject fields">
    <ParamField body="feeDirection" type="string" required>
      Fee arrangement. Required when `settlementNetwork` is `SWIFT`.

      * `OUR` — sender bears all fees.
      * `SHA` — each party bears their own bank fees.
      * `BEN` — receiver bears all fees.
    </ParamField>

    <ParamField body="tradeComments" type="string">
      Optional transfer remarks. Max 255 characters.
    </ParamField>

    <ParamField body="callbackUrl" type="string" required>
      Your HTTPS callback URL to receive the sp3302 webhook with the final transfer result. Max 255 characters.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="senderObject" type="object" required>
  Individual sender's identity and address information.

  <Expandable title="senderObject fields">
    <ParamField body="senderId" type="string">
      Pre-registered sender ID. If provided, skip all individual fields below.
    </ParamField>

    <ParamField body="bizMode" type="string" required>
      Business mode. Must be `C` for individual.
    </ParamField>

    <ParamField body="bankCountry" type="string" required>
      ISO 3166-1 alpha-2 country code of the sender's bank. Also used as the source-of-funds country.
    </ParamField>

    <ParamField body="idType" type="string" required>
      ID document type. `01` = National ID card, `02` = Passport.
    </ParamField>

    <ParamField body="idNumber" type="string" required>
      ID document number.
    </ParamField>

    <ParamField body="frontCertImg" type="string" required>
      National emblem side of the ID card, or passport photo page (passport has one image only).
    </ParamField>

    <ParamField body="backCertImg" type="string" required>
      Portrait side of the ID card. Required when `idType` is `01`.
    </ParamField>

    <ParamField body="idExpiryStart" type="string" required>
      ID validity start date. Format: `YYYY-MM-DD`.
    </ParamField>

    <ParamField body="idExpiryEnd" type="string" required>
      ID validity end date. Format: `YYYY-MM-DD`.
    </ParamField>

    <ParamField body="firstName" type="string" required>
      Given name. Allowed characters: `^[a-zA-Z0-9\s.,!?:;'"()\[\]{}/*\\-]+$`
    </ParamField>

    <ParamField body="lastName" type="string" required>
      English last name.
    </ParamField>

    <ParamField body="birthDate" type="string" required>
      Date of birth. Format: `YYYY-MM-DD`.
    </ParamField>

    <ParamField body="placeOfBirth" type="string" required>
      Place of birth. See the country dictionary.
    </ParamField>

    <ParamField body="nationality" type="string" required>
      Nationality. See the country dictionary.
    </ParamField>

    <ParamField body="gender" type="string" required>
      Gender. `M` = Male, `F` = Female, `X` = Other.
    </ParamField>

    <ParamField body="emailNo" type="string">
      Personal Email address (optional).
    </ParamField>

    <ParamField body="phoneAreaCode" type="string">
      Phone area code (optional). Must be provided together with `phoneNo` or both must be empty. See the phone code dictionary.
    </ParamField>

    <ParamField body="phoneNo" type="string">
      Phone number (optional). Must be provided together with `phoneAreaCode` or both must be empty.
    </ParamField>

    <ParamField body="addressCountry" type="string" required>
      Country of residence. See the country dictionary.
    </ParamField>

    <ParamField body="addressProvince" type="string" required>
      State or province. Use the English name for non-CN countries. Use the province/city code for CN. See the dictionary.
    </ParamField>

    <ParamField body="addressCity" type="string" required>
      City.
    </ParamField>

    <ParamField body="addressLine" type="string" required>
      Street address. Allowed characters: `^[a-zA-Z0-9\s.,!?:;'"()\[\]{}/*\\-]+$`
    </ParamField>

    <ParamField body="postCode" type="string" required>
      Postal code.
    </ParamField>

    <ParamField body="occupation" type="string">
      Occupation (optional). See the occupation dictionary.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="receiverObject" type="object" required>
  Individual receiver's bank account and identity information.

  <Expandable title="receiverObject fields">
    <ParamField body="receiverId" type="string">
      Pre-registered receiver ID. If provided, skip all individual fields below.
    </ParamField>

    <ParamField body="payoutMethod" type="string" required>
      payoutMethod value is `BANK-TRANSFER, BAHTNET, PROMPTPAY`.
    </ParamField>

    <ParamField body="bizMode" type="string" required>
      Business mode. Must be `C` for individual.
    </ParamField>

    <ParamField body="accountNo" type="string" required>
      Bank account number.
    </ParamField>

    <ParamField body="bankCode" type="string">
      Bank code. Example: MY10000003
    </ParamField>

    <ParamField body="bankName" type="string">
      Bank name.
    </ParamField>

    <ParamField body="branchCode" type="string">
      Branch code.
    </ParamField>

    <ParamField body="swiftCode" type="string">
      SWIFT/BIC code of the receiver's bank. Required when `settlementNetwork` is `SWIFT`.
    </ParamField>

    <ParamField body="idType" type="string" required>
      ID document type. `01` = National ID card, `02` = Passport.
    </ParamField>

    <ParamField body="firstName" type="string" required>
      English first name.
    </ParamField>

    <ParamField body="lastName" type="string" required>
      English last name.
    </ParamField>

    <ParamField body="birthDate" type="string" required>
      Date of birth. Format: `YYYY-MM-DD`.
    </ParamField>

    <ParamField body="placeOfBirth" type="string" required>
      Place of birth. See the country dictionary.
    </ParamField>

    <ParamField body="nationality" type="string" required>
      Nationality. See the country dictionary.
    </ParamField>

    <ParamField body="gender" type="string" required>
      Gender. `M` = Male, `F` = Female, `X` = Other.
    </ParamField>

    <ParamField body="addressCountry" type="string" required>
      Country of residence. See the country dictionary.
    </ParamField>

    <ParamField body="addressProvince" type="string" required>
      State or province. Use the English name for non-CN countries. Use the province/city code for CN. See the dictionary.
    </ParamField>

    <ParamField body="addressCity" type="string" required>
      City.
    </ParamField>

    <ParamField body="addressLine" type="string" required>
      Street address. Allowed characters: `^[a-zA-Z0-9\s.,!?:;'"()\[\]{}/*\\-]+$`
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="complianceObject" type="object" required>
  Compliance and purpose information.

  <Expandable title="complianceObject fields">
    <ParamField body="fundSource" type="string" required>
      Source of funds for the sender (enterprise). Use `01` (company funds).
    </ParamField>

    <ParamField body="purpose" type="string" required>
      Transfer purpose code. See the purpose data dictionary.
    </ParamField>

    <ParamField body="relationship" type="string">
      Relationship between sender and receiver (optional).
    </ParamField>

    <ParamField body="proofDocuments" type="array">
      Supporting transaction documents (optional). Maximum 5 items.
    </ParamField>
  </Expandable>
</ParamField>

<Note>
  payoutMethod:

  IBG: IBG is used for payouts processed via batch clearing.

  RENTAS: RENTAS is used for high-value or time-critical payouts requiring real-time gross settlement (RTGS).
</Note>

### Response Body

<ResponseField name="merOrderNo" type="string">
  Echo of your merchant order number.
</ResponseField>

<ResponseField name="senderAmount" type="object">
  Sender amount and currency information.

  <Expandable title="senderAmount fields">
    <ResponseField name="currency" type="string">
      Sender's currency code (ISO 4217).
    </ResponseField>

    <ResponseField name="amount" type="string">
      Sender's amount. Two decimal places, format: `999999.99`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="receiverAmount" type="object">
  Receiver amount, currency, and bank country information.

  <Expandable title="receiverAmount fields">
    <ResponseField name="currency" type="string">
      Receiver's currency code (ISO 4217).
    </ResponseField>

    <ResponseField name="amount" type="string">
      Receiver's amount. Two decimal places, format: `999999.99`.
    </ResponseField>

    <ResponseField name="bankCountry" type="string">
      ISO 3166-1 alpha-2 country code of the receiver's bank.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="infoObject" type="object">
  Transfer status and reference information.

  <Expandable title="infoObject fields">
    <ResponseField name="bizFlow" type="string">
      System business flow number. Consistent with the value returned by sp1306. Retain this for reconciliation.
    </ResponseField>

    <ResponseField name="senderId" type="string">
      Sender's registered ID. Present once the transfer is successfully confirmed.
    </ResponseField>

    <ResponseField name="receiverId" type="string">
      Receiver's registered ID. Present once the transfer is successfully confirmed.
    </ResponseField>

    <ResponseField name="settlementNetwork" type="string">
      Settlement network used: `LOCAL` or `SWIFT`.
    </ResponseField>

    <ResponseField name="rate" type="string">
      Exchange rate applied to this transfer.
    </ResponseField>

    <ResponseField name="status" type="string">
      Current order status. Initial value is `PROCESS` (processing). The final result (`SUCC` or `FAIL`) is delivered asynchronously via the sp3302 webhook.
    </ResponseField>

    <ResponseField name="code" type="string">
      Transaction response code.
    </ResponseField>

    <ResponseField name="message" type="string">
      Transaction response message.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```json Request theme={null}
  {
    "merOrderNo": "335621309488901",
    "infoObject": {
      "tradeComments": "Service payment Local",
      "callbackUrl": "https://yourplatform.com/callback/transfer"
    },
    "senderObject": {
      "bizMode": "C",
      "bankCountry": "US",
      "idType": "01",
      "idNumber": "ss751310813185",
      "frontCertImg": "invite/000959100493/260403175715750001.png",
      "backCertImg": "invite/000959100493/260407173747750010.png",
      "idExpiryStart": "1990-09-09",
      "idExpiryEnd": "2030-09-09",
      "firstName": "fu   iess",
      "lastName": "   ZHANG   ",
      "birthDate": "1990-09-09",
      "placeOfBirth": "HK",
      "nationality": "CN",
      "gender": "M",
      "emailNo": "test895865774461@apitest.com",
      "phoneAreaCode": "1",
      "phoneNo": "1350193400",
      "addressCountry": "HK",
      "addressProvince": "uuuuttt",
      "addressCity": "ccccccc",
      "addressLine": "ffffffffff"
      "postCode": "111111",
      "occupation": "03"
    },
    "receiverObject": {
      "receiverId": "",
      "bizMode": "C",
      "payoutMethod": "IBG",
      "accountNo": "64267420831111",
  	"bankCode": "MY10000003",
  	"bankName": "HSBC Bank Malaysia Berhad",
      "branchCode": "111",
      "swiftCode": "CCCCMYBB",
      "idType": "02",
      "firstName": "TIAN",
      "lastName": "ZHANG",
      "birthDate": "1980-08-08",
      "placeOfBirth": "CN",
      "nationality": "CN",
      "gender": "X",
      "addressCountry": "HK",
      "addressProvince": "prov hk",
      "addressCity": "hk city",
      "addressLine": "HONGKONG STREET0098,ROAD09"
    },
    "complianceObject": {
  	"fundSource": "02",
  	"purpose": "35",
  	"proofDocuments": ["invite/000959100493/260525143050500017.png"]
    }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "merOrderNo": "335621309488901",
    "senderAmount": {
      "currency": "USD",
      "amount": "100"
    },
    "receiverAmount": {
      "currency": "MYR",
      "amount": "398.49",
      "bankCountry": "MY"
    },
    "infoObject": {
      "bizFlow": "21875022415083500100",
      "senderId": "2606261153232500001100",
      "receiverId": "40206062616072300019",
      "settlementNetwork": "LOCAL",
      "rate": "3.9849440000",
      "status": "PROCESS",
      "code": "S00001",
      "message": "Processing"
    }
  }
  ```
</ResponseExample>

***

## Sandbox Testing

In the sandbox environment, the final remittance result is determined by the **single digit of the submitted amount**:

| Digit | Simulated Result                  |
| ----- | --------------------------------- |
| 0 – 3 | Success (`SUCC`)                  |
| 4 – 6 | Rejected (`FAIL`)                 |
| 7 – 9 | No action (remains in processing) |
