> ## 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| Indonesia | B2B | WALLET

> 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>
  Enterprise sender's company and address information.

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

    <ParamField body="bizMode" type="string" required>
      Business mode. Must be `B` for enterprise.
    </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="registerCountry" type="string" required>
      Country where the company is registered.
    </ParamField>

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

    <ParamField body="companyRegisterNo" type="string" required>
      Company registration certificate number.
    </ParamField>

    <ParamField body="companyIssueDate" type="string" required>
      Certificate issue date. Format: `YYYY-MM-DD`.
    </ParamField>

    <ParamField body="companyExpiryDate" type="string" required>
      Certificate expiry date. Format: `YYYY-MM-DD`.
    </ParamField>

    <ParamField body="businessLicenseImg" type="string">
      Business license image. Required when `bankCountry` is `CN`.
    </ParamField>

    <ParamField body="registerCertImg" type="string">
      Business registration certificate image. Required when `bankCountry` is `HK`.
    </ParamField>

    <ParamField body="incorporateCertImg" type="string">
      Certificate of incorporation image. Required when `bankCountry` is non-CN. Also required when `bankCountry` is `HK`.
    </ParamField>

    <ParamField body="emailNo" type="string">
      Company 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="businessNature" type="string" required>
      businessNature.
    </ParamField>

    <ParamField body="addressCountry" type="string" required>
      Country of business address. 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>
  </Expandable>
</ParamField>

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

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

    <ParamField body="payoutMethod" type="string" required>
      payoutMethod value is `GOPAY, OVO and SHOPEEPAY`.
    </ParamField>

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

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

    <ParamField body="bankCode" type="string">
      Bank code, example: ID10000001
    </ParamField>

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

    <ParamField body="registerCountry" type="string" required>
      Country where the receiver's company is registered.
    </ParamField>

    <ParamField body="companyName" type="string" required>
      Company name.
    </ParamField>

    <ParamField body="addressCountry" type="string" required>
      Country of business address. 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.
    </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>

### 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": "B",
  	"bankCountry": "HK",
  	"registerCountry": "HK",
  	"companyName": "TEST MERCHANT",
  	"companyRegisterNo": "Css739909888066",
  	"companyIssueDate": "2009-09-09",
  	"companyExpiryDate": "2030-09-09",
  	"businessLicenseImg": "invite/000959100493/260403175715750001.png",
  	"registerCertImg": "invite/000959100493/260403175715750001.png",
  	"incorporateCertImg": "invite/000959100493/260403175715750001.png",
  	"emailNo": "test491001445023@apitest.com",
  	"phoneAreaCode": "1",
  	"phoneNo": "1369707300",
      "businessNature": "12",
  	"addressCountry": "HK",
  	"addressProvince": "DDDDDD",
  	"addressCity": "DDDDGGGGGGG",
  	"addressLine": "address oosss",
  	"postCode": "111111"
    },
    "receiverObject": {
      "receiverId": "",
      "bizMode": "B",
      "payoutMethod": "GOPAY",
      "accountNo": "142690614909",
      "bankCode": "ID10000002",
      "bankName": "Bank Jago",
      "registerCountry": "HK",
      "companyName": "test collect com",
  	"addressCountry": "ID",
  	"addressProvince": "prov test",
  	"addressCity": "city test",
  	"addressLine": "test address line 123",
    },
    "complianceObject": {
  	"fundSource": "01",
  	"purpose": "36",
  	"proofDocuments": ["invite/000959100493/260525143050500017.png"]
    }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "merOrderNo": "335621309488901",
    "senderAmount": {
      "currency": "USD",
      "amount": "100"
    },
    "receiverAmount": {
      "currency": "IDR",
      "amount": "1710834.10",
      "bankCountry": "ID"
    },
    "infoObject": {
      "bizFlow": "21875022415083500100",
      "senderId": "2606261153232500001100",
      "receiverId": "40206062616072300019",
      "settlementNetwork": "LOCAL",
      "rate": "17108.3410000000",
      "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) |
