m2pfintech
API LibraryForex Issuance

Create Forex Card Issuance

Creates a new forex card issuance request with initial currency load. This is the primary endpoint for issuing forex travel cards.

Pre-Requisite Steps (must be completed before calling this API)

  1. De-Dupe Check — Verify no duplicate PAN/mobile exists
  2. AML Match — Clear the customer through AML screening
  3. Limit Check — Validate LRS limits
  4. Fetch TCS — Get the TCS amount
  5. Conversion Rate — Get live forex rate for each currency
  6. Fee Summary — Get itemized fees (from Forex Rates API)

Key Fields

  • beneficiaries: Customer details including passport, address, KYC documents
  • walletAmount: Currency loads with conversion details from rate API
  • summary: Fee breakdown from the fee summary API
  • trip: Travel details (destination, dates, purpose)
  • funding: Source of funds (bank account details)
  • declarations: Regulatory declarations (FATCA, LRS, T&C)

Compliance Documents

  • Passport: Mandatory for all forex issuances
  • Visa: Required for travel-related issuances
  • Air Ticket: Required for travel
  • A2 Form: RBI declaration form
  • Purpose Proof: Required for education/medical purpose
POST
/v1/forex/issuance/

Authorization

bearerAuth tenantId
AuthorizationBearer <token>

In: header

X-TENANT-ID<token>

In: header

Header Parameters

X-TENANT-ID*string

Your unique tenant identifier

Request Body

application/json

hierarchyId*string

Corporate or branch hierarchy ID

cardTypeEnum?string

Card type: Single or Bulk

Value in"Single" | "Bulk"
kitNo*string

Card kit number to be issued

entityId*string

Customer entity ID

mobile?
product*
walletAmount*

Currency loads with conversion details

summary*
trip*
funding*
declarations*
applicationNumber?string

System-generated application number (response only)

feeWaiverApproval?string

Fee waiver approval document reference

loanDetails?object

Loan details if forex is loan-funded

Response Body

application/json

application/json

application/json

curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/corporate/v1/forex/issuance/" \  -H "X-TENANT-ID: ACME_CORP" \  -H "Content-Type: application/json" \  -d '{    "hierarchyId": "90009",    "cardTypeEnum": "Single",    "kitNo": "320000541",    "entityId": "476843769320000541160925",    "mobile": {      "value": "9876543210",      "countryCode": 91    },    "product": {      "productId": "FRX001",      "productType": "FOREX"    },    "walletAmount": [      {        "walletName": "USD",        "amount": 500,        "conversionRate": 84.95,        "netAmount": 42475,        "tcs": 500,        "fees": 250,        "gst": 45      }    ],    "summary": {      "fees": 250,      "gst": 45,      "tcs": 500,      "conversionGst": 125,      "total": 43395,      "feeWaiver": "NOTALLOWED"    },    "trip": {      "country": {        "name": "United States",        "threeDigitCountryCode": "USA"      },      "startDate": "2026-06-01",      "endDate": "2026-06-15",      "purposeOfTravel": {        "code": "PERSONAL_VISIT",        "purpose": "Personal Visit"      },      "type": "NEW"    },    "funding": {      "fundingMode": "SAVINGS_ACCOUNT",      "sourceOfFund": "SELF",      "accountNo": "1234567890",      "ifsc": "SBIN0001234"    },    "declarations": {      "fatca": true,      "lrs": true,      "tc": true    }  }'
{
  "result": {
    "id": "FXI20260601001",
    "applicationNumber": "APP-FX-2026-001",
    "currentStatus": "CREATED",
    "kitNo": "320000541",
    "entityId": "476843769320000541160925"
  },
  "pagination": null
}
{
  "type": "https://www.m2pfintech.com/problem/problem-with-message",
  "title": "Bad Request",
  "status": 400,
  "detail": "Unable to convert http message",
  "message": "error.http.400"
}
{
  "type": "https://www.m2pfintech.com/problem/problem-with-message",
  "title": "LRS limit exceeded for the financial year",
  "status": 409,
  "detail": "LRS limit exceeded for the financial year",
  "message": "error.business",
  "businessCode": "PP_CORP_150"
}